【发布时间】:2010-09-23 15:36:49
【问题描述】:
现有的 Visual C++ 应用程序进行以下调用;
BOOL bRet = pMyClass.CreateDispatch("BlahBlah.MyClass");
if ( !bRet )
{
// Error handling snipped
}
else
{
pMyClass.MyMethod();
pMyClass.ReleaseDispatch();
}
pMyClass 显然是由 ClassWizard 自动生成的一个类,它继承自 COleDispatchDriver。
它所引用的实际 DLL 是 VB6 的,它正在迁移到 C#,作为总体上摆脱 VB 的努力的一部分。
我的问题是……我需要做些什么来确保 C# 程序集的工作方式与原始 VB6 模块的工作方式相同吗?目前,C# 看起来像这样;
[ComVisible(true)]
[ProgId("BlahBlah.MyClass")]
[ClassInterface(ClassInterfaceType.AutoDual)]
public class MyClass
{
...
public void MyMethod()
{
...
}
}
这就足够了吗?在 MyClass 上设置公共字符串字段(代码中未显示)时,是否需要注意任何问题?
请注意,我不是此代码的原始作者 - 它来自旧系统,我只是在进行迁移。
【问题讨论】:
标签: c# visual-c++ vb6-migration