visual将非托管C++dll添加到托管C++dll
visual Adding an unmanaged C++ dll to a managed C++ dll
我正在尝试将非托管C++dll添加到托管(CLI)C++dll项目中。当我单击"类向导"时,我会收到一条"MFC类只能添加到MFC项目"的错误消息。据我所知,我没有使用MFC(在我的非托管dll的项目页面下,MFC的使用是空白的)。有没有其他方法可以将非托管dll添加到我的托管dll项目中?
对于任何感兴趣的人,我在我的DropBox账户上发布了一个罕见的解决方案:https://dl.dropbox.com/u/98752313/CplusplusArrayTest.rar
我意识到有太多的设置可能是错误的,我不能简单地将所有内容复制并粘贴到可用空间中。
此解决方案中有三个项目。CplusplusArray(应该是完整的,它是非托管.dll)、ManagedCpluspplusArray(需要添加非托管dll,并修改一些内容,它是托管.dll)和C#测试程序(尚未编写,希望通过托管dll与非托管dll对话)。
如果你想知道的话,这个项目的全部目标是让C#能够使用带有long的数组作为索引器。如果您以前使用过任何数量的.Net,则可能会遇到CLR中对象大小的Int32/Uint32限制。我希望通过在C++中实现数组,然后修改/编译一些Mono Collections.Generics类来解决这个问题,从而给我们一些喘息的空间。我之所以选择C#->C++/CLI->C++,是因为根据我的研究,我们可以使用面向对象的代码;DllImport的东西只适用于类似C的函数,我想保留OOP,而不是修改东西以类似C。据我所知,由于数组是Collections命名空间的List/etc类的构建块,因此仅让它们在64位空间中发挥作用将为我们提供其他一切。
您需要添加一个新项目,而不是一个新类。一旦你"添加项目",你会被问到你想添加什么类型的项目,一个普通的C++DLL将是你的选择之一。
一旦您的解决方案中有两个项目(一个C++/CLI DLL项目和一个C++DLL项目),您就可以转到工作区依赖项,并指示其中一个依赖于另一个。
附加说明:
类向导是关于添加MFC类的。因为您对添加MFC类不感兴趣,所以这不是合适的工具。
当我编写了一个使用本机C++DLL的C++/CLI DLL时,我需要添加链接到C++DLL的导入库的指令。这是在以下位置配置的:
"项目属性>配置属性>链接器>输入>附加依赖项">
工作区依赖项可确保首先生成非托管库,并且如果更新了非托管库(如果需要),则会重新编译或重新链接托管库。
- 如何将外部 dll 添加到我的 VS2019 项目?
- 在 gdb (Windows) 中添加 dll 的调试符号
- 如何使用 c++ 将 Mysql.data.dll 添加到 uwp 中?
- 添加新对话框后,MFC 应用程序启动失败并"DLL Initialization Failed"
- QT 创建器:无法添加 OpenCV dll 库 ( "File format not recognized" )
- Visual Studio 2015 C++ 将独立的 DLL 文件添加到项目中
- 无法添加对WINRT C DLL项目的参考
- visual将非托管C++dll添加到托管C++dll
- wxWidgets-通过DLL将项目添加到sizer
- 将OpenCV .dll文件添加到NetBeans C QT应用程序
- 将 SIMULINK 中的本机.dll文件添加到 Visual Studios C#
- 如何在编译DLL时添加includes
- 是否可以将 dll 添加到资源,并使用 LoadLibrary 从资源加载该 dll?C++
- 如何将zlib1.dll添加到MinGW
- 向activex dll (axvlc.dll)添加外部可访问的方法
- 将本机编译的c++ DLL添加到CLR c++项目中
- 如何将c# DLL添加到c++项目中
- 无法将托管.dll添加到c#项目中
- 如何将非托管c++ dll添加到Silverlight 5项目中
- 正在将MySql.Data.dll添加到Qt C++中