DLLのexport名称がない場合

[戻る]
tenteku 2011/12/19(月) 13:32:50
Dependency Walkerで見ても名称が表示されない関数を
LoadLibrary-GetProcAddressで呼び出すことは可能でしょうか?

結局よく分からなかったので提供側からlibとhファイルをもらいましたが

tenteku 2011/12/19(月) 13:49:49
[[解決]]
試してみました。配布によって名前と規約は分かってるので
GetProcAddress(hInst, _Hoge@0)
などでいけました

どうやって名称なしにするかはよく分からなかったですが事故解決

仲澤@失業者 2011/12/19(月) 16:19:32
「Dependency Walker」はその名の通り「依存関係」の表示ですね。
呼ばれていない関数は「依存してない」ので、表示されないかも
しれません。

dumpbin /EXPORTS 〜.dll では、どうでしょう。表示されるのでは?

YuO [E-Mail] 2011/12/19(月) 16:19:51
解決となっていますが……。


まず,名称無しにする方法ですが,.defファイルのEXPORTSセクションの対象関数に,
NONAMEを使って定義します。

MSDN: EXPORTS
http://msdn.microsoft.com/ja-jp/library/hyx1zcd3.aspx

次に,GetProcAddressでは,序数 (ordinal number) で指定することによって呼び出しま
す。
GetProcAddress(hInst, (LPCSTR)10)
のようにして呼び出すことになります。
# Dependency Walker上ではOrdinalとなっているのが序数です。

MSDN: GetProcAddress function
http://msdn.microsoft.com/en-us/library/windows/desktop/ms683212.aspx

tenteku 2011/12/20(火) 11:54:38
仲澤さん
ありがとうございます、dumpbin /expport で表示できました
ところで今日になってDependency Walkerでも表示されるようになりました。
Dependency Walkerと依存関係について詳しいHPなど知ってましたら教えてくださるとう
れしいです

YuOさん
ありがとうございます、勉強して今後に役立てたいと思います

古いスレッドには追加発言できません。