我正在使用一些遗留的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 Automation公开一些类,因此有一个IDL文件.
每当我们在类中添加新函数IDL(不更改UUID)时,使用类(但不是新函数)的其他C++项目需要使用new重建IDL或者它们会崩溃但其他VB6 ActiveX项目不会崩溃了.
为什么我们需要重建C++项目但VB项目没问题?
如何将SQL Server类型表示numeric(38,0)为IDL类型(COM类型库)?
非常感谢您的帮助!
PS例如,SQL Server类型int是longIDL中的类型.
idl ×4
c++ ×3
com ×3
class ×1
constructor ×1
delphi ×1
interface ×1
sql-server ×1
typelib ×1
vb6 ×1