midl生成文件中CINTERFACE标志的用途?

时间:2013-10-20 23:40:07

标签: c++ com mingw idl midl

使用Microsoft的IDL编译器,如果我这样做:

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文件,或者将-DCINTERFACE放在g++命令行上,则会进行编译。这个标志的目的是什么,为什么我要编译为C ++时必须设置它?

1 个答案:

答案 0 :(得分:0)

默认情况下,它使用pascal调用约定。您正在调用的mingw函数将无法使用它们。