C#调用DLL动态库,请大家帮忙

时间:2022-01-09 19:00:15
C#调用DLL动态库,请大家帮忙

C#调用DLL动态库时(动态库听说是用delphi编写的),会报内存受保护出错,具体见图片代码

14 个解决方案

#1


顶一下顶一下

#2


把dllimport定义贴出来
一般来说需要传值出来的,
如果是基本类型,就需要加ref或者out
如果是数据组需要加[In,Out]

#3


接口翻译有问题

#4


        [DllImport("hscom.dll")]
        public static extern void Set_Harmonic_Data(double[] HAng,int[] HNum,double[] HVolt,double[] HCur);

这个"DllImport"是我定义的,估计就是这儿有问题,

#5


引用 2 楼 xian_wwq 的回复:
把dllimport定义贴出来
一般来说需要传值出来的,
如果是基本类型,就需要加ref或者out
如果是数据组需要加[In,Out]


应该不需要传值出来,只是需要传值进去的

#6


引用 1 楼 jack18hao 的回复:
顶一下顶一下
 给个dll下载地址,反编译看下。

#7


delphi调用时,形参只写数组名就可以了,C#怎么定义接口和传参数?

#8


引用 6 楼 yuyanxing09 的回复:
Quote: 引用 1 楼 jack18hao 的回复:

顶一下顶一下
 给个dll下载地址,反编译看下。

http://pan.baidu.com/s/1jISnjeQ

#9


数据类型都是基本类型,感觉和CharSet关系不大
查调用约定(Calling convention)
__stdcall,__cdecl,__fastcall都试下

#10


double 并不是windows 接口的标准中的数据类型,这个肯定有问题。dllimport 是什么你不懂可以百度呀

#11


参数定义错误

#12


哪位大神能帮我完成用C#调用动态库中的Set_Harmonic_Data  dll文件详见: http://pan.baidu.com/s/1jISnjeQ ,已经有了Delphi的调用例子(见帖子)

#13


引用 12 楼 jack18hao 的回复:
哪位大神能帮我完成用C#调用动态库中的Set_Harmonic_Data  dll文件详见: http://pan.baidu.com/s/1jISnjeQ ,已经有了Delphi的调用例子(见帖子)


工程无法添加dll
C#调用DLL动态库,请大家帮忙

#14


引用 12 楼 jack18hao 的回复:
哪位大神能帮我完成用C#调用动态库中的Set_Harmonic_Data  dll文件详见: http://pan.baidu.com/s/1jISnjeQ ,已经有了Delphi的调用例子(见帖子)


1、上次回答错了,因平时一般用C#dll的,按照引用操作来了。
2、这次重新测试了一下,虽然无法正常调用函数,但是报错跟你不一样。
C#调用DLL动态库,请大家帮忙

很少用c++的,只能帮你到这里了

#1


顶一下顶一下

#2


把dllimport定义贴出来
一般来说需要传值出来的,
如果是基本类型,就需要加ref或者out
如果是数据组需要加[In,Out]

#3


接口翻译有问题

#4


        [DllImport("hscom.dll")]
        public static extern void Set_Harmonic_Data(double[] HAng,int[] HNum,double[] HVolt,double[] HCur);

这个"DllImport"是我定义的,估计就是这儿有问题,

#5


引用 2 楼 xian_wwq 的回复:
把dllimport定义贴出来
一般来说需要传值出来的,
如果是基本类型,就需要加ref或者out
如果是数据组需要加[In,Out]


应该不需要传值出来,只是需要传值进去的

#6


引用 1 楼 jack18hao 的回复:
顶一下顶一下
 给个dll下载地址,反编译看下。

#7


delphi调用时,形参只写数组名就可以了,C#怎么定义接口和传参数?

#8


引用 6 楼 yuyanxing09 的回复:
Quote: 引用 1 楼 jack18hao 的回复:

顶一下顶一下
 给个dll下载地址,反编译看下。

http://pan.baidu.com/s/1jISnjeQ

#9


数据类型都是基本类型,感觉和CharSet关系不大
查调用约定(Calling convention)
__stdcall,__cdecl,__fastcall都试下

#10


double 并不是windows 接口的标准中的数据类型,这个肯定有问题。dllimport 是什么你不懂可以百度呀

#11


参数定义错误

#12


哪位大神能帮我完成用C#调用动态库中的Set_Harmonic_Data  dll文件详见: http://pan.baidu.com/s/1jISnjeQ ,已经有了Delphi的调用例子(见帖子)

#13


引用 12 楼 jack18hao 的回复:
哪位大神能帮我完成用C#调用动态库中的Set_Harmonic_Data  dll文件详见: http://pan.baidu.com/s/1jISnjeQ ,已经有了Delphi的调用例子(见帖子)


工程无法添加dll
C#调用DLL动态库,请大家帮忙

#14


引用 12 楼 jack18hao 的回复:
哪位大神能帮我完成用C#调用动态库中的Set_Harmonic_Data  dll文件详见: http://pan.baidu.com/s/1jISnjeQ ,已经有了Delphi的调用例子(见帖子)


1、上次回答错了,因平时一般用C#dll的,按照引用操作来了。
2、这次重新测试了一下,虽然无法正常调用函数,但是报错跟你不一样。
C#调用DLL动态库,请大家帮忙

很少用c++的,只能帮你到这里了