我有一个fortran语言的源程序,想在vc++中调用。我原来的做法是:先用visual fortran开发环境将这个fortran程序做成了一个dll文件,然后再++中调用,但是由于这个fortran程序中有写文件的操作,也就是说她在程序中用write函数向外部文件中写入了其计算出来的结果,所以在调试这个dll的时候,会异常退出,出错的地方就是在那些write函数调用的地方。
请问,是不是动态链接库中的函数中不能有文件写操作呢?还是我的dll哪个地方没有做好?请问有没有熟悉visual fortran开发环境的高手可以指点一二呢?
象我这种情况,该怎么样才能真正方便的实现调用呢?请指教,万分感谢!!!
一百分送上
请问,是不是动态链接库中的函数中不能有文件写操作呢?还是我的dll哪个地方没有做好?请问有没有熟悉visual fortran开发环境的高手可以指点一二呢?
象我这种情况,该怎么样才能真正方便的实现调用呢?请指教,万分感谢!!!
一百分送上
解决方案 »
- DLL模态对话框的问题,请教各位了!!!
- 想转电信方向的开发,请高人指点.
- 为什么我点击字窗口的关闭按钮,主窗口也跟着关闭,我没有那样的代码
- CComObjectCached,CComObjectNoLock.....等类有什么作用?
- 菜鸟请教?防火墙。
- BMP透明显示(难道www.codeguru.com/有问题吗)????????????
- CFile类read函数每次按指定的字节数读取,能否read一行?
- 请教大家 一个问题栈遭到破坏的问题
- 请问我的UpdateWindow()为什么起不了作用呢?
- 兼容性问题
- Installshield中DLL调用 出口函数是调用 ShellExecute API执行一个应用 为什么出错?
- 组态软件FIX(工业控制),有钱途大家来学
用VS的Depends查看写好的动态库
extern "c" FUN(int,double,..) // 与你的FORTRAN 函数相同,
//包含你的.FOR文件
//因为FORTRAN 和 C/C++使用相同的调用方式
你这种方式是不是就不需要创建动态连接库?
我的信箱:[email protected]
多谢
FORTRAN/BASIC/C/C++使用同一种的函数调用方式,好像是从左压入堆践
如果你使用的是VC60/VISUAL FORTRAN的话,可以用一下的方式:
1,将你的.FOR文件加入你的PROJECT.
2,在你需要调用的地方定义如下:
extern "C" FUN(...),与FORTRAN中的函数一一对应,包括参数
3,在你的程序中可以直接调用了
如:
FUN(...);
4,编译,建议使用FORTRAN90的语法,降低不必要的语法错误!
希望以后互相交流;
在一本书,<<visual Fortran ..>>名字机不清了,仔细招招吧,在图书馆
extern void _stdcall SUBROUTINE(argList…);
extern float _stdcall FUNCTION(argList…);
2 C++语言调用Fortran模块的声明:
extern “C” { void _stdcall SUBROUTINE(argList…); }
extern “C” { float _stdcall FUNCTION(argList…); }