Windows DLL не будет использовать Path, чтобы найти другой DLL WindowsC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Windows DLL не будет использовать Path, чтобы найти другой DLL Windows

Сообщение Anonymous »

Недавно я переехал с бегуна Windows на Appveyor в Github Actions. Оба предоставили Visual Studio 2022. < /P>
Мое приложение-модуль Python на основе C, загруженный Anaconda Python Exe. Раньше он был в состоянии загружать DLL, используя функцию LoadLibrary только с именем файла и без подготовленного пути. Он сделал это, используя path переменную среды, установленную в моей среде Conda.
сделал что -то недавно изменившись с компилятором C ++ в Visual Studio 2022, что вызывает функцию Loadlibrary для игнорирования python Comming Line

из командной линии Python

из командной линии Python

из командной линии Python

Код: Выделить всё

    import ctypes
h=ctypes.CDLL('mkl_rt.2.dll')
Эта строка больше не работает в моем модуле Python .pyd :

Код: Выделить всё

    HINSTANCE__ *dll_p = LoadLibrary(dllname.c_str());
Когда dllname - просто имя файла. Если dllname включает в себя абсолютный путь, он будет загружен правильно.

Код: Выделить всё

PATH = . . . ;C:\Users\user\anaconda3\envs\foo\Library\bin; . . . .;
< /code>
и интерпретатор Python находится в: < /p>
C:\Users\user\anaconda3\envs\foo\python.exe
Старые версии моего приложения, с тем же исходным кодом, не имели проблем с поиском mkl_rt.2.dll , поэтому я думаю, что что -то должно было измениться в параметрах компиляции по умолчанию.

Подробнее здесь: https://stackoverflow.com/questions/797 ... indows-dll
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»