問題タブ [dumpbin]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - エクスポートされた dll 関数の末尾に @number 記号がある理由
400 を超える関数を含む dll があり、exe ファイルは dll から 15 個の関数しか使用していないため、新しい dll を作成して関数をエクスポートし、それらの戻り値を偽造して、より複雑なシステムの出力をシミュレートする必要があります。 .
私が試したこと:
dumpbin /exports vxlapi.dll (元の dll): 重複した関数名を表示します (すべての関数ではありません)。
注: dll のヘッダー ファイルでは、関数は次のように宣言されます。
dumpbin / export dll で、'_' アンダースコアで始まり '@number' で終わる関数名がある理由、注: exe は let's say(decorated) 関数を使用しており、新しい dll を作成して関数をエクスポートするにはどうすればよいですか@、
c++ - ダンプビンと _MSC_VER
Visual Studio 2017、バージョン 15.7、VCToolsVersion 14.14.26428 で C++ を開発しています。
dumpbin
静的ライブラリで実行すると、_MSC_VER のバージョンが予想とは異なることに気付きました。
私の問題を説明するために、単純なクラス testClass を含む静的ライブラリ testDumpbin.lib を作成しました。
testClass.h:
testClass.cpp:
_MSC_VER マクロを出力するプリプロセッサ行をいくつか追加しました。
このコードをデバッグ モードでコンパイルすると (プロパティでプリコンパイル済みヘッダーをオフにする – C/C++)、次のようになります。
ツールセット 14.14 を実行しているので、これは私が期待していたことです ( https://en.wikipedia.org/wiki/Microsoft_Visual_C%2B%2Bも参照) 。
次に、使用を続けましたdumpbin
( C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\Tools\LaunchDevCmd.bat から起動できる VS 開発者コマンド プロンプトから実行できます):
そして、そこに _MSC_VER = 1900 が見つかりました:
dumpbin
出力に _MSC_VER = 1914 がないのはなぜですか?
助けてくれてどうもありがとう!
windows - ダンプビンの実行可能ファイルのエントリ ポイント アドレスが WinDbg と異なるのはなぜですか?
実行可能ファイルをロードするメカニズムを理解しようとしているので、notepad.exe で 2 つの異なるテストを行いました。
1) dumpbin コマンドの実行:
OPTIONALHEADER VALUES の下に次の値を取得しました。
2) WinDbg の実行:
私はこれらを手に入れました:
14001AC50 と 00b9bf90 が異なる値である理由がわかりません。それらは同じ AddressOfEntryPoint 値であるべきではありませんか?
前もって感謝します