为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

C++
慕田峪4524236 2018-10-30 05:05:40
请问我在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);             请问这么转换入参类型是否正确?
查看完整描述

2 回答

?
蝴蝶不菲

TA贡献1810条经验 获得超4个赞

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

查看完整回答
反对 回复 2018-11-03
?
波斯汪

TA贡献1811条经验 获得超4个赞

你这种方式必须要采用动态加载参数了 因为看你的问题 好像你的参数不是固定的

查看完整回答
反对 回复 2018-11-03
  • 2 回答
  • 0 关注
  • 733 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信