«wchar.h» выдает синтаксические ошибки при импорте в файл .idl (COM-сервер)

#c #com #syntax-error #idl #wchar

#c #com #синтаксическая ошибка #idl #wchar

Вопрос:

Я создал новый проект C (ATL) в моей Visual Studio и приступил к созданию хорошей маленькой библиотеки DLL COM-сервера. Конечно, существует файл IDL, который определяет внешний интерфейс для использования миром. Поскольку я использую другую библиотеку в этом проекте, мне необходимо использовать тип wchar_t. Но когда я помещаю:

импортируйте "wchar.h";

в верхней части моего файла .idl начинается настоящий ад. Хорошо, я преувеличиваю. Появляется небольшая ошибка:

ошибка MIDL2025: синтаксическая ошибка: ожидание; рядом с "{" d:programstoolsdotnetMicrosoft Visual Studio 10.0VC includewchar.h 994

Поскольку это ошибка с файлом системного заголовка, я понятия не имею, как исправить эту проблему. Есть идеи?

Комментарии:

1. Не могу сделать. импортируйте <wtypes.idl> и используйте WCHAR, LPWSTR и LPCWSTR. Настоятельно рекомендую BSTR для автоматизации.

2. Я надеялся просто отобразить структуры из заголовка библиотеки.

3. Да, это то, что такое WCHAR. Я рекомендую вам действительно попробовать это.

4. Спасибо, это обошло проблему стороной. Есть ли способ включить файл заголовка (.h) в idl и оставаться в норме? Я решил проблему с неопределенным size_t, определив его вручную, и теперь у меня возникают проблемы с типами void * (поскольку MIDL не поддерживает void в качестве базового типа).