在64位系统上注册32位DLL

时间:2012-02-27 04:28:01

标签: c# visual-studio com

我正在使用一些测试代码来创建Visio文档。我在Window 7 64位上使用Visual Studio 2010。当我运行我的程序并尝试在程序中创建新的Visio应用程序对象时,我得到以下异常:

由于以下错误,检索CLSID为{00021A20-0000-0000-C000-000000000046}的组件的COM类工厂失败:80040154未注册类(HRESULT异常:0x80040154(REGDB_E_CLASSNOTREG))。

以下是导致异常的代码:

Visio.Application va = new Microsoft.Office.Interop.Visio.Application();

我验证了项目设置是构建一个32位应用程序。我已经跟踪它回到64位Windows无法加载32位.COM Visio dll。我尝试使用regsvr32注册dll,但收到错误消息,指出找不到入口点DLLregisterserver。 MDSN表示这意味着该文件不是有效的.dll。无论如何,我试图从Visual Studio库中注册Microsoft.Office.Interop.Visio.dll。有没有解决这个问题?是否有64位版本的.COM库?

2 个答案:

答案 0 :(得分:0)

关注this link。本页介绍了如何在32位系统上安装dll,尽管您使用的是64位系统

您可以在路径上的64位系统上找到32位版本的REGSVR32--%systemroot%\ SysWoW64 \ regsvr32.exe。

WoW =代表Windows上的Windows

答案 1 :(得分:0)

您尝试加载的Interop程序集取决于本机Visio DLL。为了在进程中加载​​这些DLL,它们需要匹配您的进程位数。

因此,您需要安装32位Visio。