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

Вниз

Библиотека на C++ вызываемая из Delphi   Найти похожие ветки 

 
Ericon   (2005-01-13 12:24) [0]

Здравствуйте уважаемые. Киньте пожалуйста шаблон, как нужно объявлять функции в C++ библиотеке, чтобы ее можно было загрузить из Delphi как stdcall. Еще лучше код примитивной dll-ки экспортирующей хотя бы одну функцию. Спасибо.


 
DSKalugin ©   (2005-01-13 12:28) [1]

обычно объявляй. Нет никаких особенностей


 
Ericon   (2005-01-13 12:32) [2]

extern "C" __declspec(dllexport) char * MyFunction(char * Param);
В таком духе? Я C не знаю, поэтому могу чушь полную нести. Кинь пожалуйста пару строк, если не сложно.


 
Ericon   (2005-01-13 18:23) [3]

Если добавляю __stdcall, то изменяется имя экспортируемой функции... Совсем замучался...


 
VMcL ©   (2005-01-13 18:58) [4]

>>Ericon  (13.01.05 12:32) [2]

Я бы сделал как-то так:

char* __stdcall MyFunction(char* Param);
#pragma comment(linker, "/export:MyFunction=_MyFunction@4")


 
Suntechnic ©   (2005-01-13 19:04) [5]

Или пиши def файл, чтобы не мучаться с изменяемыми именами.


 
VMcL ©   (2005-01-13 19:06) [6]

Точнее так:

#ifdef __cplusplus
extern "C" {
#endif

char* __stdcall MyFunction(char* Param);
#pragma comment(linker, "/export:MyFunction=_MyFunction@4")

#ifdef __cplusplus
}
#endif


 
palva ©   (2005-01-13 19:49) [7]

Файл t1.cpp

extern "C" int _stdcall plusfun(int a, int b)
{
 return a+b;
}

Файл t1.def

exports
MyPlus=plusfun


Делаем dll, например, на Borland C/C++ 5.5

bcc32 -c -tWD t1.cpp
ilink32 -Tpd t1.obj c0d32.obj,,,cw32.lib import32.lib,t1.def


Главная программа:

function MyPlus(a,b:Integer): Integer; stdcall; external "t1.dll";
begin
 WriteLn(MyPlus(3, 4));
end.

Печатает 7


 
Ericon   (2005-01-13 22:48) [8]

Всем спасибо. Вопросов больше не имею.



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

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

Наверх




Память: 0.48 MB
Время: 0.025 c
14-1105204577
X9
2005-01-08 20:16
2005.01.30
"Энциклопедия начинающего радиолюбителя" в эл. виде


1-1105899083
Ньюб
2005-01-16 21:11
2005.01.30
Доступ к свойствам компонентов


8-1097942663
TeNY
2004-10-16 20:04
2005.01.30
Формат изображения в TPicture


1-1106208095
Degobar
2005-01-20 11:01
2005.01.30
Can only modify an image if it contains a bitmap


3-1103871030
Kabaev Sergey
2004-12-24 09:50
2005.01.30
PrintDBGridEh - проблемы с масштабом изображения