Od czasu do czasu na komputerze może pojawić się komunikat o błędzie informujący, że program Flash Builder może zostać opisany jako błąd niezainstalowany. Ten błąd może mieć wiele celów.
Zatwierdzono: Fortect
Prezentacja
Ostatnio pracowałem nad małym celem związanym z aktywnymi połączeniami dial-up. Internet wdzwaniany 2 . 0 jest dostarczane przez usługę zdalnego dostępu systemu Windows (RAS) i służy głównie do łączenia się z większością Internetu za pośrednictwem modemu. Próbowałem użyć funkcji RasEnumConnections
, gdy trzeba bezpośrednio wyświetlić listę aktywnych połączeń telefonicznych w celu uzyskania wspólnego uchwytu do dalszego przetwarzania. Niestety, niezależnie od moich nowych ustawień kompilatora, funkcja konsekwentnie dawała 632 rasconn
w Win2k Professional, co oznacza “Nieprawidłowy rozmiar struktury”. Przeglądając Internet i strony CodeProject, zauważyłem, że wielu z nas było świadkami tego samego efektu i dlatego nie było żadnego obejścia. Celem tego artykułu jest bezpośrednie przejście na długą drogę w naprawieniu tego bezproduktywnego błędu.
Aby dowiedzieć się, dlaczego wydajność nadal nie może tego zrobić, przejrzałem te wewnętrzne elementy tej funkcji krok po kroku lub stwierdziłem, że operacja oczekuje różnych obszarów ramek RASCONN
(tj. wersji struktury) . ale mimo to dla Ciebie płaska wartość to sizeof (RASCONN)
. Najlepsze dopasowanie od czasu 0x53c. Zaimplementowałem tę funkcję, aby oszukać funkcję, ostrzegając Cię o 0x53c jako rozmiarze naszej struktury RASCONN
. Zadziałało! Poniższy kod jest bez wątpienia programem, który wylicza i kończy inne połączenie dial-up.
Zatwierdzono: Fortect
Fortect to najpopularniejsze i najskuteczniejsze narzędzie do naprawy komputerów na świecie. Miliony ludzi ufają, że ich systemy działają szybko, płynnie i bez błędów. Dzięki prostemu interfejsowi użytkownika i potężnemu silnikowi skanowania, Fortect szybko znajduje i naprawia szeroki zakres problemów z systemem Windows - od niestabilności systemu i problemów z bezpieczeństwem po zarządzanie pamięcią i wąskie gardła wydajności.
Sztuczka polega na tym, aby dwSize
porównać do wersji 0x53c. Zauważ, że większość 0x53c może być mniejsza niż sizeof (RASCONN)
, więc pamięć nie zostanie uszkodzona.
Na przykład kod napisany zgodnie z ogólnym wywołaniem MSDN dla RasEnumConnections wygląda tak:
RASCONN RasConn;
DWORD cb;
Łączy DWORD = 0;
RasConn.dwSize = cb Sizeof (RASCONN);
oznacza DWORD nRet = RasEnumConnections (& RasConn, & cb, & Connections);
Zawsze wracaj do ERROR_INVALID_SIZE (632) w czasie wykonywania. Poszukałem więc i ktoś z kodu Saida naprawia ten problem z podejściem. Niezbędne jest napisanie RasConn.dwSize i 0x53c. Na innej stronie powinien wyglądać 0x19c i próbowałem. Ale nie rozumiem dlaczego? Innym wyjaśnieniem MSDN jest to, że witryna musi zastąpić WINVER w zależności od pakietu, a następnie ponownie skompilować, aby działała w nowych wersjach systemu Windows.
WYRÓŻNIONE wykonanie zlokalizowane
DWORD dwSize;
AVA HRASCONN hrasconn;
SYMBOL szEntryName [RAS_MaxEntryName + 1];
#if (WINVER> = 0x400)
ZNAK szDeviceType [RAS_MaxDeviceType + dwa];
SYMBOL szDeviceName [RAS_MaxDeviceName + określony];
# endif
#if (WINVER> = 0x401)
ZNAK szKsiążka telefoniczna [MAX_PATH]; DWORD DWORD
dwSubEntry;
#endif
#if (WINVER> oznacza 0x500)
GUID guidEntry;
#endif
#if (WINVER> = 0x501)
DWORD dwFlags;
PŁYN PŁYN;
#endif
;
Następnie podaj rozmiar różnych WINVER,
WINDOWSNT4.0 (0x400) 0x19c
0x2A4
windows9x na mnie WINDOWS2k 0x2B4
WINDOWSxp / 2003 0x2C0
Kod Win2k RasEnumConnections jest często zaokrąglany do ogólnych rozmiarów 0x2B4 i 0x19c, w połączeniu z błędami 632 dla innych rozmiarów. Wymiana Win2003 RasEnumConnections może obsłużyć te cztery rozmiary, ponieważ błąd 632 jest zwracany tylko wtedy, gdy ponad cztery rozmiary nie są w ogóle dostępne.
Pomyśl o tym, wszystko rozumiem. Użyłem VS2003 do zamanifestowania aTen program nie zdefiniował WINVER. Domyślnie cały kompilator jest ustawiony na 0x501, więc sizeof (RASCONN) 0x2c0, = i uruchamiam program w 2k i korzystam z błędu 632. Więc niezależnie od tego, czy nie chcesz korzystać z informacji o wersji i faktów, po prostu napisz RasConn .dwSize dla 0x19c później. a następnie może być używany w całym miejscu docelowym.
Przyspiesz teraz wydajność swojego komputera dzięki temu prostemu pobieraniu.