我有一个COM dll(MyWrapper),里面定义了一个COM ATL对象(类)。这个COM DLL基本上是我的WPF .exe和本机MFC dll之间的接口。
一切正常,直到我将COM dll放入源代码控制中以检查代码。我将Pre和post构建事件放在将dll复制到我们想要的位置。当我编译时,我得到了错误。
“无法注册dll。尝试按用户重定向启用”
我在链接器中启用了该选项。 dll编译并成功复制到目录。然后我尝试添加对WPF项目的引用,它给了我以下错误
“无法添加对MyWrapper.dll的引用”。请确保该文件是可访问的,并且它是有效的程序集或COM组件“
当我删除前/后构建事件然后添加引用时,一切都很好。 我在Dependency walker中加载了它,显示IESHIMS.dll丢失了。
我尝试使用regsvr32注册dll但返回错误“模块'MyWrapper.dll'已加载,但对DllRegisterserver的调用失败,错误代码为0x80070715。
注意:我在我的计算机上拥有管理员权限,并且我以管理员身份运行Visual Studio。 请帮忙。
由于
答案 0 :(得分:0)
在postBuild事件中,我创建了COM的代理dll,并在我的WPF应用程序中添加了该dll。这解决了我的问题。