您当前的位置: 首页 > 

ActiveX .idl与.odl的区别

发布时间:2016-01-20 11:22:30 ,浏览量:0

.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;  }  }
关注
打赏
1688896170
查看更多评论

暂无认证

  • 0浏览

    0关注

    107766博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文
立即登录/注册

微信扫码登录

0.0760s