Загрузка динамических библиотек c/c++ в pythonPython

Программы на Python
Ответить
Anonymous
 Загрузка динамических библиотек c/c++ в python

Сообщение Anonymous »

Далее представлена ​​моя среда разработки;
Qt: 6.5.5,
pyside 6,
OS: windows,
compiler for c++ libraries mscv2019

Я работаю над проектом, в котором основная логика реализована на C/C++, и использую QML для пользовательского интерфейса. Я пытаюсь создать подпроект, в котором бизнес-логика будет обрабатываться Python, а пользовательский интерфейс по-прежнему будет в QML.

Я хочу загрузить C++ DLL в код Python, чтобы обеспечить связь между ними двумя.

Цель состоит в том, чтобы Python выступал в качестве моста между пользовательским интерфейсом (QML) и кодом C++.
На данный момент я пробовал использовать эти два метода. для загрузки dll,
Метод 1
dll_path = Path(r"C:\Simulator\Platform_Code\Build\QtCreator\outfiles\win64-x86-msvc\release\Test.dll")
if not dll_path.exists():
print(f"DLL not found: {dll_path}")
sys.exit(-1)

cpp_lib = QLibrary(str(dll_path))
print(f"Attempting to load cpp_lib from: {cpp_lib}")
result = cpp_lib.load()

if not result:
print("Hi " + cpp_lib.errorString())
sys.exit(-1)

if not cpp_lib.load():
print(f"Failed to load the DLL: {cpp_lib.errorString()}")
sys.exit(-1)
print("DLL loaded successfully.")

Метод 2
def load_all_dlls(folder_path):
for filename in os.listdir(folder_path):
if filename.endswith('.dll'):
full_path = os.path.join(folder_path, filename)
try:
ctypes.CDLL(full_path)
print(f"Successfully loaded {full_path}")
except Exception as e:
print(f"Failed to load {full_path}: {e}")

dll_path = Path(r"C:\Simulator\Platform_Code\Build\QtCreator\outfiles\win64-x86-msvc\release\Test.dll")
if not dll_path.exists():
print(f"DLL not found: {dll_path}")
sys.exit(-1)

cpp_lib = QLibrary(str(dll_path))
print(f"Attempting to load cpp_lib from: {cpp_lib}")

но я получаю сообщение об ошибке:
Attempting to load cpp_lib from: \
Hi Cannot load library C:\\Simulator\\Platform_Code\\Build\\QtCreator\\outfiles\\win64-x86-msvc\\release\\Test.dll: The specified module could not be found.


Подробнее здесь: https://stackoverflow.com/questions/791 ... -in-python
Ответить

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

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

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

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

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