Pergunta

Eu estou usando c conseguiu ++ para implementar um método que retorna um string. Declaro o método no meu arquivo de cabeçalho usando a seguinte assinatura:

String^ GetWindowText()

No entanto, quando eu estou usando este método de C #, a assinatura é:

string GetWindowTextW();

Como faço para me livrar do extra "W" no final do nome do método?

Foi útil?

Solução

Para contornar a hackery pré-processamento dos arquivos de cabeçalho do Windows, declará-lo como este:

#undef GetWindowText
String^ GetWindowText()

Note que, se você realmente usar as rotinas GetWindowText() Win32 ou MFC em seu código, você precisa se quer redefinir a macro ou chamá-los como GetWindowTextW().

Outras dicas

GetWindowText é uma chamada de API Win32 que é alias através de uma macro para GetWindowTextW em seu projeto C ++.

Tente adicionar #undef GetWindowText para você projeto C ++.

Não gerenciado C ++, mas C ++ / CLI para a plataforma .NET. Um conjunto de Microsoft extensões para C ++ para uso com o seu sistema .Net.

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

C ++ / CLI não é C ++, não marcá-lo como tal. Txs

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top