我正在尝试复制其他使用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");
我还尝试从那里反编译该应用程序并复制粘贴代码,但是失败并出现相同的错误
在此先感谢您的帮助
答案 0 :(得分:1)
因此,我遇到了该错误,伴随有System.DllNotFoundException,我没有立即注意到 我的dll依赖kernel32.dll和winspool.drv。当我注意到该异常时,我意识到我试图在64位系统上加载32位dll。所以我只是尝试了64位版本,所以效果很好