我需要在 C++ 项目中使用我的 VB.NET 项目之一。两者之间的接口将用于 C++ 代码实例化和调用 .NET 程序集对象之一上的方法。
两者都编译为 DLL(然后 C++ DLL 作为 VDD 从 NTVDM 加载,但这可能不相关。)
如果可能的话,我想避免为此使用 COM,因为我需要在不接触注册表的情况下进行部署。此外,我正在为 C++ 和 VB.NET 使用 Visual Studio 2008 Express 版本。
请问,最好的方法是什么?
如果您不想使用 COM并且我不怪您,我只会创建一个 Web 服务,并通过它公开您的功能。它易于在 C++ 中访问 Web 服务,并且易于在 VB.NET 中公开。
(更新)
这是一个博客链接,讨论如何在没有 IIS 的情况下公开 Web 服务
您真的需要本机 C++ 还是可以使用 C++/CLI?
如果您可以在 C++/CLI 中完成所有操作,那么您最终将获得一个纯 .NET 应用程序。
如果您需要“本机”C++,那么您可以直接从 Visual Studio 创建一个包含托管和非托管 C++ 的程序集(本机 C++ 调用 C++/CLI,然后调用您的 VB.NET)。
而且,如果您希望将全部内容放在一个程序集中,您可以按照将本机 C++ 链接到 C# 应用程序的说明进行操作。它也应该适用于 VB.NET。
我强烈推荐 Heege (1-59059-756-7) 的“Expert C++/CLI”