2013-10-20 40 views
0

使用微軟的IDL編譯器,如果我這樣做:midl生成文件中CINTERFACE標誌的用途?

midl a.idl /iid iid.cpp 

我不能編譯MinGW iid.cpp因爲以下警告:

c:\mingw\bin\../lib/gcc/mingw32/4.6.2/../../../../include/rpcproxy.h:14:2: warning: #warning "rpcproxy type definitions require CINTERFACE" [-Wcpp] 

但是,如果我生成它作爲一個C文件,而不是,或者在g++命令行中輸入-DCINTERFACE,它會進行編譯。這個標誌的目的是什麼,爲什麼我必須設置它,如果我編譯爲C++?

回答

0

默認情況下,它使用pascal調用約定。你正在調用的mingw函數將不能與它們一起工作。