--------------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);
ошибка C2664: 'bool IsNonZeroI4x(const VARIANT &) noException': не могу преобразовать аргумент 1 из «VARIANT» в «const VARIANT &»
Я могу написать аналогичную функцию, которая принимает простой тип, например «long» вместо VARIANT, но я нужно понять, почему приведенный выше код не работает.
Я пытался #include в файле .ixx, но в этом заголовке так много несовместимых с модулем вещей, что это невозможно. , поэтому я обдумывал предварительное заявление.
Любая помощь или идеи приветствуются.
Подробнее здесь: https://stackoverflow.com/questions/789 ... c20-module