如何将c++ dll项目添加到Visual Basic引用中
How to add C++ dll project to Visual Basic references?
我使用的是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代码。
- 如何在Visual Basic中使用矩形函数OpenGL绘制矩形
- 我的C 程序在CodeBlocks中提供了正确的结果,但在Visual Basic 2005 Express Edi
- 使用 Visual Basic 更改C++中的"Press any key to Continue..."
- 从无操纵项目(C/C VS2005)调用托管代码(C#/Visual Basic VS2010)
- Visual Basic 的 On Error Resume Next for C++?
- 从Visual Basic调用C++dll类
- 如何使用 Visual Basic 创建登录应用程序(使用 WebHttpRequest)
- 如何在.NET Visual Basic应用程序中读取从C++DLL返回的const char*
- 如何在 Visual Basic DLL 和 C++ DLL 之间创建隔离/无注册的 COM
- 将双精度数组从 Visual Basic 传递到 DLL C++
- StrPtr 在 Visual Basic (VS 2012) 中无法识别
- Visual Basic.NET 中的 C++ 模板等效于什么?
- Visual Basic Interface and C++ DLL
- 创建静态库并将其链接到visual basic windows窗体应用程序
- visual Basic c++构造函数表示法
- 如何从Visual Basic 2010中调用C++dll文件
- 将Visual Basic 6项目转换为Qt/C++
- 将代码从Visual Basic转移到C++问题
- 如何将c++ dll项目添加到Visual Basic引用中
- 从c++调用Visual Basic函数