2012-03-25 2 views
4

저는 C# OpenTK 스크린 세이버 응용 프로그램에 매우 이상한 문제가 있습니다. 프로그램을 컴파일하고 확장자를 변경하기 전에 EXE 파일로 실행하면 제대로 작동합니다. 그러나 SCR 확장을 변경하고 실행하면 System.EntryPointNotFound 예외 (이 경우 glCreateProgram 함수)가 발생하여 충돌이 발생합니다. > "인텔" GL.GetString (StringName.Version) - -> "2.1.0 - 빌드 GL.GetString (StringName.Vendor) :화면 보호기에서 DLL 'opengl32.dll'의 진입 점을 찾을 수 없습니다.

EXE 파일로 : 디버거에서 나는 내가 실행할 때 있음을 확인했다 8.15.10.2622 "SCR 파일로

: GL.GetString (StringName.Vendor) ->"마이크로 소프트 " GL.GetString (StringName.Version) ->"1.1.0 "

내 응용 프로그램의 I에서 OpenGL 컨텍스트를 만들기 위해 GameWindow 클래스의 매개 변수없는 생성자를 사용하고 있습니다. 약간의 실험을 위해 BAT 로의 확장을 변경했으며 완벽하게 실행되었습니다. OpenGL 컨텍스트가 파일 확장명에 달려있는 이유는 모르겠지만 스크린 세이버는 시스템에 의해 오버레이가 실행되지만 실제로이 문제에 대한 해결책을 찾지 못했습니다.

아이디어가 있으십니까?

+0

. Windows에서 이름을 .scr로 바꿀 때 다른 이름을 찾습니다. c : \ windows \ system32에있는 파일 중 하나임 의심하지 않습니다. –

+0

내 컴퓨터에서 opengl32.dll이라는 라이브러리 사본이 2 개 있습니다. C : \ Windows \ System32에 있습니다. 두 번째 파일은 C : \ Windows \ winsxs \ ...에 있지만 두 파일은 동일한 버전입니다. –

+1

바로 Microsoft 버전입니다. 아직 인텔 버전을 찾지 못했습니다. 분명히 EXE 프로그램이 가능합니다. 관리되지 않는 디버깅을 활성화하고 디버그 + Windows + 모듈을보고 그 위치를 확인합니다. –

답변

1

마지막으로, 오랜 검색 후 인텔은 OpenGL을 사용하는 스크린 세이버에 대한 하드웨어 지원을 차단한다는 사실을 알게되었습니다. 저는 "sCr"확장자를 변경하여 드라이버를 속이거나 이제 모든 것이 잘 작동합니다.

링크 :이, 당신은 당신의 컴퓨터에 OPENGL32.DLL 하나 이상의 버전을 DLL을 지옥의 문제를 가지고있다 opengl.org forum

관련 문제