主题:codeblock开发的dll,在c#下面找不到函数入口,为什么?
feiyuno1987
[专家分:10] 发布于 2011-07-04 16:32:00
在cvf下面就可以用,一样样的代码,为什么?难道是codeblock的配置有问题吗?
回复列表 (共6个回复)
沙发
dongyuanxun [专家分:7180] 发布于 2011-07-04 20:53:00
You know Codeblock is only a IDE, not a compiler.
板凳
cgl_lgs [专家分:21040] 发布于 2011-07-04 23:36:00
用的是C::B加上gfortran么?
如果是。
那么原因很简单,因为函数名字不一样了:)
原来你在C#里如果是:
__sub123
那么在用gfortran编译出来的就是:
sub123_
3 楼
dongyuanxun [专家分:7180] 发布于 2011-07-05 02:06:00
[quote]用的是C::B加上gfortran么?
如果是。
那么原因很简单,因为函数名字不一样了:)
原来你在C#里如果是:
__sub123
那么在用gfortran编译出来的就是:
sub123_[/quote]
用f2003的C_BINDING想编译出来啥就是啥
4 楼
feiyuno1987 [专家分:10] 发布于 2011-07-05 09:37:00
[quote]用的是C::B加上gfortran么?
如果是。
那么原因很简单,因为函数名字不一样了:)
原来你在C#里如果是:
__sub123
那么在用gfortran编译出来的就是:
sub123_[/quote]
哪怎么办呢?
5 楼
feiyuno1987 [专家分:10] 发布于 2011-07-05 09:38:00
[quote]You know Codeblock is only a IDE, not a compiler.[/quote]
恩,加了gfortran
6 楼
feiyuno1987 [专家分:10] 发布于 2011-07-05 10:42:00
[quote]用的是C::B加上gfortran么?
如果是。
那么原因很简单,因为函数名字不一样了:)
原来你在C#里如果是:
__sub123
那么在用gfortran编译出来的就是:
sub123_[/quote]
是的,我找到了dll的函数入口,修改后可以进去了,但是运行的结果很夸张:10+10=1212324 。代码没有问题,难道是编译器编码跟C#不一样吗?很奇怪!
我来回复