powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Непонятки с dll
6 сообщений из 6, страница 1 из 1
Непонятки с dll
    #33589878
tors
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Написал на C++ Builder 5 dll
Пишу клиента
LoadLibrery загружает длл нормально
Initialize=GetProcAddress(hLib,"Initialize");
возвращает NULL
вот как она обьявлена в длл
extern "C" __declspec(dllexport) BOOL Initialize();
вот как указатель обьявлен в клиенте:
typedef BOOL __stdcall(*TInitialize)(void);

В чем могут быть грабли?

C ув. Tors
...
Рейтинг: 0 / 0
Непонятки с dll
    #33589891
Карабас Барабас
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Посмотри каким-нибудь софтом, какие функции экспортирует твоя ДЛЛ.
У тебя там скорее всего _Initialize - причуды компилятора
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Непонятки с dll
    #33589977
tors
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Функция в длл:
extern "C" __declspec(dllexport) BOOL GetCompressorsCount(PINT Count);
в кленте:
typedef BOOL (__stdcall *TGetCompressorsCount)(PINT);
TGetCompressorsCount GetCompressorsCount;
GetCompressorsCount=GetProcAddress(hLib,"_GetCompressorsCount");

Билдер пишет:
can not convert
int (__stdcall*)() to int (__stdcall*)(int*)

????
C ув. Tors
...
Рейтинг: 0 / 0
Непонятки с dll
    #33590113
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
torsНаписал на C++ Builder 5 dll
Пишу клиента
LoadLibrery загружает длл нормально
Initialize=GetProcAddress(hLib,"Initialize");
возвращает NULL
вот как она обьявлена в длл
extern "C" __declspec(dllexport) BOOL Initialize();
вот как указатель обьявлен в клиенте:
typedef BOOL __stdcall(*TInitialize)(void);

В чем могут быть грабли?

C ув. Tors

def файл прописал?

LIBRARY "<имя библиотеки>.DLL"

EXPORTS
Initialize @1
...
Рейтинг: 0 / 0
Непонятки с dll
    #33590159
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Надо писать
Initialize=GetProcAddress(hLib,"_Initialize");

Имя функции , объявленной как extern "C", всегда начинается с подчеркивания.

Если не хочешь, чтобы это происходило, можно объявить функцию как FORTRAN. Но правда еще кое-что поменяется.
...
Рейтинг: 0 / 0
Непонятки с dll
    #33593794
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivЕсли не хочешь, чтобы это происходило....
Если не хочешь чтобы это происходило, надо в def файле прописать переименование функции:
Код: plaintext
1.
EXPORTS 
    Initialize = _Initialize
Это будет работать для всех трансляторов.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Непонятки с dll
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]