Fortran Coder

查看: 6833|回复: 2
打印 上一主题 下一主题

[混编] DLL调用中的 common 传递

[复制链接]

9

帖子

4

主题

0

精华

入门

F 币
66 元
贡献
24 点
跳转到指定楼层
楼主
发表于 2015-7-10 10:09:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
源程序:
[Fortran] 纯文本查看 复制代码
program ex0811
implicit none
  integer :: a,b
  common /group1/ a
  common /group2/ b
  a=1
  b=2
  call ShowGroup1()
  call ShowGroup2()
  stop
end
subroutine ShowGroup1()
implicit none
  integer :: num1
  common /group1/ num1
  write(*,*) num1
  return
end

subroutine ShowGroup2()
implicit none
  integer :: num1
  common /group2/ num1
  write(*,*) num1
  return
end

我想把后面的子函数做成DLL
我的方法是:
[Fortran] 纯文本查看 复制代码
subroutine ShowGroup1()
!DEC$ ATTRIBUTES DLLEXPORT :: ShowGroup1
implicit none
  integer :: num1
  common /group1/ num1
  write(*,*) num1
  return
end

subroutine ShowGroup2()
!DEC$ ATTRIBUTES DLLEXPORT :: ShowGroup2
implicit none
  integer :: num1
  common /group2/ num1
  write(*,*) num1
  return
end

最后调用的结果与源程序不一样,想问一下什么原因?
分享到:  微信微信
收藏收藏 点赞点赞 点踩点踩

1963

帖子

12

主题

5

精华

论坛跑堂

臭石头雪球

F 币
1357 元
贡献
574 点

美女勋章热心勋章星光勋章新人勋章贡献勋章管理勋章帅哥勋章爱心勋章规矩勋章元老勋章水王勋章

沙发
发表于 2015-7-10 10:31:15 | 只看该作者
common 这东西并不能跨越 DLL 传递。

9

帖子

4

主题

0

精华

入门

F 币
66 元
贡献
24 点
板凳
 楼主| 发表于 2015-7-10 11:04:08 | 只看该作者
fcode 发表于 2015-7-10 10:31
common 这东西并不能跨越 DLL 传递。

额,明白了,多谢
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

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

GMT+8, 2024-5-6 21:51

Powered by Tencent X3.4

© 2013-2024 Tencent

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