在C ++中为VB6编写.dll

时间:2011-02-28 08:02:34

标签: com vb6 com-interop vb6-migration

我正在尝试将基于VB6的.ocx迁移到C ++中。我正在解决的迁移路径如下:

  1. 将当前的.ocx迁移到常规的COM .dll(它实际上没有任何用户界面组件,我不知道为什么它仍然是.ocx。)
  2. 编写COM .dll的C ++版本,并将其用作我的替代。
  3. 我的问题是:

    一个。这看起来是正确的方法吗?

    湾如何在Visual Studio 2010中用C ++创建COM .dll?我尝试创建一个简单的.dll,使用tlbexp生成.tlb文件,但这似乎不起作用。我可以将我的.tlb拉入VB5项目,但没有实例化的类。如果我尝试使用regsvr32注册.dll,我会收到“无入口点”错误。

    我已经看到VS 2005中的一个选项引用“注册COM Interop”,但我无法在VS 2010中找到等效选项。

    提前感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

您必须创建一个ATL项目: enter image description here 然后将COM对象添加到组件。您收到的缺失入口点是因为标准dll没有正确的注册入口点,ATL项目会为您执行此操作。