Мы переносим наше C ++ COM-приложение в Unicode, и в рамках этой миграции мы хотим также перенести строки констант в нашей IDL в Unicode.
Проблема в том, что на данный момент мы по-прежнему компилируем его как в ANSI, так и в UNICODE, что означает, что мы не можем использовать конструкцию L "String" для объявления широких диаграмм.
На данный момент наша строковая константа определена так:
const LPSTR STRING_CONST_NAME = "STRING VALUE";
И мы хотим определить это так:
const LP T STR STRING_CONST_NAME = "STRING VALUE";
Если бы это был обычный код, мы бы просто добавили макрос _T ("STRING VALUE"), который преобразовал бы его в L "STRING VALUE" при компиляции в Unicode
Но из того, что я вижу, мы не можем использовать его в IDL, потому что _T является чистой конструкцией C ++.
Правильный ли наш подход? Может быть, мы должны определить это так, несмотря ни на что:
const LP T STR STRING_CONST_NAME = L"STRING VALUE";