アプリ版:「スタンプのみでお礼する」機能のリリースについて

WindowsのライブラリにDLLやLIBといった形式があり、それぞれ「動的リンクライブラリ」「静的リンクライブラリ」となっていますが、

静的リンクライブラリとしてビルドされたライブラリを、動的に実行プログラムにリンクさせることは(Cやアセンブラなどの)実装次第で可能なのでしょうか?


ビルド時にリンカがやってくれてることを実行時に行えればOK・・・という素直な話ではないのでしょうか。DLLも実行時にGetProcAddress()などを使ってアドレス解決をするわけですし、LIBでも同じことをするのは不可能ではないのでは?と思ったのです。

※動的/静的リンクの概念や具体的な使用方法などはネット上で調べることができましたが、中身にまで踏み込んだ解説をしているページには巡り合えませんでした。そういう具体的な解説のあるページの紹介だけでもとても助かります。また、「根本的に思い違いをしてるんでは?」というご指摘も非常に助かります。
※私自身↑に対する需要はないのでコスト・メリットとかは度外視です。興味本位というやつです。
※別段、Windowsやライブラリの形式にこだわりがあるわけではないですが、これが一番メジャーだろう、ということでWindowsのDLL/LIBを対象に質問させて頂きました。

よろしくお願いします。

A 回答 (1件)

プログラムがリンカの機能を内蔵すれば可能でしょう。

同じくコンパイラを内蔵すればCソースコードをリンクして実行することもできます。
ファイルフォーマットは、DLLはEXEと同じでPE(Portable Executable)です。
LIBは、VCだとCOFFフォーマットだと思う。下記参照。
# http://msdn.microsoft.com/en-us/windows/hardware …
    • good
    • 0
この回答へのお礼

コンパイラまで内蔵してしまったら、本当にそれはコンパイル言語なのか、よくわからなくなってしまいますね(笑)
しかしまあ…プロセスの中でlibが生きてる時間は通常の静的なリンクと変わりがないわけで、それをもって「動的リンクした!」と言えるのかどうかは私としてはやや疑問のあるところです。

興味深い回答、ありがとうございました。

お礼日時:2011/06/20 21:34

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!