我遇到了一个似乎与此相同的问题。
我有一个 VS 2008 解决方案,其中包括:(为简单起见更改了名称)
- DLL A:原生 C++,业务逻辑 DLL
- DLL B:DLL A 的 C++/CLI 包装器,命名空间为“Wrapper”
- EXE:AC# WinForms GUI EXE 项目(引用 DLL B)
当我构建 EXE 时,VS 给了我一个错误:
error CS0246: The type or namespace name 'Wrapper' could not be found (are you missing a using directive or an assembly reference?)
然而:
- 没有报告其他错误或警告
- EXE 项目中的所有引用似乎都可以正确解析
- DLL A 和 DLL B 都在没有错误或警告的情况下构建
- DLL A 包含 .h 头文件和 .cpp 文件(仅包含 .h 头文件)
- 我可以毫无问题地遍历对象浏览器中的“包装器”命名空间
第一个链接的问题提到了“编译器符号的重复定义”,但我不确定在这个意义上要寻找什么。
关于尝试什么的任何想法?