2014-04-11 9 views
0

우리는 Windows XP에서 Windows 7로 이전하는 중에 VB6 응용 프로그램을 사용하고 있으며 여러 가지 문제가 있습니다. Windows XP (서비스 팩 3)로 응용 프로그램의 호환 모드를 설정하면 이러한 문제 중 일부가 사라집니다.Windows 호환성 모드의 함점

우리의 응용 프로그램을 단순히 호환 모드에서 실행하는 것이 좋은 해결책인지 궁금합니다. 나는 인터넷 검색을하고 있었고 호환 모드를 사용하는 데는 단점이 있다는 것을 발견하지 못했습니다. 그러나 대부분의 사람들은 개발하지 않는 응용 프로그램에이 프로그램을 사용합니다.

장기적인 목표는 VB6 코드를 모두 C#으로 바꾸는 것이지만 시간이 오래 걸릴 것입니다. 어쩌면 호환성 모드를 사용하여 VB6을 교체하는 것은 나쁜 일이 아닙니다.

응용 프로그램을 개발하고 의도적으로 호환성 모드로 실행하는 경험이있는 사람이 있습니까? 내 직감은 나쁜 생각이지만, 그것을 사용하는 것에 대한 어떤 증거도 찾을 수 없습니다.

+2

잘못된 가정으로 작성된 작성 코드가 계속 실행됩니다. C#으로 다시 작성하는 경우에도 이러한 가정을 수정해야합니다. 코드를 작성하면 VB6 코드에서 appcompat shims가 필요하지 않습니다. – Bob77

답변

1

소비자 앱 (정말 나쁜 아이디어 호환 모드)과 업무용 앱이 있습니다. 당신이해야 할 일을합니다. 당신은 환경을 통제합니다.

다음은 WinXPSP2가 수행하는 특정 작업입니다 (Vista에서는 SP3 옵션이 없음).

DirectXVersionLie 
ElevateCreateProcess 
EmulateSorting 
EnableLegacyExceptionHandlinginOLE 
FailObsoleteShellAPIs 
GlobalMemoryStatus2GB 
HandleBadPtr 
HardwareAudioMixer 
LoadLibraryCWD 
NoGhost 
RedirectMP3Codec 
VirtualRegistry 
WinXPSP2VersionLie 

좋은 추측 앱 (위 목록에 # 2) 상승 실행해야합니다.

BTW 프로세스를 시작하면 프로세스가 정상적으로 시작되며 프로세스를 종료하는 기능인 create 프로세스가 ElevationRequired와 함께 실패하면 프로세스가 상승 된 상태로 다시 시작됩니다.

1

저는 이전에 win7 64 비트에서 작업해야했던 오래된 vb6 응용 프로그램이 있습니다. XP 모드에서 실행하는 것은 솔루션의 일부입니다. 이전 설치 프로그램에 다른 문제가있어서 권한 상승 명령 프롬프트에서 windows \ sysWOW64 \에 대해 regsvr32.exe를 실행해야했습니다. 관리자로 로그인하지 않으면 관리자가 작동하지 않아 설치 프로그램을 실행하는 것처럼 설치해야했습니다. 45 분 정도면 부품을 등록했지만 마지막에는 괜찮 았어. 도움이 되길 바랍니다. 건배 Dave