fortran66のブログ

fortran について書きます。

Fortran の C ルーチン呼び出しと、Win32 の呼び出し規約の問題があるため、問題がある可能性が高いです。

Fortran2003 の C 言語との互換機能を使って、Win32 のルーチンを呼ぶ。
コンソール窓のハンドルを得る関数 GetConsoleWindow へのインターフェースを書く。
これは Intel のヘッダーモジュールに定義されていない。

コンソール窓が開かれて、すぐに最小化される。画面にはハンドルと返り値が書かれる。

PROGRAM test
USE ifwina
IMPLICIT NONE
INTERFACE
 INTEGER(4) FUNCTION GetConsoleWindow() BIND(C, NAME = 'GetConsoleWindow@0')
 END
END INTERFACE
PRINT *, GetConsoleWindow()
PRINT *, ShowWindow(GetConsoleWindow(), SW_MINIMIZE)
STOP
END PROGRAM test