В vb6, как мне получить параметр char * из C dll?
72
4
Я вызываю C dll из своего приложения VB6. Dll имеет подпись вызова функции следующим образом.
void WINAPI geterrstr(char* foo);
где foo - это строка, которая должна быть возвращена.
В моем приложении VB6 я попытался вызвать свою DLL, используя следующий синтаксис, но возвращает пустую строку.
Declare Sub geterrstr Lib "technopnp.dll" (ByRef lpbuffer As String)
Любые идеи?
спросил(а)
2011-11-12T21:14:00+04:00
9 лет, 2 месяца назад
добавить комментарий
пожаловаться
Решение
103
Вы должны уметь:
Declare Sub geterrstr Lib "technopnp.dll" (ByVal lpbuffer As String)
...
dim buff as string
buff=string$(n, vbnullchar)
geterrstr buff
//read upto 1st vbnullchar
buff = left$(buff, instr(1, buff, vbnullchar) - 1)
if (buff="") then
//no data
else
msgbox buff
end if
n
должен быть соответствующим размером буфера, слишком коротким и сбой.
ответил(а)
2011-11-12T21:31:00+04:00
9 лет, 2 месяца назад
добавить комментарий
пожаловаться
Ваш ответ
- Вопросы
- Function-calls
- В vb6, как мне получить параметр char * из C dll?