Форум: "Потрепаться";
Текущий архив: 2005.01.30;
Скачать: [xml.tar.bz2];
ВнизБиблиотека на 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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.035 c