windows — ошибки в imapi2.h при компиляции приложения imapi2 с mingw64 c ++ «объявление« __RPC__range »без указания типа»

Я пытаюсь использовать imapi2 для записи на CD-RW с помощью программы C ++, которая скомпилирована с Mingw на Windows. Я смотрю на пример Visual Studio C ++. Я скопировал imapi2.h в свой проект из Microsoft SDK 7.1, но когда я включил #include «imapi2.h» в заголовок и попытался скомпилировать, я получил кучу ошибок из файла imapi2.h. Я предполагаю, что это потому, что заголовочный файл настроен для Visual Studio. Там ошибки ниже. Можно ли использовать компилятор mingw для использования imapi2? Спасибо

g++ -O0 -g3 -Wall -c -fmessage-length=0 -o cdtest.o "..\\cdtest.cpp"
In file included from ..\cdtest.h:7:0,

from ..\cdtest.cpp:2:

..\imapi2.h:17:0: warning: ignoring #pragma warning  [-Wunknown-pragmas]

#pragma warning( disable: 4049 )  /* more than 64k source lines */

^

In file included from ..\cdtest.h:7:0,

from ..\cdtest.cpp:2:

..\imapi2.h:1148:35: error: ISO C++ forbids declaration of '__RPC__range' with no type [-fpermissive]

typedef /* [range] */ __RPC__range(0,0xffff) ULONG ULONG_IMAPI2_DVD_STRUCTURE;

^

..\imapi2.h:1148:35: error: typedef '__RPC__range' is initialized (use decltype instead)

..\imapi2.h:1150:35: error: ISO C++ forbids declaration of '__RPC__range' with no type [-fpermissive]

typedef /* [range] */ __RPC__range(0,0xfffffff) ULONG ULONG_IMAPI2_ADAPTER_DESCRIPTOR;

^

..\imapi2.h:1150:35: error: typedef '__RPC__range' is initialized (use decltype instead)

..\imapi2.h:1152:35: error: ISO C++ forbids declaration of '__RPC__range' with no type [-fpermissive]

typedef /* [range] */ __RPC__range(0,0xfffffff) ULONG ULONG_IMAPI2_DEVICE_DESCRIPTOR;

^

..\imapi2.h:1152:35: error: typedef '__RPC__range' is initialized (use decltype instead)

..\imapi2.h:1154:35: error: ISO C++ forbids declaration of '__RPC__range' with no type [-fpermissive]

typedef /* [range] */ __RPC__range(0,0x10002) ULONG ULONG_IMAPI2_DISC_INFORMATION;

^

..\imapi2.h:1154:35: error: typedef '__RPC__range' is initialized (use decltype instead)

..\imapi2.h:1156:35: error: ISO C++ forbids declaration of '__RPC__range' with no type [-fpermissive]

typedef /* [range] */ __RPC__range(0,0x10002) ULONG ULONG_IMAPI2_TRACK_INFORMATION;

^

..\imapi2.h:1156:35: error: typedef '__RPC__range' is initialized (use decltype instead)

..\imapi2.h:1158:35: error: ISO C++ forbids declaration of '__RPC__range' with no type [-fpermissive]

typedef /* [range] */ __RPC__range(0,0x100) ULONG ULONG_IMAPI2_FEATURE_PAGE;

^

..\imapi2.h:1158:35: error: typedef '__RPC__range' is initialized (use decltype instead)

..\imapi2.h:1160:35: error: ISO C++ forbids declaration of '__RPC__range' with no type [-fpermissive]

typedef /* [range] */ __RPC__range(0,0x101) ULONG ULONG_IMAPI2_MODE_PAGE;

^[. . .]..\imapi2.h:1194:47: error: expected ')' before numeric constant

/* [range][in] */ __RPC__in_range(6,16) ULONG CdbSize,

^

..\imapi2.h:1194:47: error: expected ')' before numeric constant

..\imapi2.h:1194:46: error: expected ';' at end of member declaration

/* [range][in] */ __RPC__in_range(6,16) ULONG CdbSize,

^

..\imapi2.h:1194:47: error: expected unqualified-id before numeric constant

/* [range][in] */ __RPC__in_range(6,16) ULONG CdbSize,

^

..\imapi2.h:1200:31: error: '__RPC__in_range' has not been declared

/* [range][in] */ __RPC__in_range(6,16) ULONG CdbSize,[. . .]

0

Решение

Чтобы обойти эти ошибки, я обнаружил, что в каждом месте есть #include "imapi2.h" это должно продолжаться с #include rpcsal.h, Как альтернатива в моей системе добавление следующего к строкам перед каждым #include "imapi2.h" тоже работает.

#define __RC__range(min,max)

#define __RC__in_range(min,max)

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]