c# - System.Runtime.InteropServices.COMException (0x80040154)

标签 c# dll unhandled-exception

当我尝试在目标机器上部署我的应用程序时出现此错误。

我用谷歌搜索,发现一些 dll 需要注册(在我的应用程序中使用)

所以,我将 dll 复制到 System32 并执行了 regsvr32

然后我得到了这个错误

Interop.ShockwaveFlashObject.dll was loaded bt DllRegisterServer entry point was not found. The file cannot be registered

一件奇怪的事是,该应用程序不能只在一台机器上运行。我在 10 台不同的机器上进行了测试,一切都运行良好。它不能只在一台机器上工作。

有人可以帮我解决这个问题吗?

最佳答案

Interop dll 不需要注册,它实际上包含指向现有 COM 注册对象的指针。

如果它遵循通常的命名约定,则看起来 ShockwaveFlashObject.dll 未在计算机上注册(这将是您应该运行 regsvr32 的 DLL)。据推测,您需要安装 Shockwave/Flash(和/或检查安装的版本是否正确,如果您认为它已经在包装盒上)。

关于c# - System.Runtime.InteropServices.COMException (0x80040154),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3164162/

相关文章:

c# - 如何在表中重置标识

c++ - 无法从 C DLL 调用函数

c++ - 在内存中分配多个结构

c++ - 在cygwin中使用mingw编译器编译c++程序时缺少dll

c++ - 为什么在锁定 weak_ptr 时会出现访问冲突?

c# - 测试项目在它正在测试的项目中找不到对象

c# - @Html.Editor用于百分比显示和保存

c++11 - 使用 std::mutex 而不是 boost::mutex 时出现未处理的异常

android - 为什么 onServiceDisconnected 在应用程序崩溃时不会被调用?

c# - SQL Server 登录帐户和数据库用户之间的区别?