WriteMemory Error [HELP me pls]

12/23/2014 12:16 Iηfamσυs#1
Hallo zusammen,
ich bin noch relativ unerfahren was VB angeht. Deswegen wollte ich euch bitten mir vlt zu helfen.
Sobald ich die WriteMemory in eine hier komplett leere Form einfüge ( habs euch schon mit fertigem coding versucht) erscheinen die fehlermeldungen:[Only registered and activated users can see links. Click Here To Register...]

Wo liegt der Fehler ? bzw wie könnte ich ihn beheben?

PS hier mal die WriteMemory:

Danke im vorraus! <3
12/23/2014 13:09 Mostey#2
Wo bekommt ihr eigentlich immer dieses abnormal schlampig programmierte VB File her? Ständig gibt's Probleme damit - letztens erst wegen Inkompatibilität auf 64 Bit Systemen.

Lies doch bitte nochmal die Fehlermeldung in der Konsole (ist btw. nur ne Warnung) und schau dir die Funktion ReadDMALong mal an. Siehst du nicht, dass hier im Falle einer Exception nichts zurückgegeben wird obwohl angegeben wurde dass ein Wert vom Typ long zurückgegeben wird? Ich behebe das mal mit Absicht nicht, weil du sonst morgen fragen wirst, wie man eine Variable deklarieren und definieren kann. So etwas gehört zu den Grundlagen, ich rate dir diese durchzugehen bevor du dich mit Speicherzugriffen beschäftigst.

Das könnte durchaus böse enden wenn die Exception auftritt und sich dein Code auf den Rückgabewert verlässt.
12/23/2014 13:16 Iηfamσυs#3
Quote:
Originally Posted by Mostey View Post
Woher bekommt ihr eigentlich immer dieses abnormal schlampig programmierte VB File her? Ständig gibt's Probleme damit - letztens erst wegen Inkompatibilität auf 64 Bit Systemen.

Lies doch bitte nochmal die Fehlermeldung in der Konsole (ist btw. nur ne Warnung) und schau dir die Funktion ReadDMALong mal an. Siehst du nicht, dass hier im Falle einer Exception nichts zurückgegeben wird obwohl angegeben wurde dass ein Wert vom Typ long zurückgegeben wird? Ich behebe das mal mit Absicht nicht, weil du sonst morgen fragen wirst, wie man eine Variable deklarieren und definieren kann. So etwas gehört zu den Grundlagen, ich rate dir diese durchzugehen bevor du dich mit Speicherzugriffen beschäftigst.

Das könnte durchaus böse enden wenn die Exception auftritt und sich dein Code auf den Rückgabewert verlässt.

Vielen dank!
Ja wie oben geschrieben ^^ bin relativ frisch in VB angekommen (gestern :D)
hab erst ein paar bots kleine files usw gemacht aber danke trdm! Ich schau mir ja immernoch nebenbei bischen die Grundlagen an und überarbeite das script mal. Kannst dus dir dann nochmal anschauen ?
12/23/2014 14:13 th0rex#4
Aber du wirst die Klasse nicht vernünftig überarbeiten können, wenn du die Grundlagen nicht kannst. Vor allem geht ein Teil davon über das was ich als Grundlagen bezeichnen würde hinaus. Zum Beispiel wird dort immer der Prozess neu gesucht und nach einem Handle gefragt (mit OpenProcess). Das ist unnötig. Wenn man den Handle einmal hat kann man diesen doch Speichern. Ich denke mal nicht, dass du in 2 Prozesse gleichzeitig schreiben möchtest. Falls doch müsstest du die Handle halt in einem Dictionary speichern. Außerdem sollte man immer CloseHandle aufrufen, nachdem man einen Handle nicht mehr benutzt ("Generally, an application should call CloseHandle once for each handle it opens." [Only registered and activated users can see links. Click Here To Register...]).

