Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.04.02;
Скачать: CL | DM;

Вниз

Заставить exe на Delphi грузить dll на c++   Найти похожие ветки 

 
X-Man   (2006-03-01 21:00) [0]

Собственно, как не крутил — так и не разобрался. Искал в инете — нашел много пространных рассуждений и примеры обратного преобразования (dll на c и exe на delphi). Может ли кто-нить привести маленький примерчик, чтоб он просто функцию булевскую с одним параметром передавал/принимал. Буду очень благодарен.
P.S. Грузиться должно динамически.


 
Desdechado ©   (2006-03-01 21:06) [1]

все просто:
1. не использовать сложных типов данных (массивы, строки, классы)
2. соблюдать соглашения о вызовах (stdcall, cdecl или другое)
3. помнить, что С корежит имена функций при компиляции


 
X-Man   (2006-03-01 21:14) [2]

Да вот это-то я знаю... Впрочем что значит "корежит"? :o
Можно все-таки примерчик, а? Я уже седня пару часов пыхтел над этим


 
DrPass ©   (2006-03-01 21:19) [3]


> помнить, что С корежит имена функций при компиляции

С++

> Впрочем что значит "корежит"?

Дописывает к ним всякую хрень вроде $oob&. Таким мудрым способом там реализован механизм перегрузки функций. Дабы этого не было, объявляй экспортируемые функции как extern "C"


 
Anatoly Podgoretsky ©   (2006-03-01 21:29) [4]

ДЛЛ не пахнет языком, вызывать можно из любого, писать на любом, лишь бы выполнялось соглашение об вызовае и поддерживались типы. Послностью совместимо только на СИ и на Фортране.


 
Desdechado ©   (2006-03-01 21:31) [5]

> пыхтел над этим
ну, и где результаты?
примерчик чего - длл на цпп? или использования в пасе?
loadlibrary + F1 + See also


 
X-Man   (2006-03-01 22:18) [6]

о! Я бы сам не допер до ТАКОГО. благодарю покорнейше.
Подлый си. Использовав TDUMP увидел в какую кашу превращаются имена функций, если не использовать extern "C". В итоге получилось так:

extern "C" __declspec(dllexport) int _cdecl SomeFunc(bool b)
{
if (b) return 42; else return 24;
}



Страницы: 1 вся ветка

Текущий архив: 2006.04.02;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.026 c
3-1139560059
Jappak
2006-02-10 11:27
2006.04.02
Как пеперать содержание ДБГрид на dbf таблицу?


15-1142145294
Kerk
2006-03-12 09:34
2006.04.02
Ребяты, устроим консилиум


3-1137394111
Сабач
2006-01-16 09:48
2006.04.02
Замена значений


2-1142591431
_RusLAN
2006-03-17 13:30
2006.04.02
Изменение установленного компонента!


2-1142366442
depo72
2006-03-14 23:00
2006.04.02
Зависает программа при выгрузке DLL