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

Purpose of CINTERFACE flag in midl generated files?

本文关键字:CINTERFACE 标志 文件 midl      更新时间:2023-10-16

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

midl a.idl /iid iid.cpp

由于以下警告,我无法在 MinGW 上编译iid.cpp

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

但是如果我将其生成为 C 文件,或者-DCINTERFACE放在g++命令行上,它就会编译。这个标志的目的是什么,如果我编译为 C++,为什么我必须设置它?

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