Aplauz Temat założony przez niniejszego użytkownika |
Xp, a 7 problem » 2011-09-26 09:54:14 Witam, Mam problem z kompilacją tego samego programu na dwóch systemach operacyjnych. Na Windows 7 program, który jest umieszczony niżej działa, bez problemu. Na Windows XP po skompilowaniu, programy się crashuje . #include <windows.h> #include <iostream> #include <list> #include <conio.h> #include <string> using namespace std;
list < HKEY > dane;
int main() { dane.push_back( HKEY_CURRENT_USER ); dane.push_back( HKEY_LOCAL_MACHINE ); list < HKEY >::iterator it; for( it = dane.begin(); it != dane.end(); it++ ) { HKEY hkSoftware; LONG result; RegOpenKeyExA( * it, "Software\\Microsoft\\Windows\\CurrentVersion\\Run", 0, KEY_READ, & hkSoftware ); DWORD dwMaxName, dwMaxData, dwMaxIndex; result = RegQueryInfoKeyA( hkSoftware, NULL, NULL, NULL, NULL, NULL, NULL, & dwMaxIndex, & dwMaxName, & dwMaxData, NULL, NULL ); DWORD dwMaxName_ = dwMaxName, dwMaxData_ = dwMaxData; char * ValueName; char * Data; DWORD ValueType; for( DWORD i = 0; i < dwMaxIndex; i++ ) { ValueName = new char[ 1024 ]; Data = new char[ 1024 ]; dwMaxName = 500; dwMaxData = 500; result = RegEnumValueA( hkSoftware, i, ValueName, & dwMaxName, NULL, & ValueType,( LPBYTE ) Data, & dwMaxData ); if( result == ERROR_SUCCESS ) { cout << ValueName << endl; cout << Data << endl; } else cout << result << endl; memset( ValueName, '\0', 1024 ); memset( Data, '\0', 1024 ); ValueType = 0; result = RegQueryInfoKeyA( hkSoftware, NULL, NULL, NULL, NULL, NULL, NULL, & dwMaxIndex, & dwMaxName, & dwMaxData, NULL, NULL ); } GlobalFree( ValueName ); GlobalFree( Data ); } getch(); return 0; }
Na XP nie wyświetla się żaden błąd, tylko zielona strzałeczka wskazuje na linijkę(tą bliżej return 0): result = RegQueryInfoKeyA( hkSoftware, NULL, NULL, NULL, NULL, NULL, NULL, & dwMaxIndex, & dwMaxName, & dwMaxData, NULL, NULL );
Próbowałem już wiele razy rozwiązać ten problem, jednak ni w ząb nie mogę sobie z tym poradzić. Podkreślam, iż na Windows 7 program działa. Czy mógłby mi ktoś udzielić jakiejś wskazówki dotyczącej naprawy mojego programu? PS. Nie wiem, czy to ma jakieś znaczenie, lecz na Win7 używam Visual C++ 2010, a na XP 2008. |