Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Использование __fastcall при динамической загрузке ф-ий из Dll (CBulder) / 11 сообщений из 11, страница 1 из 1
30.05.2007, 16:42
    #34561979
user_12345
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование __fastcall при динамической загрузке ф-ий из Dll (CBulder)
Всем доброго времени суток !
В Dll есть функция, объявленная как extern "C" __declspec(dllexport) bool __fastcall Func(const char *);
При динамической загрузке ф-ии из длл есть следующее :

HINSTANCE Dll = LoadLibrary("dll.dll");
typedef __declspec(dllimport) bool __fastcall BoolConstCharType (const char *);
BoolConstCharType * MyFunc = (BoolConstCharType *) GetProcAddress(Dll,"_Func");
Вот тут функция не находится, но если убрать __fastcall из объявления функции в Dll и в Exe-шнике, то все находится. Где грабли ?
...
Рейтинг: 0 / 0
30.05.2007, 16:46
    #34561992
Карабас Барабас
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование __fastcall при динамической загрузке ф-ий из Dll (CBulder)
user_12345В Dll есть функцияскачай софтину, которая покажет тебе какие реально функции экспортирует ДЛЛ, посмотри имена и проанализируй
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
30.05.2007, 17:12
    #34562092
user_12345
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование __fastcall при динамической загрузке ф-ий из Dll (CBulder)
Карабас Барабас user_12345В Dll есть функцияскачай софтину, которая покажет тебе какие реально функции экспортирует ДЛЛ, посмотри имена и проанализируй
Posted via ActualForum NNTP Server 1.4
Экспортируется вроде то, что нужно .....
******************************************************************************
Section: Exports
Flags: 00000000
Time Stamp: 00000000
Major Version: 0000
Minor Version: 0000

Exports from IniLib.dll
5 exported name(s), 5 export addresse(s). Ordinal base is 1.
Sorted by Name:
RVA Ord. Hint Name
-------- ---- ---- ----
00001954 4 0000 __linkproc__ Inilibbody::Finalize
0000193C 3 0001 __linkproc__ Inilibbody::Initialize
000015C4 1 0002 _Func

эта часть вроде как не зависит от того, объявлял я ф-ию как __fastcall или нет
...
Рейтинг: 0 / 0
30.05.2007, 17:19
    #34562125
Карабас Барабас
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование __fastcall при динамической загрузке ф-ий из Dll (CBulder)
user_12345Вот тут функция не находитсяа GetLastError что говорит ?
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
30.05.2007, 17:34
    #34562187
user_12345
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование __fastcall при динамической загрузке ф-ий из Dll (CBulder)
Карабас Барабас user_12345Вот тут функция не находитсяа GetLastError что говорит ?
Posted via ActualForum NNTP Server 1.4

Говорит "Не найдена аказанная процедура "
...
Рейтинг: 0 / 0
30.05.2007, 17:37
    #34562202
Карабас Барабас
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование __fastcall при динамической загрузке ф-ий из Dll (CBulder)
user_12345Говорит "Не найдена аказанная процедура "чудес не бывает

либо ее на самом деле там нет, либо ты другую ДЛЛ загружаешь, либо имя искомой функции меняешь ...
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
30.05.2007, 18:42
    #34562457
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование __fastcall при динамической загрузке ф-ий из Dll (CBulder)
Карабас Барабас пишет:
> скачай софтину, которая покажет тебе какие реально функции экспортирует
> ДЛЛ, посмотри имена и проанализируй

dumpbin вообще вроде в поставке винды идет, или нет ?
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
30.05.2007, 18:44
    #34562458
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование __fastcall при динамической загрузке ф-ий из Dll (CBulder)
user_12345 пишет:

> Вот тут функция не находится, но если убрать __fastcall из объявления
> функции в Dll и в Exe-шнике, то все находится. Где грабли ?

Разные декорации имен используются при __stdcall и __fastcall.
А импорт/экспорт идет видимо по именам, а не по номерам.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
30.05.2007, 18:49
    #34562480
Карабас Барабас
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование __fastcall при динамической загрузке ф-ий из Dll (CBulder)
MasterZivdumpbin вообще вроде в поставке винды идет, или нет ?у меня нету
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
30.05.2007, 19:01
    #34562510
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование __fastcall при динамической загрузке ф-ий из Dll (CBulder)
MasterZivdumpbin вообще вроде в поставке винды идет, или нет ?Нет, она идет с VisualStudio.
...
Рейтинг: 0 / 0
30.05.2007, 22:10
    #34562763
egorych
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование __fastcall при динамической загрузке ф-ий из Dll (CBulder)
user_12345 Где грабли ? Грабли в спецификации __fastcall , как это ни банально - спецификатор заставляет передать 2 параметра функции в регистрах, с вызовом функции из dll такой подход - не самый корректный, мягко говоря
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Использование __fastcall при динамической загрузке ф-ий из Dll (CBulder) / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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