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

S>Здравствуйте, _const_


S>Похоже, в документации для вызывающе программы ошибка. Получается, что способ передачи параметров

S>экспортируемой функции должен быть родным паскалевским (register, кажется), когда параметры передаются
S>через регистры слева направо

__stdcall
По-моему, не только в этом дело, а еще и в том, кто очищает стек. Но это уже совсем другая песня.

S>Тогда вместо

S>
S>function (inParam:PChar;outParam:PChar;outSize:integer): Integer; cdecl;
S>должно быть
S>function (inParam:PChar;outParam:PChar;outSize:integer): Integer // cdecl отсутствует
S>


S>Вопрос: возможно ли на С задать паскалевский способ?


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

S>Согласен. Проблема в том, что есть только бинарник вызывающей программы, поэтому
S>приходится подстраиваться под нее.

А исходников нет?

Тогда, полагаясь на стандарт, пишем так:
extern "C" int __stdcall DLLFunc(char inParam, char outParam, int outSize);


Далее создаем DEF файл, в котором прописываем
EXPORTS
DLLFunc

Вроде, все.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.