2017-10-06 1 views
1

32 비트 또는 64 비트 응용 프로그램에서 C:\WINDOWS\system32\opengl32.dll (및 마찬가지로 C:\WINDOWS\system32\glu32.dll)의 기능에 액세스 할 수있는 것 같습니다 (32 비트 및 64 비트 별도로 수행하고 있습니다). 파이썬 2.7 해석기, ctypes 모듈을 통해).특정 Windows DLL은 분명히 32 비트와 64 비트를 모두 지원합니까?

glut32.dll으로 변경 될 수 있습니다. GraphViz의 32 비트 설치의 일부로 내 Path에있는 경우에만 발생합니다. 32 비트 Python에서 동적으로 링크 할 수 있지만 64 비트 Python에서는 [Error 193] %1 is not a valid Win32 application이됩니다. 난 항상 (특히, this recent question and its answers 그렇게 말 것) 된 DLL이 Windows에서 하나의 아키텍처 또는 다른 커밋 할 의무가 있다고 생각했기 때문에

자,이 오류가 하지 놀라운 내게한다. 놀랍게도 은 첫 번째 경우에에 오류가 없음 ... opengl32.dll은 어떻게 수행합니까? 그리고 내 자신의 DLL을 빌드 할 때이 동작을 어떻게 복제 할 수 있습니까?

+0

https://msdn.microsoft.com/en-us/library/windows/desktop/aa384187(v=vs.85).aspx –

+0

그건 그냥 믿을 수 없을만큼 비열한입니다. 많은 감사합니다. – jez

답변

2

64 비트 시스템에서는 64 비트 프로세스 만 c:\Windows\System32\opengl32.dll을 사용합니다. 32 비트 프로세스의 경우 c:\Windows\System32\opengl32.dllc:\Windows\SysWOW64\opengl32.dll으로 리디렉션합니다. 32 비트 응용 프로그램을 % windir % \ system32를 액세스하려고 시도 할 때마다 대부분의 경우

File System Redirector

는, 액세스가의 % windir % \ SysWOW64와로 리디렉션됩니다. % windir % \ lastgood \ system32에 대한 액세스는 % windir % \ lastgood \ SysWOW64로 리디렉션됩니다. % windir % \ regedit.exe에 대한 액세스는 % windir % \ SysWOW64 \ regedit.exe로 리디렉션됩니다.

관련 문제