Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Проблема с Dll

295
31 октября 2002 года
gray_k
356 / / 20.12.1999
Есть DLL, написанная на C++. При попытке подключить её к дельфи выскакивает ошибка "не найдена точка входа для функции...". Причём при динамическом импорте, сообщение об шибке нет, но нужные функции просто не загружаются - NULLВ чём может быть проблема?
Если сделать проект С++ Builder, то DLL подгружается нормально.
476
31 октября 2002 года
man2002ua
218 / / 16.10.2002
При динамическом импорте - NULL и НЕТ КОДА ОШИБКИ ?? что-то новенькое. Ты пробовал получить ошибку GetLastError() сразу после GetProcAddress(...)?
Сколько лет так делаю - и на C и на Cpp и на Delphi - все ок.

Проблема может быть при неправильном написании имени подключаемой функции. Если ты прицепишь/вышлешь эту dll - можно посмотреть в чем проблема.
295
31 октября 2002 года
gray_k
356 / / 20.12.1999
Цитата:
Originally posted by man2002ua
При динамическом импорте - NULL и НЕТ КОДА ОШИБКИ ?? что-то новенькое. Ты пробовал получить ошибку GetLastError() сразу после GetProcAddress(...)?
Сколько лет так делаю - и на C и на Cpp и на Delphi - все ок.

Проблема может быть при неправильном написании имени подключаемой функции. Если ты прицепишь/вышлешь эту dll - можно посмотреть в чем проблема.


Вот файлы

476
31 октября 2002 года
man2002ua
218 / / 16.10.2002
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 (в аттаче лежит)
295
01 ноября 2002 года
gray_k
356 / / 20.12.1999
Цитата:
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 (в аттаче лежит)


Да, получилось. Но для компиляции этой DLL я менял настройки компилятора. А в этом примере - настройки стандартные. Как такую билиотеку подключить. Если пишешь GetProcAddress(H,'_Max') - получается ерунда - как быть?

476
01 ноября 2002 года
man2002ua
218 / / 16.10.2002
Цитата:
Originally posted by gray_k

Да, получилось. Но для компиляции этой DLL я менял настройки компилятора. А в этом примере - настройки стандартные. Как такую билиотеку подключить. Если пишешь GetProcAddress(H,'_Max') - получается ерунда - как быть?



extern "C" __declspec(dllexport) int WINAPI Max(int X, int Y)

попробуй так

--- чуть не забыл :)
Type
TMax = function(X:integer;Y:integer):integer; stdcall;

295
01 ноября 2002 года
gray_k
356 / / 20.12.1999
Цитата:
Originally posted by man2002ua


extern "C" __declspec(dllexport) int WINAPI Max(int X, int Y)

попробуй так

--- чуть не забыл :)
Type
TMax = function(X:integer;Y:integer):integer; stdcall;


Получилось:) .
Достаточно было stdcall поставить.
WINAPI не обязательно.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог