Проблема с Dll
Если сделать проект С++ Builder, то DLL подгружается нормально.
Сколько лет так делаю - и на C и на Cpp и на Delphi - все ок.
Проблема может быть при неправильном написании имени подключаемой функции. Если ты прицепишь/вышлешь эту dll - можно посмотреть в чем проблема.
Цитата:
Originally posted by man2002ua
При динамическом импорте - NULL и НЕТ КОДА ОШИБКИ ?? что-то новенькое. Ты пробовал получить ошибку GetLastError() сразу после GetProcAddress(...)?
Сколько лет так делаю - и на C и на Cpp и на Delphi - все ок.
Проблема может быть при неправильном написании имени подключаемой функции. Если ты прицепишь/вышлешь эту dll - можно посмотреть в чем проблема.
При динамическом импорте - NULL и НЕТ КОДА ОШИБКИ ?? что-то новенькое. Ты пробовал получить ошибку GetLastError() сразу после GetProcAddress(...)?
Сколько лет так делаю - и на C и на Cpp и на Delphi - все ок.
Проблема может быть при неправильном написании имени подключаемой функции. Если ты прицепишь/вышлешь эту dll - можно посмотреть в чем проблема.
Вот файлы
Export Table
Ordinal Entry Point Function Name
-----------------------------------------
0001 00001448 @Max
0002 000020F8 ___CPPdebugHook
исп. GetProcAddress(H,"@Max"),
а не GetProcAddress(H,"Max")
Заведи себе peviewer.exe (в аттаче лежит)
Цитата:
Originally posted by man2002ua
Dump of proba.dll
Export Table
Ordinal Entry Point Function Name
-----------------------------------------
0001 00001448 @Max
0002 000020F8 ___CPPdebugHook
исп. GetProcAddress(H,"@Max"),
а не GetProcAddress(H,"Max")
Заведи себе peviewer.exe (в аттаче лежит)
Dump of proba.dll
Export Table
Ordinal Entry Point Function Name
-----------------------------------------
0001 00001448 @Max
0002 000020F8 ___CPPdebugHook
исп. GetProcAddress(H,"@Max"),
а не GetProcAddress(H,"Max")
Заведи себе peviewer.exe (в аттаче лежит)
Да, получилось. Но для компиляции этой DLL я менял настройки компилятора. А в этом примере - настройки стандартные. Как такую билиотеку подключить. Если пишешь GetProcAddress(H,'_Max') - получается ерунда - как быть?
Цитата:
Originally posted by gray_k
Да, получилось. Но для компиляции этой DLL я менял настройки компилятора. А в этом примере - настройки стандартные. Как такую билиотеку подключить. Если пишешь GetProcAddress(H,'_Max') - получается ерунда - как быть?
Да, получилось. Но для компиляции этой DLL я менял настройки компилятора. А в этом примере - настройки стандартные. Как такую билиотеку подключить. Если пишешь GetProcAddress(H,'_Max') - получается ерунда - как быть?
extern "C" __declspec(dllexport) int WINAPI Max(int X, int Y)
попробуй так
--- чуть не забыл :)
Type
TMax = function(X:integer;Y:integer):integer; stdcall;
Цитата:
Originally posted by man2002ua
extern "C" __declspec(dllexport) int WINAPI Max(int X, int Y)
попробуй так
--- чуть не забыл :)
Type
TMax = function(X:integer;Y:integer):integer; stdcall;
extern "C" __declspec(dllexport) int WINAPI Max(int X, int Y)
попробуй так
--- чуть не забыл :)
Type
TMax = function(X:integer;Y:integer):integer; stdcall;
Получилось:) .
Достаточно было stdcall поставить.
WINAPI не обязательно.