回 帖 发 新 帖 刷新版面

主题:急用:求一个fortran调用API简单实例

求一个fortran程序调用API简单的完整实例,粘一个具有代表性的,简单一点,我是对调用API函数需要写的格式不懂,想参考一下。急用啊,谢谢啦!

回复列表 (共15个回复)

沙发

[quote][font=宋体][color=#000000]  [/color][color=#FF0000]Program [/color][color=#000000]OlidStone
    [/color][color=#FF0000]Use [/color][color=#000000]User32
    [/color][color=#FF0000]implicit none
    Integer [/color][color=#000080]:: [/color][color=#000000]iRes
    iRes [/color][color=#000080]= [/color][color=#000000]MessageBox[/color][color=#000080]( [/color][color=#000000]NULL [/color][color=#000080], [/color][color=#808080]"内容" [/color][color=#000080], [/color][color=#808080]"标题" [/color][color=#000080], [/color][color=#000000]MB_OK [/color][color=#000080])  
  [/color][color=#FF0000]End program [/color][color=#000000]OlidStone[/color][/font][/quote]

板凳

谢谢啦

3 楼

还想问个问题,就是所有的API函数都是用User32吗,怎么确定那个用哪个,比如dup2()是用哪个模块?还有能不能麻烦您帮我把这段c++的代码转成fortran的
FILE*   fin   =   fopen( "111.txt ", "r");            
dup2(fileno(fin),   0); 
谢谢了

4 楼

真叩门,才给10分

5 楼

再给30分

6 楼

雪球兄搞笑啊:)

7 楼

[quote]还想问个问题,就是所有的API函数都是用User32吗,怎么确定那个用哪个,比如dup2()是用哪个模块?还有能不能麻烦您帮我把这段c++的代码转成fortran的
FILE*   fin   =   fopen( "111.txt ", "r");            
dup2(fileno(fin),   0); 
谢谢了[/quote]

fopen和Open语句差不多。
而dup2是UNIX的系统API:)
雪球兄用举的例子是MSWIN下的:)
不过万变不离其宗,看看编译器的手册应该有对于当前系统API库支持的东东:)

8 楼

lz得先指出使用的什么编译器,不是所有的编译器都有User32 module的。
碰到没有的情形,要按照api的声明在fortran中以interface封装,然后链接时链接kernel32.lib等api函数库。

9 楼

[quote]lz得先指出使用的什么编译器,不是所有的编译器都有User32 module的。
碰到没有的情形,要按照api的声明在fortran中以interface封装,然后链接时链接kernel32.lib等api函数库。[/quote]
顶董兄,顺便加一个:运行环境如果不是MS Windows那最好也说明一下:)

10 楼

楼上的朋友说得没错,具体要看哪个平台,需要翻阅相关SDK手册和编译器手册。

我来回复

您尚未登录,请登录后再回复。点此登录或注册