Главная страница
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.029 c
15-1142229826
Некто
2006-03-13 09:03
2006.04.02
Полезные физические упражнения


1-1140796690
Belorus
2006-02-24 18:58
2006.04.02
Загрузка памяти программой


2-1142831819
Canopus
2006-03-20 08:16
2006.04.02
Отметка в меню POPUP


2-1142485939
novice_man
2006-03-16 08:12
2006.04.02
Юнит "такой то" платформо-зависимый.


3-1139399572
Mishenka
2006-02-08 14:52
2006.04.02
Поля соответствия в таблице связанной сама с собой