Экспорт функции принимает параметр Win32 VARIANT в модуле С++ 20C++

Программы на C++. Форум разработчиков
Anonymous
Экспорт функции принимает параметр Win32 VARIANT в модуле С++ 20

Сообщение Anonymous »

Я новичок в модулях C++20 и пробую это:

Код: Выделить всё

VariantFunctions.ixx

Код: Выделить всё

export module VariantFunctions;

struct tagVARIANT;  // Forward declaration of VARIANT type
typedef struct tagVARIANT VARIANT;

export bool IsNonZeroI4x(const VARIANT & v) noexcept;
Я пытаюсь вызвать эту функцию из кода Win32, который использует MFC, следующим образом:

Код: Выделить всё

VARIANT v;
VariantInit(&v);
IsNonZeroI4x(v);
Компилятор (Visual Studio 2022, 17.11.3) сообщает мне:

ошибка C2664: 'bool IsNonZeroI4x( const VARIANT &) noException': невозможно преобразовать аргумент 1 из 'VARIANT' в 'const VARIANT &'

Я могу написать аналогичную функцию, которая принимает простую введите, например, long вместо VARIANT, но мне нужно понять, почему приведенный выше код не работает.
Я пытался используйте #include в файле .ixx, но в этом заголовке так много несовместимых с модулем вещей, что это невозможно, поэтому я задумался о предварительном объявлении.

Подробнее здесь: https://stackoverflow.com/questions/789 ... c20-module

Вернуться в «C++»