Die Fehlerbehandlung könnte man auch noch verbessern. Aber wie gesagt das sind keine Sachen die man nach einem Tag kann oder können muss (denke mal, dass VB deine erste Sprache ist, die du lernst). Ich würde dir empfehlen die Sprache zu lernen und mich dann mit der WindowsAPI auseinanderzusetzen. Dann kannst du dir deine eigene Klasse schreiben, die das ändern von Werten vereinfacht.
12/23/2014 20:06 Iηfamσυs#5
Quote:
Originally Posted by omitma View Post
Aber du wirst die Klasse nicht vernünftig überarbeiten können, wenn du die Grundlagen nicht kannst. Vor allem geht ein Teil davon über das was ich als Grundlagen bezeichnen würde hinaus. Zum Beispiel wird dort immer der Prozess neu gesucht und nach einem Handle gefragt (mit OpenProcess). Das ist unnötig. Wenn man den Handle einmal hat kann man diesen doch Speichern. Ich denke mal nicht, dass du in 2 Prozesse gleichzeitig schreiben möchtest. Falls doch müsstest du die Handle halt in einem Dictionary speichern. Außerdem sollte man immer CloseHandle aufrufen, nachdem man einen Handle nicht mehr benutzt ("Generally, an application should call CloseHandle once for each handle it opens." [Only registered and activated users can see links. Click Here To Register...]).

Die Fehlerbehandlung könnte man auch noch verbessern. Aber wie gesagt das sind keine Sachen die man nach einem Tag kann oder können muss (denke mal, dass VB deine erste Sprache ist, die du lernst). Ich würde dir empfehlen die Sprache zu lernen und mich dann mit der WindowsAPI auseinanderzusetzen. Dann kannst du dir deine eigene Klasse schreiben, die das ändern von Werten vereinfacht.
Hmm okay danke!
Nach ein wenig überlegung bin ich auch zu dem Entschluss gekommen^^.
Jedoch sollte für den ersten Kommi
PHP Code:
 
   
Return True 
vor dem EndIf reichen oder? :D
Könntest du vlt mal erklären oder link geben wo ich das gut beschrieben bekomme ... finde auf epvp nur so low tuts von irgendwelchen newbies
12/23/2014 21:12 Devsome#6
Grundlagen bitte erstmal lernen, danke :)
12/24/2014 01:25 Iηfamσυs#7
Quote:
Originally Posted by Devsome View Post
Grundlagen bitte erstmal lernen, danke :)
nicht hilfreich noch dazu weil ich mich ja bemühe dies zu tun wie in den oberen kommis schon zu lesen ist. aber trdm danke für die Hilfe.
12/24/2014 15:37 Mostey#8
Quote:
Originally Posted by coolboy98765 View Post
nicht hilfreich noch dazu weil ich mich ja bemühe dies zu tun wie in den oberen kommis schon zu lesen ist. aber trdm danke für die Hilfe.
Du bemühst dich leider überhaupt nicht, da liegt das Problem. Du kannst nicht einfach im Fehlerfall 1 zurückgeben wenn die aufrufende Funktion garantiert bekommt, dass hier ein long zurückgegeben wird. Das kann gut gehen wenn die Rückgabe nicht verwendet wird aber wenn doch...

Kann man auch anders sehen: Ist es dir egal wenn deine Handbremse im Auto im Falle eines Fehlers (sei mal dahingestellt welcher es ist) anstatt zu bremsen die Drehzahl erhöht und Gas gibt? Ich glaube nicht.

Wie auch immer, der Code produziert Warnungen und keine Fehler. Du hast in dem Fall eigentlich keine andere Wahl als sie zu ignorieren weil du die Grundlagen nicht drauf hast um die Fehler zu beheben. Wenn du tatsächlich bemüht bist diese Warnungen zu beheben, solltest du dir anschauen was deine Funktionen überhaupt machen, was Funktionen (mit Rückgabetyp) sind und wie man Exceptions vernünftig einsetzt/auffängt.