저는 인터넷에서 검색을 해왔는데 왜 이런 일이 발생하는지는 알지 못합니다. 분명히 확실한 배열 문제는 아닙니다.런타임 검사 오류 # 2 - 변수 'osvi'주위의 스택이 mfc 응용 프로그램에서 손상되었습니다.
BOOL IsOsCompatible()
{
BOOL retVal = 0;
OSVERSIONINFO osvi;
ZeroMemory(&osvi, sizeof(OSVERSIONINFOEX));
osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX);
GetVersionEx(&osvi);
if(osvi.dwMajorVersion == 6)
{
if(osvi.dwMinorVersion == 0)
{
if(SendErrorM("This program has not been tested on Windows Vista(TM).\nAre you sure you want to use it?",MB_YESNO) == IDYES)
retVal = 1;
}
else if(osvi.dwMinorVersion == 1)
{
retVal = 1;
}
else if(osvi.dwMinorVersion == 2)
{
if(SendErrorM("This program has not been tested on Windows 8(TM).\nAre you sure you want to use it?",MB_YESNO) == IDYES)
retVal = 1;
}
}
else
SendErrorM("Your windows verison is incompatible with the minimum requirements of this application.",NULL);
return retVal;
}
어떤 아이디어 : 여기
함수입니까?OSVERSIONINFO osvi;
ZeroMemory(&osvi, sizeof(OSVERSIONINFOEX));
윈도우 A, W 및 X 빨아 :
나는 이것에 대해 더 동의 할 수 없었다. 문제는 코드를 조금 깔끔하게 만들었고 그의 형제로'OSVERSIONINFOEX'를 바꿨을 때 나타난다. – Nutterz