2012-04-10 2 views
1

WINE에서 VB6 앱을 실행하고있어 프로그램의 OpenGL 부분이 작동하지 않습니다. PFD_DRAW_TO_BITMAP을 사용 중입니다. PFD_DRAW_TO_WINDOW 형식이 작동하는 것 같습니다.SetPixelFormat은 0을 반환하지만 오류가 설정되지 않습니까?

나는 모든 픽셀 포맷 (약 256 개가 있음)을 열거했으며, 일부는 요청한 것과 일치합니다. ChoosePixelFormat은 올바른 형식 (이 경우 pixelFormat 6)을 반환하는 것으로 보이지만이 값을 SetPixelFormat에 전달하면 0을 반환합니다. 설명서를보고 GetLastError()에서 자세한 정보를 확인하지만, 빈 형식의 오류 메시지를 나타내는 0을 반환합니다.

어쨌든 SetPixelFormat이 실패하는 이유를 아는 사람이 있습니까? 나는 약간의 독서를했으며 DRAW_TO_BITMAP이 2009 년 5 월 이후에 구현 된 것 같습니다.

DRAW_TO_BITMAP은 하드웨어 가속화가 아닙니다. 그것은 완벽하게 받아 들일 수 있습니다. 이 응용 프로그램은 Windows에서 잘 작동합니다. - 지원되는 픽셀 형식이 인식되지 않는 이유를 알아야합니다.

우분투 패키지 관리자에서 가장 최신 버전의 와인 인 Quadro를 사용하고 있습니다. 와인이 기본 그래픽 카드를 사용하려고 시도하거나 소프트웨어의 모든 픽셀 형식을 가상화한다면 확실하지는 않습니다. 렌더링)

+0

실제 Windows 설치에서 테스트하여 Wine 버그인지 확인 했습니까? – Deanna

+0

그래, 내 Windows에서 작동합니다. 모든 설치에서 작동합니다. 3을 제외하고 계속 시도했습니다. –

답변

0

SetPixelFormat은 WINE에서만 오류가 발생할지 모르지만 어떤 경우에는 VB6 코드에서 GetLastError을 수동으로 호출하는 것이 잘못되었습니다. VB는 자체 DLL 호출을 수행합니다. 이것들은 (일반적으로) 성공할 것이고, GetLastError이 보여주는 오류 코드를 재설정하고 VB 코드에서 쓸모 없게 만들 것입니다.

대신 VB는 사용자가 시작한 모든 DLL 호출 후에 즉시 GetLastError을 호출합니다. 값을 저장하고 속성 Err.LastDllError으로 사용할 수있게합니다. 이를 사용하여 실제 오류 코드를 찾으십시오.

관련 문제