c++ - コンパイル後のC++コンストラクタの本当のシグネチャは何ですか

原文 c++ constructor hook reverse-engineering signature

C++のコンストラクタの本当のシグネチャは何ですか?

バックグラウンド:
DLLの内部関数をフックしようとします。私はpdb-Debugファイルを持っていて、装飾されていない名前を含め、関数の正確な場所を取得できました。
関数は次のようになります。

protected: __cdecl ClassName::ClassName(bool * __ptr64) __ptr64


したがって、明らかにコンストラクタです。
void function(void * pThisPointer、bool * pBoolPointer)を試しましたが、呼び出しを転送しただけでプログラムがクラッシュするため(他の関数はこのように正常に機能します)、私の署名が間違っていると思います。

コンストラクターに使用する署名を知っていますか(ほとんどの場合仮想ではありません)。
または、何か問題が発生する可能性がある他のアイデアがありますか?

編集:
私はx64とVisual Studio 2010コンパイラーを使用していますが、ターゲットコンパイラーはMicrosoft dllであるため、Visual Studioコンパイラーのようなものでなければなりません。
答え
コンストラクタを直接呼び出すことはできません。 C++に関する限り、コンストラクターには名前がありません。つまり、コンストラクタを呼び出すことはできません。多くのコンパイラは、2つまたは3つの異なる関数を作成します。あなたはどちらを呼ぶべきですか?

答えはどれでもない。コードから直接コンストラクターを呼び出すことはできません。
関連記事

c++ - Valgrind-初期化されていない値とバイト?

c++ - C++ constオーバーロードとコード共有

c++ - OpenGL 2.1でのglDrawRangeElementsの使用

c++ - POSIX読み取りの一時停止をマイクロ秒の範囲で認識する

c++ - Qtで、モデルからリストビューのアイテムの背景色をリセットするにはどうすればよいですか?

c++ - 実装ファイルでコンストラクタを使用するにはどうすればよいですか?

c++ - cursesライブラリーの使用時にmove()またはwmove()を使用するとカーソルが移動しない

c++ - プログラムでシステム情報を開く

c++ - Boost::Spiritを使用してエスケープされた文字列を解析する

java - 乱数をテストする[終了]