首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

VB或VB.net中怎么调用DLL中LPCTSTR参数

2012-01-14 
VB或VB.net中如何调用DLL中LPCTSTR参数VC头文件HYUTIL_API UINT WINAPI HYSaveImgAsBmp(BYTE *pImgBuf,lon

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过去了!


[解决办法]

VB code
 xx = HYSaveImgAsBmp(b(0), pnSize, VarPtr(sFile))
[解决办法]
VB code
Public Declare Function HYSaveImgAsBmp Lib "HYUtil.DLL" (ByRef pImgBuf As Byte, ByVal nSize As Long, ByVal szFileName As string) As long
[解决办法]
直接 string 就可以。

热点排行