インポートライブラリ
Windows上でDLLにリンクするプログラムを作るには2種類の方法がある。インポートライブラリをリンクするかLoadLibrary APIを用いて実行時に明示的にロードするかだ。
しかし、以前にGaucheをビルドしたときに、インポートライブラリを作らずに直接DLL名を指定してリンクしていることに気付いた。gccはインポートライブラリを作らずともDLLとリンクする実行ファイルを作れるのだ。(もしかすると処理の裏で一時的に仮のインポートライブラリを作っているのかもれないが。)
mingwのアーカイブ群に入ってるインポートライブラリが最新のWindowsAPIに対応していないので、こういうときに直接DLLを指定してリンクできるのは便利だと思った。
$ gcc a.o c:/windows/system32/shell32.dll -o test.exe
普通のオブジェクトファイルを指定するのと同じ要領で指定すればいいだけというのは実に便利な機能ではないだろうか。
Document ID: 72fcd0af943b44c057eed8768003b3ac