繁体   English   中英

在64位系统上注册32位DLL

[英]Registering 32-bit DLL on 64 bit system

我正在使用一些测试代码来创建Visio文档。 我正在Windows 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。 有解决办法吗? .COM库是否有64位版本?

点击此链接 尽管您使用的是64位系统,但该页面说明了如何在32位系统上安装dll。

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

WoW = Windows上的Windows

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM