Frage

Ich bin mit verwalteten c ++, ein Verfahren zu implementieren, die einen String zurückgibt. Ich erkläre die Methode in meiner Header-Datei mit der folgenden Signatur:

String^ GetWindowText()

Allerdings, wenn ich diese Methode von C # bin mit der Unterschrift lautet:

string GetWindowTextW();

Wie kann ich die extra „W“ los am Ende des Namens der Methode?

War es hilfreich?

Lösung

Um den Präprozessor hackery der Windows-Header-Dateien zu erhalten, erklärt es so:

#undef GetWindowText
String^ GetWindowText()

Beachten Sie, dass, wenn Sie tatsächlich die Win32 oder MFC GetWindowText() Routinen in Ihrem Code verwenden, müssen Sie entweder das Makro neu zu definieren oder sie als GetWindowTextW() nennen.

Andere Tipps

GetWindowText ist ein win32 api-Aufruf, der über einen Makro zu GetWindowTextW in Ihrem C ++ Projekt aliased ist.

Versuchen Sie, #undef GetWindowText Sie C ++ Projekt.

Nicht c Managed ++ aber C ++ / CLI für die .NET-Plattform. Eine Reihe von Microsoft-Erweiterungen in C ++ für die Verwendung mit ihrem Net-System.

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

C ++ / CLI ist nicht C ++, tagge es nicht als solche. Txs

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top