mobile CCTV,mobile surveillance,police body worn cameras

 forgetPW
 registerNow
search
view: 623|reply: 3
打印 prevThread nextThread

关于使用BVCU sendcmd发送接收图片、文件的问题,求助

[copyURL]

3

主题

4

帖子

15

积分

newBie

Rank: 1

积分
15
jumpTo
owner
poston 2019-7-16 10:20 | authorOnly 回帖奖励 |倒序浏览 |阅读模式
关于调用BVCU.dll中File_Transfer的问题
目的是想在IM中发送图片,还有接收IM中的图片和文件
对BVCU中文件的传输函数进行了封装
int CBVCU::fileTransfer(int _bUpload,char* localFilePath, char* remoteFilePath,char* _szTargetID,BVCU_HSession* session,BVCU_FileTrans_OnEvent onEvent)
{
        BVCU_File_HTransfer fileHTransfer=NULL;
        BVCU_File_TransferParam transferParam;
        memset(&transferParam, 0, sizeof(transferParam));
        //初始化传递的参数
        transferParam.iSize=sizeof(transferParam);
        transferParam.pUserData=0;
        transferParam.iTimeOut=10000;
        transferParam.pLocalFilePathName=localFilePath;
        transferParam.pRemoteFilePathName=remoteFilePath;
        transferParam.bUpload=1;
        transferParam.iFileStartOffset=-1;
        transferParam.hSession=session;
        strcpy_s(transferParam.szTargetID,sizeof(transferParam.szTargetID),_szTargetID);
        transferParam.bUpload=_bUpload;//0下载,1上传
        //定义一个回调函数
        transferParam.OnEvent=fileTransfer_OnEvent;
        //启动文件的传输程序
        BVCU_Result result=BVCU_FileTransfer_Open(&fileHTransfer,&transferParam);//返回值
        if (BVCU_Result_SUCCEEDED(result))
    {
        
        m_procFileTransferEvent = onEvent;
    }
    return result;
}//封装调用的函数
然后导出了接口
LIB_MANAGED_LAYER_API int ManagedLayer_FileTransfer(const int* handle, BVCU_HSession* session,int _bUpload,char* localFilePath, char* remoteFilePath,char* _szTargetID,BVCU_FileTrans_OnEvent onEvent)
{
        CBVCU* bvcu = (CBVCU*)handle;
        return bvcu->fileTransfer(_bUpload,localFilePath,remoteFilePath,_szTargetID,session,onEvent);
}
C#进行了调用
public void fileOperater(string localPath, string remotePath, int bupload)
        {
            //包装文件的操作
            try
            {

                int ret = BVCU.ManagedLayer_FileTransfer(m_bvsdkHandle,ref m_server.sessionHandle,bupload,
                    Encoding.UTF8.GetBytes(localPath), Encoding.UTF8.GetBytes(remotePath), m_bvsdkEventHandler.fileTransfer_OnEvent);
                // 返回了一个值
                BVCU.FAILED(ret);
            }
            catch
            {
                MessageBox.Show("文件上传下载失败");
            }
        }
但是遇到的问题就是调用函数BVCU_FileTransfer_Open不成功,返回值是-65535
请哪位大神能指教一下用sencmds 发送图片或者文件的流程,和如何传递参数
reply

使用道具 report

1

主题

580

帖子

2001

积分

vipMem

Rank: 6Rank: 6

积分
2001
sofa
poston 2019-7-16 11:42 | authorOnly
您好,返回值是-65535,是参数非法,有以下几种情况:
1、transferParam.iSize大小不对:使用的dll和头文件版本不匹配。
2、transferParam.pLocalFilePathName,pRemoteFilePathName 有为空的。
3、transferParam.hSession不是有效的登陆句柄。
4、transferParam.pLocalFilePathName指定的本地文件无法读取(上传),或 无法创建写入(下载)
reply agree Against

使用道具 report

1

主题

580

帖子

2001

积分

vipMem

Rank: 6Rank: 6

积分
2001
bench
poston 2019-7-16 11:44 | authorOnly
程序所在目录下,应该有个log文件夹,里面有日志文件,可以看下日志。
如果没有,请用管理员权限运行。
reply agree Against

使用道具 report

3

主题

4

帖子

15

积分

newBie

Rank: 1

积分
15
ground
 Owner| poston 2019-7-16 12:59 | authorOnly
我是用sdk里面的Demo改的,版本是20180604_0920
reply agree Against

使用道具 report

creditRule

QQ|wireless surveillance

GMT+8, 2024-4-24 01:28 , Processed in 0.062503 second(s), 19 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

QuickReply backToTop BackToList