描述:
MSDN Library 的例子代码。标明是 C++.IDL
代码如下
#import "c:\program files\common files\system\ado\msado15.dll" no_namespace
#import <cdosys.dll> no_namespace
// ...
IMessagePtr iMsg(__uuidof(Message));
保存为 CDO.IDL 文件用 MIDL 编译,报错:
error C2773: #import only available in C++ compiler
这是为什么?
解决方案1:
你的明明是个.cpp的文件嘛,怎么穿个.idl的马甲.
解决方案2: CDO.IDL
头文件中有#import....语句。
1. use import "*.idl"
2. use importlib "*.dll" in library section
for example in test.idl
import "oaidl.idl";
.......
library SIMPLELOGLib
{
importlib("test.dll");
[
uuid(5BFC4336-4C90-11D0-9697-00AA00C149A6),
helpstring("test")
]
coclass CoTest {
[default] interface ITest;
};
};
#import 只有在C++文件中有效
import才是IDL的关键字,而且不能导入dll文件,只能导入idl文件
#import "*.idl"
use importlib "*.dll" in library section
use importlib instead