singlepost

vb and dll указатель функции(callback) << На главную или назад  

Добрый день. Есть 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.
За ранее спасибо.

15 ответов в теме “vb and dll указатель функции(callback)”

  1. 4
    Павел Кузьмин ответил:

    точно..спасибо, тупанул:)

  2. 3
    Леонид Максимов ответил:

    вы же понимаете, что в dll делается так: ((void (_stdcall *)(BSTR))cbAddress)(SysAllocString(L"Hi!…")). то есть банальное приведение типов.

  3. 2
    Павел Кузьмин ответил:

    спасибо. да, я помню. Но вижу из описания что выглядеть в dll примерно так обычно как, long lpfunc. Тогда addressof. По гуглю, чего-то именно такой передачи callback не вижу:(
    Вот здесь например, //support.microsoft.com/kb/181578

  4. 1
    Леонид Максимов ответил:

    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.

Клуб программистов работает уже ой-ой-ой сколько, а если поточнее, то с 2007 года.