VB或VB.net中如何调用DLL中LPCTSTR参数
VC头文件
HYUTIL_API UINT WINAPI HYSaveImgAsBmp(BYTE *pImgBuf,long nSize,LPCTSTR szBmpFileName);
VC中调用方法
CString szSnapFile;
szSnapFile = "d:\a.bmp";
UINT unRet = ERR_SUCCESS;
unRet = HYSaveImgAsBmp(pBuffer,nBufSize,szSnapFile);
VB中声明
Public Declare Function HYSaveImgAsBmp Lib "HYUtil.DLL" (ByRef pImgBuf As Byte, ByVal nSize As Long, ByVal szFileName As Long) As Integer
VB中调用
Dim b() As Byte
...给b赋值
Dim sFile As String
sFile = "d:\a.bmp"
xx = HYSaveImgAsBmp(b(0), pnSize, StrPtr(sFile))
我本意是将图片文件保存在d:\a.bmp 但一直都是在当前目录下保存了这个以 d 为文件名的文件,我将d改为d.bmp可以打开,也就是文件名没传给DLL,只传了前面第一个字符D过去了!
[解决办法]
xx = HYSaveImgAsBmp(b(0), pnSize, VarPtr(sFile))
[解决办法]
Public Declare Function HYSaveImgAsBmp Lib "HYUtil.DLL" (ByRef pImgBuf As Byte, ByVal nSize As Long, ByVal szFileName As string) As long
[解决办法]
直接 string 就可以。