0
私が関与させた関数に書かれたコードを特定のDLLに実行させたいだけです。スタックトレースを実行する手間がかかりませんあなたの呼び出し元のモジュール名はどうやって取得できますか?呼び出し元のDLLまたは実行可能モジュールを呼び出す側から受け取ることができます
私が関与させた関数に書かれたコードを特定のDLLに実行させたいだけです。スタックトレースを実行する手間がかかりませんあなたの呼び出し元のモジュール名はどうやって取得できますか?呼び出し元のDLLまたは実行可能モジュールを呼び出す側から受け取ることができます
関数の戻りアドレスを見つけるには、スタックトレースを取得します(例:CaptureStackBackTrace
)。
GetModuleHandleEx
を呼び出してGET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS
とし、そのコードを含むモジュールハンドルを取得します。
最後に、GetModuleFileName
を呼び出して、そのモジュールに関連付けられているファイル名を探します。
CaptureStackBackTraceは有望です。それは呼び出し元を取得する信頼できる方法ですか? – user1881587
よくスタックトレースは不完全な技術です。 x86では少なくともABIは完全なスタックトレースを可能にするルールを私が理解した通りに強制しません。実際には、まともなスタックトレーサを混乱させるほど不気味なコードを実行することはまれです。それはあなたのコードなので安全でなければなりません。 –
okありがとう! – user1881587