Здравствуйте, karp2005, Вы писали:
K>Поправил:
K>extern "C" void __declspec(dllexport) __stdcall EnumInterface(LPWSTR p_outString)
K>Теперь правильно?
K>Обращаюсь из VB k DLL так:
K>Declare Function EnumInterface Lib "С:\mydll.dll" (ByVal lpBuffer As String)
K>И тут мы слетаем......
K>Что я делаю снова не правильно?
Во-первых, EnumInterface не возвращает значение, значит, не функция, а подпрограмма.
Declare Sub EnumInterface Lib "С:\mydll.dll" (ByVal lpBuffer As String)
Во-вторых, VB передает строки как LPSTR. Чтобы обойти преобразование строк, нужно передавать Long
Declare Sub EnumInterface "С:\mydll.dll" (ByVal s As Long)
...
BufferLength& = 256
Buffer$ = Space$(BufferLength)
Call EnumInterface(StrPtr(Buffer$))