【发布时间】:2012-12-13 00:30:52
【问题描述】:
我正在尝试将非托管 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 一样工作。由于数组是 List / etc. 类的构建块,据我所知,Collections 命名空间,让它们在 64 位土地上运行将为我们提供其他一切。
【问题讨论】:
标签: c++ visual-c++ c++-cli