Win32API質問箱 Build18
■ このスレッドは過去ログ倉庫に格納されています
0699デフォルトの名無しさん
NGNG思ってたし、MSDNにもそんなこと書いてあるんでそうしてたんですが、
それって過ちじゃないかと今日気づきました。
DependencyWalkerで見ると、序数指定つきで作られたインポートライブラリ
からインポートしているプログラムは、当然のように序数でインポート
してるんですね。ところが、__declspec(dllexport)、あるいは
序数指定無しのDEFファイルで指定されたシンボルは、
名前でインポートしてるのが分かる。あくまでやってみて気づいた
経験則であって、どこにもそんなことは書いてないですけどね。
これ、どっちがいいかっつったら勿論後者ですよね。スタブコードが
ちゃんと名前でGetProcAddress()してくれるなら、
バージョンアップの際にいちいち序数管理する必要ないから。
で、面白くなって色々調べてみると、MS謹製のライブラリでも、ものに
よってまちまちなんですよ。kernel32, user32, msvcrtのような奴は
名前エクスポートなんだけど、mfc42, oleaut32, wsock32あたりは
序数エクスポートになってる。
いったん序数エクスポートにしちゃうと、後方互換性のためにはそれを
維持しなきゃいけないからそうなってるのかなあ、とか思ったりしました。
皆さんは、この辺、どうやってますか?
■ このスレッドは過去ログ倉庫に格納されています