标签: idl

正确扩展COM接口(IDL)

我正在使用一些遗留的c ++代码,我需要扩展一个接口.例如,当前的接口是:

[
  object,
  uuid(guid),
  version(1.0),
  dual,
  nonextensible,
  oleautomation
]
interface IInfo : ITask {
   // Methods here
}

[
  object,
  uuid(guid),
  version(1.0),
  dual,
  nonextensible,
  oleautomation
]
interface IExtendedInfoTask : IInfo {
   // Methods here
}
Run Code Online (Sandbox Code Playgroud)

我想扩展的是IInfo接口.现在根据我的理解,正确的方法是创建一个继承IInfo接口的IInfo2接口,但是我需要我的IExtendedInfoTask继承这个IInfo2.改变它的当前继承会破坏现有的接口吗?

这样做的正确方法是创建一个IExtendedInfoTask来扩展IInfo2并复制IExtendedInfoTask的方法吗?

c++ com idl interface

1
推荐指数
1
解决办法
2091
查看次数

为什么IDL修改会导致C++项目崩溃而VB项目不会崩溃?

我们有一个C++项目,它通过COM Automation公开一些类,因此有一个IDL文件.

每当我们在类中添加新函数IDL(不更改UUID)时,使用类(但不是新函数)的其他C++项目需要使用new重建IDL或者它们会崩溃但其他VB6 ActiveX项目不会崩溃了.

为什么我们需要重建C++项目但VB项目没问题?

c++ vb6 com idl com-automation

1
推荐指数
1
解决办法
91
查看次数

0
推荐指数
1
解决办法
1270
查看次数

如何将SQL Server类型数字(38,0)表示为IDL类型(COM类型库)?

如何将SQL Server类型表示numeric(38,0)为IDL类型(COM类型库)?

非常感谢您的帮助!

PS例如,SQL Server类型intlongIDL中的类型.

sql-server delphi com idl typelib

0
推荐指数
1
解决办法
535
查看次数

标签 统计

idl ×4

c++ ×3

com ×3

class ×1

com-automation ×1

constructor ×1

delphi ×1

interface ×1

sql-server ×1

typelib ×1

vb6 ×1