做一个DLL,要返回数据,准备用LPBYTE的类型,dll定义为BOOL EXPORTED_DLL_FUNCTION ReadState (unsigned int iNo,LPBYTE lpDataBuff,unsigned int iBuffLen)。
在vb里调用,vb里这样定义Public Declare Function ReadState Lib "ReadDll.dll" (ByVal iNo As Long, ByRef lpDataBuff As String, ByVal iBuffLen As Long) As Boolean在vc中,
CString s("abc");
lpDataBuff= (LPBYTE)(LPCTSTR)s;在vb里
j = ReadState(Val(Text3.Text), b, 720)但返回为空,求教高手
在vb里调用,vb里这样定义Public Declare Function ReadState Lib "ReadDll.dll" (ByVal iNo As Long, ByRef lpDataBuff As String, ByVal iBuffLen As Long) As Boolean在vc中,
CString s("abc");
lpDataBuff= (LPBYTE)(LPCTSTR)s;在vb里
j = ReadState(Val(Text3.Text), b, 720)但返回为空,求教高手
CString s("abc");
char aa[256];
strcpy(aa, s);
lpDataBuff= (LPBYTE)aa;
你说的返回是指参数lpDataBuff?
那在dll中
strcpy(lpDataBuff,"abc");
,如果对,这样和3楼的不是一样吗?
你在调用这个函数前须确认已经分配了空间
strcpy((char*)lpDataBuff,"abc");这样试一下