在VC中调用fortran生成的dll
来源:互联网 发布:飞秋2017 mac 编辑:程序博客网 时间:2024/05/20 20:45
1. 编译fortran函数为DLL,($ATTRIBUTES DLLEXPORT :: funname)标注为导出函数。
2. 在vc中用LoadLibraryEx得到该模块的句柄,用GetProcAddress定位该函数的指针
函数名称为_funname@number number为参数个数乘以4
3. 调用函数即可注意调用形式为_stdCall,传递指针。例如如果传递一个int 类型的参数要改为引用。在code generation改为_stdcall调用。
4. 注意函数指针的用法。
如:typedef int* Myproc(int n,int arr[3][3]);
Myproc = (MyProc) GetProcAddress()
参考文档:
Fortran 的DLL程序:
SUBROUTINE ARRAYTEST(n,arr)
$ATTRIBUTES DLLEXPORT :: ARRAYTEST
INTEGER n,i,j
REAL(4) arr(3,3)
DO i=1,3
DO j=1,3
arr(i,j)=10.1*i+j
END DO
END DO
n=n+10
END SUBROUTINE
VC中调用程序:
HINSTANCE hIns;
hIns = LoadLibraryEx("EXAM.dll",NULL,DONT_RESOLVE_DLL_REFERENCES);
typedef int (*MYPROC)(int &a, float b[3][3]);
MYPROC fun= (MYPROC)GetProcAddress(hIns,"_ARRAYTEST@8");
float arr[3][3];
int a = 10;
fun(a,arr);
CString str;
str.Format("%.3f",arr[2][2]);
MessageBox(str);
::FreeLibrary(hIns);
- 在VC中调用fortran生成的dll
- VC与Matlab混合编程(在VC中调用.m文件编译生成的DLL)
- VC++和Matlab混合编程(在VC中调用将.m文件生成的DLL)
- 在VC.NET中调用VB.NET或C#生成的DLL类库
- C#调用fortran的dll
- VC中DLL的调用
- 再谈在VB中调用VC++开发的DLL
- 在C#中调用VC编写的dll库
- 再谈在VB中调用VC++开发的DLL
- 在 VB 中调用 VC 写的 DLL
- 在 VB 中调用 VC 写的 DLL
- 在C#中调用VC编写的dll库
- 再谈在VB中调用VC++开发的DLL
- 在vb,vc中调用vb编写的DLL
- 在vc中调用vb的dll文件
- 在C#中调用VC编写的dll库
- 再谈在VB中调用VC++开发的DLL
- 如何在VB中调用VC编写的DLL
- 内核_如何加载自己写的模块[ZT]
- 通用网站系统漏洞及修复方法
- 常用htaccess.文件配置,轻松上手
- 集群神器——terracotta与各种框架的整合
- 冷山的博客思听书摘索引页
- 在VC中调用fortran生成的dll
- TCP协议握手OPTION字段解析及其应用 | 本真心灵
- 使用Qt设计师(Qt Designer)快速设计窗体
- 关于MYSQL持久连接
- thumbnail解码
- 2011-9-14
- Ext Js弹出窗口(七)
- 禁止文本框textbox自动完成
- 【转】Linux嵌入式系统开发初步