【发布时间】:2011-07-06 04:03:33
【问题描述】:
我正在尝试创建一个 ManagedWrapper dll,该 dll 可以从不会使用 /clr 开关编译的 MFC 应用程序调用。在我的测试 MFC 的标题中,我声明了以下内容:
#import "ManagedProxy.tlb"
using namespace ManagedProxy;
当我尝试编译测试 MFC 应用程序时,我收到错误 C2871:'ManagedProxy':具有此名称的命名空间不存在。我确信这在昨天还有效。如果我指定了错误的 tlb 文件名,我会收到编译错误 C1083,这表明 tlb 文件正在正确加载。
为什么现在 Visual Studio 会抱怨,为什么它以前可以工作?
加法:
我刚刚发现我的代理在将命名空间更改为 ManagedProxy 后停止工作。我已经重新编译了托管项目,并且本机应用程序具有作为附加包含路径的托管项目的调试文件夹,因此它应该引用最新的 tlb,但事实并非如此。我尝试了 tlb 的绝对路径,清理并重建了项目,但没有成功。
为什么 tlb 没有改变命名空间?
加法 使用对象浏览器查看 TLB 中的内容,并且命名空间 ManagedProxy 以某种方式重命名为其他内容。我还缺少几个接口,尽管它们标有 ComVisible(true)。
有人请帮忙....
TIA。
【问题讨论】: