Страница: 1 |
Страница: 1 |
Вопрос: Вызов функции
Добавлено: 08.05.06 06:56
Автор вопроса: Progos | Web-сайт:
Здравствуйте.
Подскажите, в чем разница вызова функций из ДЛЛ в Си и Вб.
Есть библиотека AVerTV2K.dll
В VB объявляю так:
Private Declare Function AVER_GetRemoteData Lib "AVerTV2K" () As Long
Объявляю в Си:
FARPROC AVER_GetRemoteData;
HMODULE Aver;
Aver=LoadLibrary("AVerTV2K");
AVER_GetRemoteData=GetProcAddress(Aver,"AVER_GetRemoteData");
AVER_HWInit=GetProcAddress(Aver,"AVER_HWInit");
AVER_HWInit();
AVER_GetRemoteData();
Заранее спасибо
Ответы
Всего ответов: 4
Номер ответа: 1
Автор ответа:
HOOLIGAN
Вопросов: 0
Ответов: 1066
Профиль | | #1
Добавлено: 08.05.06 09:00
Вылетает потому, что в коде ошибка.
Номер ответа: 2
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #2
Добавлено: 08.05.06 16:59
FARPROC где-то define? ведь. GetProcAddress возвр. указатель, а твоя AVER_GetRemoteData хрен поймёшь какого типа...
Номер ответа: 3
Автор ответа:
Progos
ICQ: 311715784
Вопросов: 39
Ответов: 157
Web-сайт:
Профиль | | #3
Добавлено: 09.05.06 07:40
Пробовал делать и так:
typedef long(*hAVER_GetRemoteData)(int a,int b);
hAVER_HWInit AVER_HWInit =NULL;
hAVER_GetRemoteData AVER_GetRemoteData =NULL;
AVER_GetRemoteData = (hAVER_GetRemoteData)GetProcAddress(Aver,"AVER_GetRemoteData"
AVER_HWInit = (hAVER_HWInit)GetProcAddress(Aver,"AVER_HWInit"
Ниче не получается...
Номер ответа: 4
Автор ответа:
Progos
ICQ: 311715784
Вопросов: 39
Ответов: 157
Web-сайт:
Профиль | | #4
Добавлено: 09.05.06 07:50
Извиняюсь, вот так делал
typedef long(*hAVER_HWInit)();
typedef long(*hAVER_GetRemoteData)();
hAVER_HWInit AVER_HWInit =NULL;
hAVER_GetRemoteData AVER_GetRemoteData =NULL;
AVER_GetRemoteData = (hAVER_GetRemoteData)GetProcAddress(Aver,"AVER_GetRemoteData"
AVER_HWInit = (hAVER_HWInit)GetProcAddress(Aver,"AVER_HWInit"