如何将c++ dll项目添加到Visual Basic引用中

How to add C++ dll project to Visual Basic references?

本文关键字:Visual Basic 引用 添加 项目 c++ dll      更新时间:2023-10-16

我使用的是Visual Studio 2015社区版,我遵循微软关于在这里创建隐式dll的教程https://msdn.microsoft.com/en-us/library/ms235636.aspx,我在c++控制台应用程序中成功地引用了dll(我这样做只是为了看看它是否会起作用)。

当我尝试将dll项目添加到Visual Basic Windows窗体应用程序的引用时,我得到了一个错误,说"无法添加对' dll项目名称'的引用"。经过一番研究,我认为这是因为VB针对。net框架,而c++ dll针对Windows,但这是我设法弄清楚的。我将非常感谢任何帮助来协调这一点,或者设置一些涉及c++ dll和使用dll的GUI项目的解决方案(我只是选择VB作为GUI,因为它非常快速和容易设置)。

请注意,DLL项目和Visual Basic项目都在同一个解决方案中。

你的教程不会帮助你从。net调用代码,你是正确的假设它是一个。net框架互操作。问题。您可以使用p-invoke来导入和调用DLL,或者在DLL周围创建一个COM包装器并在GAC中注册它,然后通过COM CreateObject调用引用它。

其他可能性是将其转换为c++/CLI . net c++ DLL。

引用:

P-Invoke

COM

- update -

我想我还应该提到,如果您的目标是通用Windows平台(UWP),它还提供了跨。net和c++的干净绑定,并隐藏了一些繁忙的COM连接。

一个c++ DLL应该被添加到你的*。. NET应用程序,使用构建后事件"xcopy"命令,如下所示:

xcopy "$(SolutionDir)DLL$(ConfigurationName)"*.dll "$(TargetDir)"*.* /Y

从选定的项目进入项目->属性->编译->Build Events->Post-build事件命令行

输入相应的复制命令。

在上面的例子中,在解决方案目录的"DLL"文件夹中收集了几个c++ DLL。每次构建应用程序时,它们都会被复制到应用程序文件夹中。这些dll在不同的子文件夹中有DEBUG和RELEASE版本。

正如其他发布者所指出的,你还必须在你的*中为你的c++ dll有正确的p-invoke声明。NET代码。