Gestão de nomenclatura Método C ++
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?
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