托管C ++方法命名

时间:2008-09-19 16:18:29

标签: .net windows c++-cli

我正在使用托管c ++来实现一个返回字符串的方法。我使用以下签名在头文件中声明了该方法:

String^ GetWindowText()

但是,当我在C#中使用此方法时,签名为:

string GetWindowTextW();

如何摆脱方法名称末尾的额外“W”?

3 个答案:

答案 0 :(得分:2)

要解决Windows头文件的预处理程序问题,请按以下方式声明:

#undef GetWindowText
String^ GetWindowText()

请注意,如果您在代码中实际使用Win32或MFC GetWindowText()例程,则需要重新定义宏或将其称为GetWindowTextW()

答案 1 :(得分:0)

GetWindowText是一个win32 api调用,它通过宏别名到你的C ++项目中的GetWindowTextW。

尝试将#undef GetWindowText添加到C ++项目中。

答案 2 :(得分:0)

非托管c ++,但是.net平台的C ++ / CLI。一组用于C ++的Microsoft扩展,用于.Net系统。

Bjarne Stroustrup的常见问题http://www.research.att.com/~bs/bs_faq.html#CppCLI

C ++ / CLI不是C ++,不要这样标记它。 TXS