Re[5]: Проблема с созданием Dll на VC++ для вызова из Delphi
От: _const_  
Дата: 17.06.05 07:22
Оценка:
Здравствуйте, Seeker, Вы писали:

S>Здравствуйте, _const_, Вы писали:


S>>>Так было написано в спецификации к вызывающей программе

S>>>Т.к. в синтаксисе Паскаля я не силен, приходится верить.
S>>>В VC по-умолчанию как раз используется cdecl, а как в Delphi?

__>>В Дельфи, по-моему, так

__>>
__>>TDLLFunc = function (inParam:PChar;outParam:PChar;outSize:integer): Integer; cdecl;
__>>


S>Тогда в чем может быть причина, есть идеи?


У меня работает так.
В Дельфи
var
 DLLFunc: function (inParam:PChar;outParam:PChar;outSize:integer): Integer; cdecl;

...
 @DLLFunc := GetProcAddress(...);


Обращаем особое внимание на cdecl в конце.

В VC
extern "C" __declspec(dllexport) int DLLFunc(char inParam, char outParam, int outSize);


И никаких DEF файлов. При этом в компиляторе указано по умолчанию cdecl (хотя этот параметр настраиваемый). Иначе изменяем на
extern "C" __declspec(dllexport) int __cdecl DLLFunc(char inParam, char outParam, int outSize);


Вообще же Микрософт говорит, что экспортируемые ф-ции должны быть по __stdcall.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.