A:
odl和.idl在com中的功能相同.
前者是ActiveX中的
可在前者的文件中
B:
odl
idl
其实是一个功能就是在写法上有些不同,eg:
odl:
[
]
library
{
}
idl:
[
]
library
{
}
=====================================================================
http://topic.csdn.net/t/20040427/17/3014084.html
1. .odl和.idl在com中的功能相同. 前者是ActiveX中的 后者是ATL中. 可在前者的文件中 用 #import "XXXXX.idl" 的方式包含后者. 反过来没有试过. 2. When using IDL, you must declare the interfaces that will generate the C++ source files outside of the library declaration. For the ODL, this step is not necessary. Other than a few minor language differences, the IDL and ODL are identical in terms of syntax and organization. 3. ODL是Microsoft对IDL的扩展 4. odl ---对象描述语言 idl ---接口描述语言 其实是一个功能就是在写法上有些不同,eg: odl: [ uuid(3C591B20-1F13-101B-B826-00DD01103DE1), // LIBID_Lines. helpstring("Lines 1.0 Type Library"), lcid(0x09), version(1.0) ] library Lines { importlib("stdole.tlb"); [ uuid(3C591B25-1F13-101B-B826-00DD01103DE1), // IID_Ipoint. helpstring("Point object."), oleautomation, dual ] interface IPoint : IDispatch { [propget, helpstring("Returns and sets x coordinate.")] HRESULT x([out, retval] int* retval); [propput, helpstring("Returns and sets x coordinate.")] HRESULT x([in] int Value); [propget, helpstring("Returns and sets y coordinate.")] HRESULT y([out, retval] int* retval); [propput, helpstring("Returns and sets y coordinate.")] HRESULT y([in] int Value); } [ uuid(3C591B21-1F13-101B-B826-00DD01103DE1), // CLSID_Lines. helpstring("Lines Class"), appobject ] coclass Lines { [default] interface IPoint; interface IDispatch; } } idl: [ uuid(3C591B25-1F13-101B-B826-00DD01103DE1), // IID_Ipoint. helpstring("Point object."), oleautomation, dual ] interface IPoint : IDispatch { [propget, helpstring("Returns and sets x coordinate.")] HRESULT x([out, retval] int* retval); [propput, helpstring("Returns and sets x coordinate.")] HRESULT x([in] int Value); [propget, helpstring("Returns and sets y coordinate.")] HRESULT y([out, retval] int* retval); [propput, helpstring("Returns and sets y coordinate.")] HRESULT y([in] int Value); } [ uuid(3C591B20-1F13-101B-B826-00DD01103DE1), // LIBID_Lines. helpstring("Lines 1.0 Type Library"), lcid(0x09), version(1.0) ] library Lines { importlib("stdole32.tlb"); importlib("stdole2.tlb"); [ uuid(3C591B21-1F13-101B-B826-00DD01103DE1), // CLSID_Lines. helpstring("Lines Class"), appobject ] coclass Lines { [default] interface IPoint; interface IDispatch; } } |