FalseIO 2021-10-25 15:21 采纳率: 100%
浏览 138
已结题

java使用jna调用C++的dll文件 .参数类型问题

头文件

H264_DVR_API long  CALL_METHOD H264_DVR_GetDevConfig(long lLoginID, unsigned long dwCommand, int nChannelNO, char * lpOutBuffer, unsigned long dwOutBufferSize, unsigned long* lpBytesReturned,int waittime DEF_PARAM(1000));


C++文档:

H264_DVR_API long CALL_METHOD H264_DVR_GetDevConfig(
long lLoginID,
unsigned long dwCommand, 
int nChannelNO, 
char * lpOutBuffer,
unsigned long dwOutBufferSize, 
unsigned long* lpBytesReturned,
int waittime DEF_PARAM(1000)
);

参数;[in]lLoginID 登录句柄
[in]dwCommand 配置类型具体定义见数据结构定义中的SDK_CONFIG_TYPE
[in]nChannelNO 配置通道号,-1表示所有通道
[out]lpOutBuffer 存放输出参数的缓冲区, 根据不同的类型, 输出不同的配置结构, 具体见数据结构定义中各配置结构
[in]dwOutBufferSize 输入缓冲区的大小, (单位字节).
[out]lpBytesReturned 实际返回的缓冲区大小,对应配置结构的大小(单位字节)
[in]waittime 等待时间

java中代码
//获取设备配置

NativeLong H264_DVR_GetDevConfig(NativeLong lLoginID,long dwCommand,int nChannelNO,Pointer lpOutBuffer,long dwOutBufferSize,long lpBytesReturned,int waittime);

调用这个函数一直返回: -10002 用户参数不合法
其中第二个参数在C++中是 typedef enum _SDK_CONFIG_TYPE,所以我传的参数是枚举类下标, 请问下是不是传错了 .或者别的参数类型哪里有问题,试过好几种,结果全都是参数不合法,实在是搞不定了.

  • 写回答

1条回答 默认 最新

  • 编号灬9527 2021-10-25 16:07
    关注

    dll里面是无符号的长整形,就算数据不对,也不会是参数不合法吧

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 11月4日
  • 已采纳回答 10月27日
  • 创建了问题 10月25日

悬赏问题

  • ¥60 优博讯DT50高通安卓11系统刷完机自动进去fastboot模式
  • ¥15 minist数字识别
  • ¥15 在安装gym库的pygame时遇到问题,不知道如何解决
  • ¥20 uniapp中的webview 使用的是本地的vue页面,在模拟器上显示无法打开
  • ¥15 网上下载的3DMAX模型,不显示贴图怎么办
  • ¥15 关于#stm32#的问题:寻找一块开发版,作为智能化割草机的控制模块和树莓派主板相连,要求:最低可控制 3 个电机(两个驱动电机,1 个割草电机),其次可以与树莓派主板相连电机照片如下:
  • ¥15 Mac(标签-IDE|关键词-File) idea
  • ¥15 潜在扩散模型的Unet特征提取
  • ¥15 iscsi服务无法访问,如何解决?
  • ¥15 感应式传感器制作的感应式讯响器