@Skodio29

Как получить доступ до полей tVariant после миграции с MSVC на CMake (g++) MinGw и CLion?

Добрый день.
Вопрос несколько нубский.
Когда я работал в VisualStudio и использовал SDK MS.

Я мог использовать конструкции вида:
tVariant* value

value->pstrVal = ...;


После миграции на CLion и MinGW так я уже делать не могу. -> не ведет практически ни к каким из полей.
В header-файле есть такая конструкция:

if defined (__GNUC__) && !defined (NONAMELESSUNION)
__extension__   /* no named members  */
#endif
struct _tVariant
{
    _ANONYMOUS_UNION union 
    {
        int8_t         i8Val;
        int16_t        shortVal;
        int32_t        lVal;
        int            intVal;
        unsigned int   uintVal;
        int64_t        llVal;
        uint8_t        ui8Val;
        uint16_t       ushortVal;
        uint32_t       ulVal;
        uint64_t       ullVal;
        int32_t        errCode;
        long           hRes;
        float          fltVal;
        double         dblVal;
        bool           bVal;
        char           chVal;
        wchar_t        wchVal;
        DATE           date;
        IID            IDVal;
        struct _tVariant *pvarVal;
        struct tm      tmVal;
        _ANONYMOUS_STRUCT struct 
        {
            void*  pInterfaceVal;
            IID        InterfaceID;
        } __VARIANT_NAME_2/*iface*/;
        _ANONYMOUS_STRUCT struct 
        {
            char*        pstrVal;
            uint32_t     strLen; //count of bytes
        } __VARIANT_NAME_3/*str*/;
        _ANONYMOUS_STRUCT struct 
        {
            WCHAR_T*    pwstrVal;
            uint32_t    wstrLen; //count of symbol
        } __VARIANT_NAME_4/*wstr*/;
    } __VARIANT_NAME_1;
    uint32_t      cbElements;    //Dimension for an one-dimensional array in pvarVal
    TYPEVAR       vt;
};


Как я могу все же вызвать напрямую value->pstrVal в CLion + MinGW?
  • Вопрос задан
  • 62 просмотра
Пригласить эксперта
Ответы на вопрос 2
IvanU7n
@IvanU7n
nothing interesting here
скорее всего никак

если я правильно помню и понимаю о чём речь, там была целая пачка макросов типа V_STRING, V_BOOL для доступа к нужным полям
Ответ написан
Комментировать
@Xiran
Вы в комментариях говорили о флаге -fms-extensions, вот, скопируйте в CMakeLists.txt:
add_compile_options(-fms-extensions).
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы