Главная страница
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.47 MB
Время: 0.027 c
15-1141727942
КаПиБаРа
2006-03-07 13:39
2006.04.02
Какими стандартами Вы пользуетесь при разработе?


15-1141644133
Wolfram
2006-03-06 14:22
2006.04.02
Алгоритм MD5


15-1141984701
leonidus
2006-03-10 12:58
2006.04.02
Подскажите юникодные коды символов


1-1141243262
Конопелька
2006-03-01 23:01
2006.04.02
Runtime Err in DLL Library Module on Terminate !


15-1141934121
JUS
2006-03-09 22:55
2006.04.02
Как скачать из компьютера на сотовый файлы с помощью BlueTooth?