Dll导出函数的引用参数(LPTSTR类型)在VB中用不了???
做了一个Dll, 是动态加载的,导出一个函数Test:
typedef enum
{
ERROR_OK,
ERROR_UNKNOWN
}TEST_ERR;
#define DLL_FUNCTION extern "C" __declspec(dllexport) TEST_ERR __stdcall
DLL_FUNCTION Test(LPTSTR lpszOut, LPCTSTR lpszIn)
{
.....
}
在VC中用LoadLibrary调用没问题,在VB中调用会导致VB环境崩溃:
Private Declare Function Test Lib "MyTest.dll" (ByRef strOut As String, ByVal strIn As String) As Long
Dim strOut as String, strIn as String
strIn="AAA"
Test strOut, strIn
MsgBox strOut
VB程序执行到Test函数就会出错.我试着写一个不含引用参数的DLL导出函数或者把Test函数在VB中的声明改成:
...(ByVal strOut As String, ...)就不会报错, 当然这样函数也没有用了.
好像问题出在LPTSTR类型的引用参数上,不解.