2012-05-10 7 views
2

최근 Windows 7이 설치된 새로운 PC를 설치하고 C# 2010 Express를 설치했습니다. C# 2008 Express의 Vista 컴퓨터에 많은 소프트웨어를 작성했습니다. 관리되는 D3D 응용 프로그램을 2010으로 마이그레이션하려고 시도했을 때 "유효한 Win32 응용 프로그램이 아닙니다"라는 오류 메시지와 함께 모두 충돌했습니다. MS가 관리되는 DirectX를 더 이상 지원하지 않기 때문에 일부 문제 해결 후 배웠습니다. 이 얼마나 끌레.
* OpenGL을
(당신이 VC++에서 사용하는 것처럼)관리되는 DirectX 프로그램을 Windows 7로 어떻게 마이그레이션해야합니까?

* XNA
* Direct3D를 10/11 API : 그래서 나는 다음과 같은 대안 중 하나를 사용하는 코드의 톤을 다시 작성해야합니다 같습니다 * 같은 몇 가지 다른 옵션, 어쩌면 SlimDX

내가있는 솔루션을 찾고 있어요 :
* 이전 버전과 호환 (즉, Vista 및 XP)
* 나는 새로운 배우고 싶지 않아 (포워드 호환 시스템을 삭제하고 1 년에 다른 것을 배우기 만하면 됨)
* OO-f 친화적 인 - 저는 수천 줄의 코드를 다시 작성해야합니다. 관리되지 않는 코드를 작성하는 데 문제가 없지만 비슷한 OO 솔루션을 사용하면 포팅 시간이 단축 될 수 있습니다.

나는이 문제를 다루는 첫 번째 사람이 될 수 없습니다. 다른 사람들이 찾은 해결책은 무엇입니까?

+0

나는 이식성을 위해 OpenGL을 제안합니다. – Alex

답변

1

제 생각에는 응용 프로그램이 x86 어셈블리를 참조하는 AnyCPU로 작성되었지만 Win7 시스템이 x64 일 것입니다. x86으로 응용 프로그램을 빌드하면 문제가 해결 될 수 있습니다.

+0

와우 효과가 있습니다! 전에 시도했지만 지금은 무슨 일이 일어난 것 같아요 DLL 중 하나를 내가 그것을 x86으로 변경 한 후 재건하지 않았다. 글쎄요, 효과가 있었기 때문에 기쁩니다.하지만 모든 사람들이 나에게 말할 것이라고 확신하기 때문에 Managed DirectX 사용을 중단해야합니다. 권장 대체품은 무엇입니까? – HypnoToad

+0

x86으로 다시 빌드해야하는 유일한 예는 exe입니다. 나는 SlimDX를 과거에 성공적으로 사용했고, 그 일을 끝 마쳤습니다. – erikkallen