ITPub博客

首页 > > > C#调用C++的dll

C#调用C++的dll

作者:llittle 时间:2019-10-16 13:55:26 0 删除 编辑


//方法:api_ihuReadRawDataByTimeStr

//功能:查询报警数据

//参数说明:

//long serverhandle in 连接句柄

//char *tagnames in 标签点名

//char **tagvalues out 字符串数组,查询结果值

//IHU_TIMESTAMP *timestamps out 数组,查询结果时间戳

//返回:

//>0--IH函数返回错误

//0--成功

//<0-失败,其中-50:异常,-100:加载错误

C#中的声明:

[DllImport("IHAPIDLLS.dll", EntryPoint = "api_ihuReadRawDataByTimeStr", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]

public static extern int Api_ihuReadRawDataByTimeStr6(int serverhandle,[MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 0, ArraySubType = UnmanagedType.LPStr)] string[] argv, IntPtr timestamps2)

但是调用的时候报错:尝试读取或者写入受保护的内存。

请问这个输出类型的字符串数组char**对应C#中的哪个类型?

另外,我尝试着把char**这个参数改成ref IntPtr或者IntPtr、IntPtr[]、ref IntPtr[]、out IntPtr[]都报同样的错误,请问这到底是什么为什么?

这个问题困扰了我很久了,跪求大侠们的解答。谢谢!

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/813/viewspace-3128444/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2019-04-12

  • 博文量
    448
  • 访问量
    4365