Вопрос

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

String^ GetWindowText()

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

string GetWindowTextW();

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

Это было полезно?

Решение

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

#undef GetWindowText
String^ GetWindowText()

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

Другие советы

GetWindowText - это вызов win32 api, которому с помощью макроса присваивается псевдоним GetWindowTextW в вашем проекте на C ++.

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top