Autor |
Beitrag |
mumpiz
Hält's aus hier
Beiträge: 6
|
Verfasst: Mi 20.09.17 15:11
Hallo,
die IDE gibt mir den Hinweis dass folgender Ausdruck immer false ist.
Kann mir jemand sagen warum?
C#-Quelltext 1: 2: 3: 4: 5:
| hProcess = ProcessMemoryReaderApi.OpenProcess((uint)access, 1, (uint)ReadProcess.Id); if (hProcess == null) { throw new Exception("Opening process failed!"); } |
Ich möchte das Programm daran hindern weiter zu machen wenn ein Fehler beim öffnen eines Prozesses aufgetreten ist.
Moderiert von Th69: Titel geändert ("(IntPtr)" hinzugefügt)
|
|
Delphi-Laie
Beiträge: 1600
Erhaltene Danke: 232
Delphi 2 - RAD-Studio 10.1 Berlin
|
Verfasst: Mi 20.09.17 15:33
Dann wird wohl hProcess stets ungleich Null sein.
Edit: Das Problem ist wohl, daß Du ein ungültiges OpenProcess abfangen möchtest...dann wird hProcess wohl Null sein.
|
|
Blup
Beiträge: 174
Erhaltene Danke: 43
|
Verfasst: Mi 20.09.17 15:44
Für diesen Beitrag haben gedankt: Delphi-Laie
|
|
Frühlingsrolle
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Mi 20.09.17 15:45
- Nachträglich durch die Entwickler-Ecke gelöscht -
Für diesen Beitrag haben gedankt: Delphi-Laie
|
|
Delphi-Laie
Beiträge: 1600
Erhaltene Danke: 232
Delphi 2 - RAD-Studio 10.1 Berlin
|
Verfasst: Mi 20.09.17 15:48
Liebe Experten, dazu eine fast philosophische Frage: Kann der Compiler nicht bemerken, daß die Typen zum einen des Handles und dazu der des für den Vergleich kredenzten Wertes nicht übereinstimmen, und daraufhin einen paßgenaueren Alarm schlagen?
Zuletzt bearbeitet von Delphi-Laie am Mi 20.09.17 21:30, insgesamt 1-mal bearbeitet
|
|
Blup
Beiträge: 174
Erhaltene Danke: 43
|
Verfasst: Mi 20.09.17 16:05
Man kann nicht alles haben, automatische Typkonvertierung und Typprüfung.
Für diesen Beitrag haben gedankt: Delphi-Laie
|
|
Ralf Jansen
Beiträge: 4703
Erhaltene Danke: 991
VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
|
Verfasst: Mi 20.09.17 16:17
Eigentlich bekommt man bei einem solchen Vergleich von VS eine Warnung
Zitat: | The result of the expression is always 'false' since a value of type 'blahblah' is never equal to 'null' of type 'blahblah?' |
Hilft natürlich nur wenn man nicht der Unart anheimfällt Warnungen zu ignorieren weil man in seinem Code schon so viele hat das man die Relevanten nicht findet.
Für diesen Beitrag haben gedankt: Delphi-Laie
|
|
mumpiz
Hält's aus hier
Beiträge: 6
|
Verfasst: Mi 20.09.17 16:41
|
|
Th69
Beiträge: 4765
Erhaltene Danke: 1052
Win10
C#, C++ (VS 2017/19/22)
|
Verfasst: Mi 20.09.17 16:44
C#-Quelltext 1:
| if (hProcess == IntPtr.Zero) |
s. IntPtr.Zero
Für diesen Beitrag haben gedankt: mumpiz
|
|
Frühlingsrolle
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Mi 20.09.17 16:54
- Nachträglich durch die Entwickler-Ecke gelöscht -
|
|
mumpiz
Hält's aus hier
Beiträge: 6
|
Verfasst: Mi 20.09.17 16:55
|
|