Далее представлена моя среда разработки;
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