Мне нужно импортировать функцию, которую я написал на C ++ и которая теперь скомпилирована в DLL, в мое приложение на C #.Все строится без ошибок и предупреждений, но когда я выполняю код, первый вызов функции в DLL выдает Exception
с сообщением «Невозможно найти точку входа с именем« CreateScanEngine »в DLL« WMIQuery.dll »».Функция объявлена так в моем приложении на C #:
internal static class WMIQuery
{
[DllImport("WMIQuery.dll", CallingConvention = System.Runtime.InteropServices.CallingConvention.StdCall)]
internal static extern void CreateScanEngine();
}
Зависимость Уокер показывает функцию в DLL следующим образом:
Порядковый: 1 (0x0001)Подсказка: 0 (0x0000)Функция ^: void CreateScanEngine (void)Точка входа: 0x00001860
Dependency Walker также показывает следующие ошибки / предупреждения для DLL:
Ошибка: по крайней мере одна необходимая неявная или переадресованная зависимость не найденаПредупреждение. По крайней мере один модуль зависимости задержки и загрузки не найден.Предупреждение: по крайней мере один модуль имеет неразрешенный импорт из-за отсутствия функции экспорта в модуле, зависящем от задержки и загрузки.
Будет ли это иметь значение?Кроме того, я попытался добавить DLL в качестве ссылки на проект C #, и я получил эту ошибку:
Ссылка на [моя DLL] не может быть добавлена.Пожалуйста, убедитесь, что файл доступен, и что это допустимая сборка или компонент COM.
Кто-нибудь знает, что я делаю неправильно?Спасибо.