【发布时间】:2013-07-21 21:17:05
【问题描述】:
我想在 win32 (C++) 中使用 VB.NET 代码(我不想转换我的代码)。我听说过在 COM 中包装 VB 代码,但我不知道该怎么做。另外,我不知道是否有替代(或更好)的方式来移植代码。
感谢任何帮助。
更新:我在vb中创建了一个类库,并将comvisible属性设置为true后保存为dll,然后将其导入我的c++项目并通过COM访问接口
*感谢大家帮助我!!!!!! *
【问题讨论】:
我想在 win32 (C++) 中使用 VB.NET 代码(我不想转换我的代码)。我听说过在 COM 中包装 VB 代码,但我不知道该怎么做。另外,我不知道是否有替代(或更好)的方式来移植代码。
感谢任何帮助。
更新:我在vb中创建了一个类库,并将comvisible属性设置为true后保存为dll,然后将其导入我的c++项目并通过COM访问接口
*感谢大家帮助我!!!!!! *
【问题讨论】:
您不能直接从本机 C++ 应用程序调用 .NET 代码,因此需要进行一些工作。
当然,您的问题让我们猜想为什么您想要这样做,但除非您仍要使用 .NET 应用程序中的库,否则我会很强大提倡将它(就像你的标题所暗示的那样)移植到 C++。
但如果您不想这样做,您还有其他几个选择:
使用 C++/CLI 围绕 VB.NET 代码编写一个包装器。这可能是更简单的解决方案,特别是如果您相当熟悉 VB.NET 和 C++ 语言。
使用 <ComVisible(true)> attribute 将所需的 VB.NET 方法公开为 COM 函数。这将有点棘手,特别是如果您对 C++ 中的 COM 编程感到不舒服或不熟悉。在堆栈溢出答案中解释太多了;调查购买一本关于 COM 编程的好书。尽管您使用的是 VB.NET,但 C# 的步骤基本相同,找到examples 会更好。
【讨论】:
您不能直接将 VB 移植到 C++ 中,但如果您只想切换到更强大的语言并仍然使用 GUI 库,则可以查看 C#。它使用了非常相似的代码,并且快速的谷歌搜索为我提供了这个程序:C# converter。如果您真的需要 C++,您可能可以将 C# 代码转换为 C++,但实际上不需要,因为 C# 非常接近 C++。只是在谷歌上搜索我发现了这个:C++ converter。
希望对你有帮助。
【讨论】: