【发布时间】:2015-08-20 11:22:44
【问题描述】:
我有一个 C++ 库并在 C# 解决方案中使用我创建了一个 CLR 项目(托管)。因此,我已将托管 .dll 包含在我想要的 C# 项目中。智能感知可以看到它,我可以访问该库中的类,但是当我编译代码时“找不到类型或命名空间名称“XXXX”(您是否缺少 using 指令或程序集引用?)。 我尝试清理和重建项目,重新启动 Visual Studio (2013),将其删除并再次添加引用等等,但没有成功。
谢谢!
【问题讨论】:
-
嗯,我记得在学校做这个。但是你不需要中间人吗?充当本机代码和 C# 之间桥梁的包装器引用类?该类将调用本机函数并且可以从 C# 中使用。
-
你把它作为参考添加到
References下了吗? -
通常这是因为您要链接的库是为 64 位编译的,而您正在为 AnyCPU 或 32 位编译。确保两个项目的架构匹配。但是我会说,如果您只是通过将非托管 DLL 包含在托管 C++ 项目中并链接来尝试使用非托管 DLL,您仍然需要 something 来编组托管/非托管代码,这不仅仅是魔术因为您添加了额外的步骤。
-
@Placeable,我已经说过我创建了一个托管项目。这是我在 C++ 和 C# 之间的桥梁。
-
@Matthew Watson:是的,包括在内