C#:动态 link 库 (DLL) 初始化例程失败

C#: A dynamic link library (DLL) initialization routine failed

我正在尝试复制其他使用 CyStat.dll 的应用程序的某些功能。这是应用程序本身

https://mega.nz/#!sIRggKST!UEeAWgcT9ONbyc0WgFagI-0G36zxvEK1dMwzw3NYd60

它基本上是特定打印机的状态监控工具

我的问题是:每次尝试使用 dll 时都会出现此错误:

'Unable to load DLL 'CyStat.dll': A dynamic link library (DLL) initialization routine failed. (Exception from HRESULT: 0x8007045A)'

我知道这通常是因为缺少某些依赖项。以下是它使用的依赖项:

它们肯定存在于我的机器上,顺便说一下,我尝试复制的原始应用程序运行良好

这是我用来从 dll 中调用方法的代码:

    [DllImport("CyStat.dll", CharSet = CharSet.Ansi, SetLastError = true)]
    public static extern int CvInitialize([MarshalAs(UnmanagedType.LPWStr)] string pszPortName);

    var res = CvInitialize("DS-RX1");

我也尝试反编译该应用程序并从那里复制粘贴代码,但它失败并出现相同的错误

在此先感谢您的帮助

所以,我遇到了那个伴随着 System.DllNotFoundException 的错误,我没有马上注意到 我的 dll 依赖于 kernel32.dll 和 winspool.drv。当我注意到这个异常时,我意识到我试图在我的 64 位系统上加载 32 位 dll。所以我刚刚尝试了 64 位版本并且它运行完美