Добрый день. Есть dll на с++, и что-то никак не могу найти, как в VB объявить следующую функцию dll
// описание callback
typedef void __stdcall iidk_callback_ex(const char* msg,
const char* slave_id,
unsigned long user_param);
//Функцию которую надо импортнуть
IIDK_API int __stdcall ConnectEx(const char* address,
const char* port,
const char* id,
iidk_callback_ex* lpfunc,
unsigned long user_param,
int connect_type,
unsigned long connect_attempts);
Меня интересует вот этот аргумент iidk_callback_ex* lpfunc в ConnectEx.
За ранее спасибо.
31 марта 2010 в 9:05
точно..спасибо, тупанул:)
31 марта 2010 в 9:04
вы же понимаете, что в dll делается так: ((void (_stdcall *)(BSTR))cbAddress)(SysAllocString(L"Hi!…")). то есть банальное приведение типов.
31 марта 2010 в 9:03
спасибо. да, я помню. Но вижу из описания что выглядеть в dll примерно так обычно как, long lpfunc. Тогда addressof. По гуглю, чего-то именно такой передачи callback не вижу:(
Вот здесь например, //support.microsoft.com/kb/181578
31 марта 2010 в 9:02
private sub iidk_callback_ex(byval msg as long, byval slave_di as long, byval user_param as long)
…
end sub
private declare function ConnectEx lib "…" (byval address as long, byval port as long, byval id as long, byval lpfunc as long, byval user_param as long, byval connect_type as long, byval connect_attempts as long) as long
вспомните, что есть такая страшная вещь, как ключевое слово addressof.