Kiedy używam CDLL do wywoływania 32-bitowego dll w 32-bitowym pythonie, działa dobrze. Ale niestety w moim 64-bitowym systemie win7 tylko instaluje 64-bitowy python, gdy się go nazywa: to nie jest skuteczna aplikacja win32!
Czy mogę używać 32-bitowego dll lub exe w 64-bitowym pythonie? Czy muszę zamiast tego zainstalować 32-bitowy python?
Odpowiedzi:
25 dla odpowiedzi № 164-bitowe pliki EXE nie mogą załadować 32-bitowych plików DLL. (I na odwrót: 32-bitowe pliki EXE nie mogą załadować 64-bitowych bibliotek DLL.) Mimo wszystko nie mogą uzgodnić rozmiaru wskaźnika - co by się stało, gdyby pamięć przydzielona przez EXE przekraczała granicę 4 GB i chciała je przekazać wskaźnik do 32-bitowej biblioteki DLL?
Musisz albo:
- Utwórz 64-bitową wersję biblioteki DLL;
- Użyj 32-bitowej wersji Pythona; lub
- Hostuj bibliotekę DLL w osobnym (32-bitowym) pliku EXE i korzystaj z pewnej formy komunikacji między procesami, aby rozmawiać z nią w 64-bitowym procesie Pythona.