以有涯求无涯 2018-10-16 06:23 采纳率: 0%
浏览 1194
已采纳

请问我在c#中用动态链接库的方式引入一个c++dll,在调用dll中的接口时,入参类型像这样转换是否正确?

依照这个dll的接口文档描述,它这个接口的入参是这样的:
long OltpTransData(unsigned long msgType,unsigned long packageType,unsigned long packageLength,char *str,LPTSTR com);

            c#代码中的引入,我是这么写的:
    [DllImport("OltpTransIc1701.dll", SetLastError = false)]
    public static extern long OltpTransData(long msgType, long packageType, long packageLength, ref string str, [MarshalAs(UnmanagedType.LPTStr)] string com);

            请问这么转换入参类型是否正确?
  • 写回答

3条回答 默认 最新

  • threenewbee 2018-10-16 07:26
    关注

    C++的long在有的编译器里相当于int,你可以用sizeof(long)看下
    unsigned long对应C#的ulong和uint
    char *str用StringBuilder

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 删掉jdk后重新下载,Java web所需要的eclipse无法使用
  • ¥15 uniapp正式环境中通过webapi将本地数据推送到设备出现的跨域问题
  • ¥15 xui建立节点,显示错误
  • ¥15 关于#单片机#的问题:开始、复位、十进制的功能可以实现,但是切换八进制的功能无法实现(按下按键也没有效果),把初始状态调成八进制,也是八进制可以实现但是切换到十进制不行(相关搜索:汇编语言|计数器)
  • ¥15 VINS-Mono或Fusion中feature_manager中estimated_depth是特征的深度还是逆深度?
  • ¥15 谷歌浏览器如何备份抖音网页数据
  • ¥15 分别有什么商家下面需要非常多的骑手为它工作?
  • ¥15 开机logo到Qt应用起来会黑屏将近两秒时间
  • ¥15 vfp工程项目管理系统的业务流程图
  • ¥50 找佬协助我完成Cpp课题(大一)