DLLを動的に読み込む時の注意
susieのプラグインを作っていて、そういやLoadLibraryって
使って事なかったなぁ〜と思い、簡単なサンプルを作ってみたところ、
ホストではうごくのに、VirtualPC 2007のWindows 2000 SP4では、
うまく動かなかった。
デバッグするのにVCを入れるのもあれだったので、
Dependency Walkerを入れてデバッグ。
すると原因発覚。
アプリの構成
LoadLibrarySample01.exe側:MTd
sample.dll側:MDd
でそれぞれビルド。
んで、例のツールで読み込んで実行。するとこうなる。
画像にメモったから解説ははぶく。
んで、
LoadLibrarySample01.exe側:MTd
sample.dll側:MTd
これで実行。
うまく動く。
基本ランタイムがそれぞれ同梱されるので、exeとdllのサイズが非常にでかくなるのがつらい。。。
かといって、皆最新のランタイムが入っているとも限らないので、社内といえどもあなどれん。
つーかVS2008で作ったりしたらどうするよ俺・・・orz
まぁ、VS2008は、C#しか使わないと思うけど。当面。
Dependency Walkerの使い方はここ参照↓
Dependency Walker (depends.exe) の使用方法