Fortran Coder

查看: 12226|回复: 8
打印 上一主题 下一主题

[混编] c++向Fortran编写的dll中传递字符串变成乱码

[复制链接]

58

帖子

9

主题

0

精华

熟手

F 币
256 元
贡献
163 点
楼主
发表于 2016-11-16 21:40:47 | 显示全部楼层
本帖最后由 zhuhuanlai 于 2016-11-16 22:28 编辑
fcode 发表于 2016-11-3 11:32
在这个过程中,你用到了很多不规范的用法。只能在 IVF 编译器上使用。

更规范的用法是,使用 ISO_C_Bindin ...

大神好,我在2013VS和2013IVF上再现上述程序时能输出FORTRAN的DLL文件,如下图一所示
我把DLL文件拷贝到C++(ConsoleApplication1)下的DEBUG文件内,如下图二所示

然后build  C++(ConsoleApplication1)工程时,出现以下错误如下图三所示:

补充说明,我的解决方案中包含了FORTRAN和C++两个工程,如下图四所示:


还请大神指点!


YWNXN)01VERI5N[189FE1UK.png (25.11 KB, 下载次数: 312)

图一

图一

I)1RUAEEH3GM(3GWEKW4KC1.png (30.05 KB, 下载次数: 281)

图二

图二

849(YD5GD_($LIX0ZMNGWY9.jpg (292.27 KB, 下载次数: 295)

图三

图三

0MX9ZBNQ$~IITFEW{MV[0Z0.jpg (280.94 KB, 下载次数: 292)

图四

图四

58

帖子

9

主题

0

精华

熟手

F 币
256 元
贡献
163 点
沙发
发表于 2016-11-17 16:53:56 | 显示全部楼层
fcode 发表于 2016-11-17 09:00
int main(){
就可以了。毕竟你只是测试。

谢谢您的回复。
我把int _tmain(int argc, _TCHAR* argv[])   改成
int main(int argc, _TCHAR* argv[])         出现了同样的错误,是什么原因呢?
另外,这两种表达方式有什么区别呢?

58

帖子

9

主题

0

精华

熟手

F 币
256 元
贡献
163 点
板凳
发表于 2016-11-17 21:04:35 | 显示全部楼层
fcode 发表于 2016-11-17 18:51
我的意思是改成
int main()
去掉里面的参数

感谢,我试试您的方法!
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

捐赠本站|Archiver|关于我们 About Us|小黑屋|Fcode ( 京ICP备18005632-2号 )

GMT+8, 2024-5-7 15:28

Powered by Tencent X3.4

© 2013-2024 Tencent

快速回复 返回顶部 返回列表