一、 C++直接调用Fortran动态库函数

1.建立Fortran动态库项目

须在Fortran程序文件中添加Compiler Directives语句:

!DEC$ ATTRIBUTES DLLEXPORT::(程序名)

程序示例如下图所示。

2.生成.lib和.dll文件

编译,链接(即生成解决方案)Fortran源代码生成相应的.lib和.dll库文件。

3.编辑并运行C++程序

建立C++控制台项目,项目->属性->链接器->输入->附加依赖项 中加入需要调用的lib文件,然后将.lib文件和.dll文件复制到项目的根目录中(注意:.dll文件需要复制到.exe文件夹,.lib文件通过指定搜索路径来引用)。

二、 C++间接调用Fortran动态库函数

这里间接调用是指,可将Fortran程序TTT()和OUTPUT()封装进一个module中(一中的module只是封装了变量),然后使用一个Fortran子程序mainp()调用封装进module中的子程序,这里子程序mainp()的功能类似于一中C++主程序main(),最后使用C++程序调用mainp()子程序。

与上一节不同的是,由于一中C++主程序直接调用了TTT()和OUTPUT(),所以这两个程序分别要进行外界调用的申明,而间接调用只需要对mainp()申明,无需对mainp()调用的函数进行申明,这样可大大简化混合编程的工作量,且在使用两种语言混合开发项目时,不需要事先考虑跨平台接口。

C++调用Fortran动态库说明相关推荐

  1. python调用c++动态库 linux_linux中使用boost.python调用c++动态库的方法

    前言 最近开始使用 robot framework 测试c++的动态库,robot framework 是跑在 windows 上面,c++动态库是跑在远程linux主机上面.测试办法是让 robot ...

  2. python调用.net动态库

    # python调用.net动态库 ### pythonnet简介 ----------------------------- - pythonnet是cpython的扩展 - pythonnet提供 ...

  3. C# : 调用C++动态库(dll)

    在实际软件开发过程中,由于公司使用了多种语言开发,在C#中可能需要实现某个功能,而该功能可能用其他语言已经实现了,那么我们可以调用其他语言写好的模块吗?还有就是,由于C#开发好的项目,我们可以利用re ...

  4. go语言调用c 的头文件 so,Golang生成共享库(shared library)以及Golang生成C可调用的动态库.so和静态库.a...

    Golang类似于C的静态语言,效率也接近于C,如果Golang也可以导出可供C调用的库,那可以和很多高级语言say goodbye了,goodbye似乎又有点武断,但至少说,Golang可以做很多事 ...

  5. C#总结(四)调用C++动态库

    由于公司很多底层的SDK,都是C++开发,上层的应用软件却是C# Winform程序.在实际工作的过程中,就经常碰到了C# 程序调用C++ 动态库的问题.最近一直在和C++ 打交道,C# 怎么调用C+ ...

  6. Qt调用CUDA动态库及配置

    本文配置环境:Win7(x64)+VS2012+CUDA+Qt5.5.0 1.首先保证CUDA集成到VS下(如下图顺利安装Nsight for VS2012).CUDA安装比较简单,选自定义安装,然后 ...

  7. C语言调用so动态库的两种方式

    方式1:类似静态库的调用(使用头文件) 这种方式生成的程序会在启动时候就加载so动态库. add.h int add(int x, int y); add.c #include "add.h ...

  8. Java调用so动态库方法

    在Java里面调用so动态库的方法 1.引入jna依赖 <dependency><groupId>net.java.dev.jna</groupId><art ...

  9. Node.js 调用 dll动态库 以华旭身份证阅读器为例

    需求来源 由于使用Electron使用开发桌面端,同时也需要连接硬件设备,单纯使用js方法无法完成,需要通过Node调用dll动态库方式完成. 版本说明: node v12.18.3 (32位) np ...

最新文章

  1. Connect(); // 2015 简要整理
  2. 用枚举enum替代int常量
  3. 650服务器raid配置_DELL R730服务器配置RAID及安装服务器系统
  4. Redis和nosql简介,api调用;Redis数据功能(String类型的数据处理);List数据结构(及Java调用处理);Hash数据结构;Set数据结构功能;sortedSet(有序集合)数
  5. asp.net mvc使用TagBuilder的应用程序集
  6. VC++中忽略所有默认库纯Win32 API编译及链接 - 计算机软件编程 - Wangye's Space
  7. Unity中Android API 28之后无法HTTP请求
  8. 各种设计模式对比及编程思想总结
  9. JavaScript核心参考
  10. 设计模式(11)——组合模式
  11. a超链接锚点的设置和应用 三国演义
  12. [Noi2010]航空管制
  13. python中除以0的处理方法
  14. Unity_7 如何使用遮挡剔除Occlusion Culling
  15. 资深程序员才能看懂的幽默时刻
  16. 基于IGX Web SCADA平台构建 - 污水处理厂监控系统
  17. 关于MongoDB使用的优化总结
  18. 华为双屏手机计算机,华为双屏手机设计惊艳亮相 背面的屏幕是干嘛用的?
  19. python语言程序设计实践教程答案实验六_Python语言程序设计实验指导与习题--详细介绍...
  20. windows 安装包管理器scoop

热门文章

  1. 笔记本电脑中浏览器无法连接网络。无法连接到代理服务器,错误代码 ERR_PROXY_CONNECTION_FAILED
  2. 酷壳网陈皓:Why C++?王者归来
  3. 那些值得收藏的神奇的网站,使用RSS阅读器订阅喜欢的网站 --授人以鱼不如授人以渔...
  4. 公司注册地址填什么?注册地址一定是实际办公地址吗?
  5. blog-数据仓库维度建模系列--缓慢变化维(SCD)的思考(一)
  6. 在Hive上实现SCD
  7. 查询1inux系统中文件颜色分别代表什么
  8. lenovo E450触摸板关闭方法
  9. 信息报送不及时整改措施_上报材料不及时整改措施.doc
  10. 排序算法之交换类排序