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

怎样把下面的vc翻译成vb解决办法

2012-01-26 
怎样把下面的vc翻译成vb////VC是这样的NET_DVR_APILONG__stdcallNET_DVR_FindNextPicture(LONGlFindHandle

怎样把下面的vc翻译成vb
////VC   是这样的

NET_DVR_API   LONG   __stdcall   NET_DVR_FindNextPicture(LONG   lFindHandle,LPNET_DVR_FIND_PICTURE   lpFindData);

NET_DVR_API   BOOL   __stdcall   NET_DVR_GetPicture(LONG   lUserID,char   *sDVRFileName,char   *sSavedFileName);

typedef   struct
{
char   sFileName[100];//图片名
NET_DVR_TIME   struTime;//图片的时间
DWORD   dwFileSize;//图片的大小
char   sCardNum[32];//卡号
}NET_DVR_FIND_PICTURE,*LPNET_DVR_FIND_PICTURE;


VB我是这样写及调用的


Declare   Function   NET_DVR_FindNextPicture   Lib   "HCNetSDK.dll "   (ByVal   lFindHandle   As   Long,   ByVal   lpFindData   As   Long)   As   Long

Declare   Function   NET_DVR_GetPicture   Lib   "HCNetSDK.dll "   (ByVal   lUserID   As   Long,   sDVRFileName   As   Long,   sSavedFileName   As   Long)   As   Long

Type   NET_DVR_FIND_PICTURE
        sFileName(0   To   100)   As   Byte     '//图片名
        struTime   As   NET_DVR_TIME   '/图片的时间
        dwFileSize     As   Long   '//图片的大小
        sCardNum   As   String   '     //卡号
End   Type


                bRet   =   NET_DVR_FindNextPicture(m_lFileHandle,   VarPtr(strFileInfo))

                        nFileName   =   iPath   &   CStr(iFile)   &   "_ "   &   sID   &   ".jpg "
                        sFileName   =   StrConv(strFileInfo.sFileName,   vbFromUnicode)
                        bRet   =   NET_DVR_GetPicture(m_lServerID,   StrPtr(sFileName),   StrPtr(nFileName))


为什么   sFileName得到的是乱码,是数据结构定义错了吗



[解决办法]
Type NET_DVR_FIND_PICTURE
sFileName(0 To 100) As Byte '//图片名 大了//
struTime As NET_DVR_TIME '/图片的时间
dwFileSize As Long '//图片的大小
sCardNum As String *32 ' //卡号 固定长度
End Type

[解决办法]
vb字符串为 BSTR 格式,用 strconv( , vbFromUnicode) 转换为 ANSI 格式,因为 VC 中的 char* 是 Ansi 格式的,对返回值要用 strconv( , vbUnicode) 转成 BSTR 格式,就可以正常显示了。

热点排行