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

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

Сообщение Anonymous »

Я новичок в модулях C++20 и пробую это:
--------------VariantFunctions.ixx- -------
модуль экспорта VariantFunctions;
struct tagVARIANT; // Форвардное объявление типа VARIANT
typedef struct tagVARIANT VARIANT;
export bool IsNonZeroI4x(const VARIANT & v) noException;

пытаемся вызвать эту функцию из кода 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++»