Ja das ist soweit nun verständlich, würde ich mich im Nachhinein auch drum kümmern aber momentan habe ich es mit der selbigen Funktion gemacht die nur einen Integer Wert verlangt und auch nur einen Integer wert ausgibt. Somit keine Strings.
Ich habe mal die "DLLExportsFunc", welche ich hier im FAQ-Forum fand, genutzt und der findet auch die angegeben Function und zeigt diese an.
Soweit kann es nicht falsch sein.
Dann kann es meiner Meinung nach nur beim Aufrufen falsch sein und beim Aufrufen setzt er den Zeiger direkt an den Ausdruck "external" und gibt die unten genannte Fehlermeldung aus.
Die .dll habe ich nach jedem neu erstellen auch wieder in den Ordner des anderen Projektes kopiert damit die aktuelle vorhanden ist.
Ich gebe einfach mal den ganzen Code bekannt fals dort der Fehler sein könnte.
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34:
| library RORAMdll;
uses SysUtils, Classes, Windows;
{$R *.RES} function ReadRAM2(RAMAdress : Integer) : Integer;
var HRo, HProcess : HWND; value : Integer; pid,written : Cardinal;
begin HRo := FindWindow(nil,'Ragnarok'); if HRo = 0 then begin result := 123456; end else begin GetWindowThreadProcessId(HRo,@pid); HProcess := OpenProcess(PROCESS_ALL_ACCESS,FALSE,pid); ReadProcessMemory(HProcess,ptr(RAMAdress),@value,4,written); result := value; CloseHandle(HProcess); end end;
Exports ReadRAM2;
begin end. |
Oben beim declarieren gebe ich das ganze dann so an.
Delphi-Quelltext
1:
| function ReadRAM2(RAMAdress : Integer) : Integer; external 'RORAMdll.dll'; |
Wie man sieht kann es doch nichtmehr am String liegen oder liege ich da falsch?
Tut mir leid wenn ich da irgendwas nicht ganz verstehe, bin halt auf diesem Gebiet anfänger(würde sonst auch nicht fragen

)
Danke
//Edit: Ich bemerke gerade beim schreiben den Post von Sprint. Ich wüsste nun nicht was dieses an meinem Problem ändern könnte da nichts derart vorhanden ist um solch einen Fehler auf der Weise zu verursachen. Selbst wenn ich selbiges mit einem leeren Projekt mache und als einzigste Deklaration diese Function geklariere kommt selbiger Fehler, schliesslich benötige ich keine anderen variablen oder Functionen bis zu dem Zeitpunkt.
Oder liege ich da irgendwo total verkehrt?
Habe alles ausprobiert.
Danke