Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » alf+strg+entf von ausem LAN??

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: [ 1 ] > 2 <
010
04.08.2004, 12:54 Uhr
~Spacelord
Gast


Mich würde mal interessieren ob du selber den Code verstehst?

Besonders interessant sind diese beiden Passagen:

C++:
typedef BOOL (WINAPI *TH32_PROCESS)
(HANDLE hSnapShot, LPPROCESSENTRY32 lppe);
static TH32_PROCESS pProcess32First = NULL;
static TH32_PROCESS pProcess32Next = NULL;



Hier legst du 2 Funktionszeigervariablen(Die von ihrem Typ her Process32First und Process32Next entsprechen) an uns setzt sie auf NULL.

Weiter unten dann ohne dass mit denen noch irgendwas passiert wäre:

C++:
pProcess32First(hSysSnapshot,&proc);



Jetzt benutzt du den Funktionszeiger (der ja NULL ist).

Vielleicht überseh ich ja was aber so wirklich Sinn macht das nicht.

Probier mal:

C++:
typedef BOOL (WINAPI *TH32_PROCESS)
(HANDLE hSnapShot, LPPROCESSENTRY32 lppe);
static TH32_PROCESS pProcess32First = Process32First;
static TH32_PROCESS pProcess32Next = Process32Next;


Macht dann zwar immer noch nicht so wirklich Sinn,sollte aber nicht abstürzen.

MfG Spacelord
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
011
04.08.2004, 17:06 Uhr
RedEagle



ich verstehe den code fast garnicht (habe noch nicht so den überblick )
ich habe die oberen sachen (die ich auf NULL habe) von einem änlich code kopiert, weil es so zu kompilieren ging (warum, weiß ich nicht)

jetzt kommen Linkererrors wegen Process32First / Next
--
MFG RedEagle
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
012
04.08.2004, 19:42 Uhr
Spacelord
Hoffnungsloser Fall



Zitat von RedEagle:
ich verstehe den code fast garnicht (habe noch nicht so den überblick )
ich habe die oberen sachen (die ich auf NULL habe) von einem änlich code kopiert, weil es so zu kompilieren ging (warum, weiß ich nicht)

jetzt kommen Linkererrors wegen Process32First / Next


Mit VC++ kompiliert es.
Hast du mal geschaut ob Dev C++ den toolhelp Header überhaupt hat?

Ich halte es übrigens für bedenklich das du ein Programm,das du selber nicht ganz verstehst,auf den Rechner von jemand anderen "loslassen" willst.

Das fängt schon damit an dass der Prozess mit TerminateProcess beendet wird.TerminateProcess informiert die Dll's des Prozesses nicht darüber das der Prozess beendet wird.Dadurch fallen eventuell wichtige Aufräumarbeiten weg.
Probieren kannst du das z.B. mal mit Notepad.
Gib da mal Text ein und drück dann einfach auf das schliessen Kreuz.Bevor der dicht macht fragt dich Notepad noch ob die Daten gespeichert werden sollen.Wenn du den Notepad Prozess mit TerminateProcess beendest geschieht nichts dergleichen.

MfG Spacelord
--
.....Ich mach jetzt nämlich mein Jodeldiplom.Dann hab ich endlich was Eigenes.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
013
04.08.2004, 19:49 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)



Zitat:

Wenn du den Notepad Prozess mit TerminateProcess beendest geschieht nichts dergleichen


hehe praktisch gell
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
014
04.08.2004, 22:55 Uhr
~RedEagle
Gast


Ich möchte lediglich ein selbstgebautes Programm damit beenden (ohne dll's o.ä.)
der header müsste existieren, da es ja schonmal kompiliert war, aber abstürtzte.
UND VC++ hasse ich
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
015
05.08.2004, 09:23 Uhr
RedEagle



mit VC++ funktionierts.
Warum gehts denn nicht mit DEV-CPP??? der header ist da

auf jeden fall
--
MFG RedEagle
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
016
05.08.2004, 09:40 Uhr
Spacelord
Hoffnungsloser Fall


Schau mal ob du die kernel32.lib explizit mitlinken musst.
Und verschieb das:

C++:
TH32_PROCESS pProcess32First = Process32First;
TH32_PROCESS pProcess32Next = Process32Next;


mal an den Anfang deiner stop Funktion.

Dann kannst du mal die genaue Fehlermeldung posten.


MfG Spacelord
--
.....Ich mach jetzt nämlich mein Jodeldiplom.Dann hab ich endlich was Eigenes.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: [ 1 ] > 2 <     [ C / C++ (WinAPI, Konsole) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: