質問

マネージド C++ を使用して文字列を返すメソッドを実装しています。次のシグネチャを使用してヘッダー ファイルでメソッドを宣言します。

String^ GetWindowText()

ただし、このメソッドを C# から使用する場合、署名は次のようになります。

string GetWindowTextW();

メソッド名の末尾にある余分な「W」を削除するにはどうすればよいですか?

役に立ちましたか?

解決

Windows ヘッダー ファイルのプリプロセッサ ハッキングを回避するには、次のように宣言します。

#undef GetWindowText
String^ GetWindowText()

実際に Win32 または MFC を使用する場合は、 GetWindowText() コード内のルーチンを使用するには、マクロを再定義するか、マクロを次のように呼び出す必要があります。 GetWindowTextW().

他のヒント

GetWindowText は、C++ プロジェクトの GetWindowTextW へのマクロ経由でエイリアス化される win32 API 呼び出しです。

#undef GetWindowText を C++ プロジェクトに追加してみてください。

マネージド C++ ではなく、.net プラットフォーム用の C++/CLI。.Net システムで使用するための Microsoft の C++ 拡張機能のセット。

Bjarne Stroustrup の FAQ http://www.research.att.com/~bs/bs_faq.html#CppCLI

C++/CLI は C++ ではないため、そのようにタグ付けしないでください。送信

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top