Главная страница
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.024 c
14-1105134146
Kerk
2005-01-08 00:42
2005.01.30
Cуицид - форма девиантного поведения


1-1106143494
vic1
2005-01-19 17:04
2005.01.30
ComboBox


14-1105318117
Alex_Petr
2005-01-10 03:48
2005.01.30
Устал за ;$1600 пить в одиночку


1-1105891816
KristinA
2005-01-16 19:10
2005.01.30
Delphi vikidivat tabli4ku "Bitmap image is not valid."


1-1106117795
Гость
2005-01-19 09:56
2005.01.30
daysBetween