죄송합니다. 영어가 유감 스럽습니다. 그럼. Dev C++에서 간단한 동적 링크 라이브러리를 작성합니다. 그것의 작업 nice.Today 내가 내 파이썬 프로젝트에서 라이브러리입니다 가져옵니다. 동적 링크 라이브러리 파일 경로 : lib/my_dll.dll
#Dialog 상자Python CDLL이 라이브러리를로드 할 수 없습니다.
DLL_PATH = "lib/my_dll.dll"
main.py (config.py) config.py는
def my_func():
dll = CDLL(DLL_PATH)
return dll.func1()
그래서 내가 파이썬 인터프리터를 열고이 쓰기 가져옵니다.
from main import *
a = my_func() #Its work nice so a == "c:\\Windows\\a.txt"
는하지만 난이 기능 파이썬은
OSErrror:[WinError 126] The specified module could not be found
가 읽어 주셔서 감사 다음 오류를 생성 재사용!
DLL의 전체 경로를 제공하십시오. 또한 null로 끝나는 문자열을 반환하는 함수는 기껏해야 모호한 것처럼 보입니다. 또한이 코드가 문자열을 반환하는 방법을 알지 못합니다. 다시 입력은 어디에도 지정하지 않았습니다. DLL은 한 번만로드해야합니다. 왜 그것을 반복해서로드하고 싶습니까? –
답장을 보내 주셔서 감사합니다. 이것은 DLL 호출 Windows API 파일 선택 대화 상자입니다. 문제가되지 않습니다. 기능이 잘 작동합니다. 내 기본 프로젝트 디렉토리 c : \ Project. C : \ Project 디렉토리에는 main.py, config.py, lib 디렉토리가 있습니다 ... lib 디렉토리에는 my_dll.dll이 있습니다. 그래서 my_dll.dll을 호출하고 c_char_p (선택된 경로)를 반환합니다. a = my_func()는 경로를 반환합니다. 그러나이 함수를 다시 호출합니다. 예제 a = my_func() 오류 발생 –
'dll.func1.restype = c_char_p'를 설정해야합니다. 정수 결과를'c_char_p (result)'로 변환하려고 시도하지 마십시오. 이는 64 비트 포인터를 자릅니다. – eryksun