C #: сбой процедуры инициализации библиотеки динамических ссылок (DLL) - PullRequest
0 голосов
/ 05 июня 2019

Я пытаюсь воспроизвести некоторые функции другого приложения, которое использует 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)'

Я знаю, что обычно это потому, что некоторые зависимости отсутствуют.Вот зависимости, которые он использует:

enter image description here

Они определенно присутствуют на моей машине, и, кстати, оригинальное приложение, которое я пытаюсь скопировать, отлично работает

Вот код, который я использую для вызова методов из DLL:

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

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

Я также попытался декомпилировать это приложение и скопировать код оттуда, но это не удается ста же ошибка

Заранее спасибо за любую помощь

1 Ответ

1 голос
/ 08 июня 2019

Итак, эта ошибка сопровождалась System.DllNotFoundException, который я сразу не заметил Моя dll зависела от kernel32.dll и winspool.drv. Когда я заметил это исключение, я понял, что пытался загрузить 32-битную DLL в моей 64-битной системе. Поэтому я только что попробовал 64-битную версию, и она отлично работала

...