用 C++ 编写 .dll对于VB6

发布于 2024-10-19 16:00:00 字数 474 浏览 9 评论 0原文

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

  1. 将当前的 .ocx 迁移到常规 COM .dll(它实际上没有任何用户界面组件,而且我不确定为什么它是 .ocx)。
  2. 编写 COM .dll 的 C++ 版本,并用它作为我的替代品。

是:

我的问题 这看起来是正确的方法吗?

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

我在 VS 2005 中看到了对“Register for COM Interop”选项的引用,但我一直无法在 VS 2010 中找到等效选项。

提前感谢您的帮助!

I am trying to migrate a VB6-based .ocx into C++. The migration path that I'm settling on is as follows:

  1. Migrate the current .ocx into a regular COM .dll (it doesn't really have any user interface components, and I'm not sure why it's an .ocx anyway).
  2. Write a C++ version of the COM .dll, and use that as my replacement.

My questions are:

a. Does this seem like the right way to go?

b. How does one go about creating a COM .dll in C++ in Visual Studio 2010? I tried creating a simple .dll, using tlbexp to generate a .tlb file, but this doesn't seem to work. I can pull my .tlb into the VB5 project, but there are no classes to instantiate. If I try to use regsvr32 to register the .dll, I get the "no entry point" error.

I have seen references to an option in VS 2005 to "Register for COM Interop", but I haven't been able to find an equivalent option in VS 2010.

Thanks in advance for your help!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

深海少女心 2024-10-26 16:00:00

您必须创建一个 ATL 项目:
在此处输入图像描述
然后将 COM 对象添加到您的组件中。您收到的缺少入口点是因为标准 dll 没有正确的注册入口点,ATL 项目会为您完成此操作。

You have to create an ATL project:
enter image description here
Then add the COM objects to your component. The missing entry point you receive is because astandard dll does not have the correct entry ppoints for registration, an ATL project does this for you.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文