Windows XP와 Windows Vista에서는 아무런 문제가 없는 VC++ 2005로 작성된 프로그램이 Windows 2000에서만 런타임에러를 토해버린다. Micorsoft를 싸잡아 욕하면서 꽤 많은 시간을 삽질한 결과…, 역시나 내 실수다.
1 2 3 4 5 6 7 8 9 10 11 |
LONG RegCreateKeyEx( HKEY hKey, LPCTSTR lpSubKey, DWORD Reserved, LPTSTR lpClass, DWORD dwOptions, REGSAM samDesired, LPSECURITY_ATTRIBUTES lpSecurityAttributes, PHKEY phkResult, LPDWORD lpdwDisposition ); |
out 파라미터인 phkResult가 NULL인 경우, 이러한 예외상황을 Windows XP와 Windows Vista에서는 적절히 처리하는데 반해서 Windows 2000은 그렇지 못하다.
MSDN이 말하지 않았으면, 하지 말라는 거다!