Pregunta

Estoy usando C++ administrado para implementar un método que devuelve una cadena.Declaro el método en mi archivo de encabezado usando la siguiente firma:

String^ GetWindowText()

Sin embargo, cuando uso este método de C#, la firma es:

string GetWindowTextW();

¿Cómo me deshago de la "W" adicional al final del nombre del método?

¿Fue útil?

Solución

Para evitar la piratería del preprocesador de los archivos de encabezado de Windows, declararlo así:

#undef GetWindowText
String^ GetWindowText()

Tenga en cuenta que, si realmente utiliza Win32 o MFC GetWindowText() rutinas en su código, necesitará redefinir la macro o llamarlas como GetWindowTextW().

Otros consejos

GetWindowText es una llamada a la API de Win32 que tiene un alias mediante una macro para GetWindowTextW en su proyecto de C++.

Intente agregar #undef GetWindowText a su proyecto C++.

No C++ administrado sino C++/CLI para la plataforma .net.Un conjunto de extensiones de Microsoft para C++ para usar con su sistema .Net.

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

C++/CLI no es C++, no lo etiquete como tal.txs

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top