Управляемое именование методов C ++ - PullRequest
2 голосов
/ 19 сентября 2008

Я использую управляемый c ++ для реализации метода, который возвращает строку. Я объявляю метод в моем заголовочном файле, используя следующую подпись:

String^ GetWindowText()

Однако, когда я использую этот метод из C #, подпись:

string GetWindowTextW();

Как мне избавиться от лишней буквы "W" в конце имени метода?

Ответы [ 3 ]

2 голосов
/ 19 сентября 2008

Чтобы обойти взлом препроцессора заголовочных файлов Windows, объявите его так:

#undef GetWindowText
String^ GetWindowText()

Обратите внимание, что если вы действительно используете в своем коде подпрограммы Win32 или MFC GetWindowText(), вам нужно либо переопределить макрос, либо вызвать их как GetWindowTextW().

0 голосов
/ 19 сентября 2008

Не управляемый c ++, но C ++ / CLI для платформы .net. Набор расширений Microsoft для C ++ для использования с их системой .Net.

Часто задаваемые вопросы Бьярна Страуструпа http://www.research.att.com/~bs/bs_faq.html#CppCLI

C ++ / CLI не C ++, не помечайте его как таковой. Txs

0 голосов
/ 19 сентября 2008

GetWindowText - это вызов API Win32, который с помощью макроса связывается с GetWindowTextW в вашем проекте C ++.

Попробуйте добавить #undef GetWindowText в ваш проект C ++.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...