Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Офф-топ

Страница: 1 |

 

  Вопрос: Вызов функции Добавлено: 08.05.06 06:56  

Автор вопроса:  Progos | Web-сайт: html-expert.org.ru | ICQ: 311715784 
Здравствуйте.
Подскажите, в чем разница вызова функций из ДЛЛ в Си и Вб.
Есть библиотека AVerTV2K.dll
В VB объявляю так:
Private Declare Function AVER_HWInit Lib "AVerTV2K" () As Long
Private Declare Function AVER_GetRemoteData Lib "AVerTV2K" () As Long
Все работает на ура.
Объявляю в Си:
FARPROC AVER_HWInit;
FARPROC AVER_GetRemoteData;
HMODULE Aver;
Aver=LoadLibrary("AVerTV2K");
AVER_GetRemoteData=GetProcAddress(Aver,"AVER_GetRemoteData");
AVER_HWInit=GetProcAddress(Aver,"AVER_HWInit");
AVER_HWInit();
AVER_GetRemoteData();
При вызове 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-сайт: html-expert.org.ru
 Профиль | | #3
Добавлено: 09.05.06 07:40
Пробовал делать и так:
typedef long(*hAVER_HWInit)();
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-сайт: html-expert.org.ru
 Профиль | | #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";);

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам