AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Python4Delphi - Integrationsprobleme

Ein Thema von 0xDEAD · begonnen am 10. Nov 2008 · letzter Beitrag vom 11. Nov 2008
Antwort Antwort
Seite 1 von 2  1 2      
0xDEAD

Registriert seit: 9. Okt 2008
33 Beiträge
 
#1

Python4Delphi - Integrationsprobleme

  Alt 10. Nov 2008, 09:50
Hallo zusammen,

ich habe grade ein Problem und finde keine Antwort...

Ich würde gerne einen PythonParser in mein Projekt integrieren und habe mir "Python for Delphi" angesehen.
Hat auch alles wunderbar geklappt. Und ich habe ein kleines Testprogramm geschrieben, dass auch sehr gut funktioniert.

Jetzt möchte ich dieses Projekt in mein Hauptprojekt integrieren.
Also habe ich mein Testprojekt hinzugefügt, es kompiliert auch und dann.... EAccessViolation!

Wie kann das sein?
Hat jemand eine Idee? Was kann ich tun?
  Mit Zitat antworten Zitat
0xDEAD

Registriert seit: 9. Okt 2008
33 Beiträge
 
#2

Re: Problem ein Projekt zu einem anderen hinzuzufügen

  Alt 11. Nov 2008, 08:55
Hallo,

nachwievor bin ich noch nicht auf eine Lösung gestoßen.
Die Exception wird an der markierten Stelle angezeigt (bei der if-Abfrage).

Hat jemand eine Idee wie es dazu kommen kann oder einen Tipp wie ich das Problem in den Griff kriegen kann?

Grüße,
der Tom



Delphi-Quellcode:


procedure GetCodeMem(var ptr: PByte; size: integer);
var
  page: PCodeMemPage;
  block: PCodeMemBlock;
begin

  //---allocates Block from executable memory
  // executable memory is requested in pages via VirtualAlloc
  // handed back in blocks of requested size
  // determine if there is already a page assigned and
  // that it has enough space requested block

  page := CodeMemPages;

->>>if (page = nil) or (Longint(CodeMemPages^.CodeBlocks) - Longint(Pointer(CodeMemPages)) <= (size + 3*sizeof(PCodeMemBlock))) then
  begin
    // allocate new Page
    page := VirtualAlloc(nil, PageSize, MEM_COMMIT, PAGE_EXECUTE_READWRITE);
    page^.next := CodeMemPages;
    CodeMemPages := page;
    // init pointer to end of page
    page^.CodeBlocks := Pointer(Longint(page) + PageSize);
  end;

  //---blocks are assigned starting from the end of the page
  block := Pointer(Longint(page^.codeBlocks) - (size + sizeof(PCodeMemBlock)));
  block^.Next := page^.CodeBlocks;
  page^.CodeBlocks := block;

  ptr := @(block^.Code[0]);

end;
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: Problem ein Projekt zu einem anderen hinzuzufügen

  Alt 11. Nov 2008, 09:08
CodeMemPages ist aber anfangs nil?
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
0xDEAD

Registriert seit: 9. Okt 2008
33 Beiträge
 
#4

Re: Problem ein Projekt zu einem anderen hinzuzufügen

  Alt 11. Nov 2008, 09:30
wäre schön, wenn es so einfach wäre.
ja, der ist nil.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: Problem ein Projekt zu einem anderen hinzuzufügen

  Alt 11. Nov 2008, 09:32
Also dereferenzierst Du einen nil-Pointer.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
0xDEAD

Registriert seit: 9. Okt 2008
33 Beiträge
 
#6

Re: Python4Delphi - Integrationsprobleme

  Alt 11. Nov 2008, 09:38
nil Pointer dereferenzieren ist schlecht, ja.

Der Code ist aus der Python4Delphi Source.

Wie gesagt, wenn ich den Quellcode alleine laufen lassen, wird meine Klasse wunderbar exportiert und kann in Python zugegriffen werden. Aber jetzt habe ich es zu meinem Haupt-Projekt hinzugefügt und jetzt dieser Fehler.

Vielleicht auch ein Problem mit globalen Variablen auf die jetzt kein Zugriff mehr besteht?!
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: Python4Delphi - Integrationsprobleme

  Alt 11. Nov 2008, 09:46
Zitat von 0xDEAD:
Vielleicht auch ein Problem mit globalen Variablen auf die jetzt kein Zugriff mehr besteht?!
Ahja, wie ist denn PageSize initialisiert?

Edit: passiert der Fehler bei ersten Durchlauf, oder bei einem anderen. Und könntest du bitte die gesamte Fehlermeldung zeigen (insbes. die Zahlen)
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
0xDEAD

Registriert seit: 9. Okt 2008
33 Beiträge
 
#8

Re: Python4Delphi - Integrationsprobleme

  Alt 11. Nov 2008, 10:07
Zitat:
---------------------------
Benachrichtigung über Debugger-Exception
---------------------------
Im Projekt drvtst.exe ist eine Exception der Klasse EAccessViolation aufgetreten. Meldung: 'Zugriffsverletzung bei Adresse 00474C59 in Modul 'drvtst.exe'. Lesen von Adresse 00000004'. Prozess wurde angehalten. Mit Einzelne Anweisung oder Start fortsetzen.
---------------------------
OK Hilfe
---------------------------

ptr = $26BBE18
size = 33
page = nil
CodeMemPages = nil

Edit1: PageSize = 4096


Wenn ich die Adresse von ptr zu den überwachten Ausdrücken hinzufüge, dann steht da nur 40615448

Ich habe mal aus der IF-Anweisung den letzten Teil entfernt, d.h. nur
if (page = nil) then stehen lassen und die Dereferenzierung des nil-Zeigers rausgenommen.
Dann läuft es und ich kann auch auf mein Objekt zugreifen.
Nur beim Beenden taucht wieder eine Exception auf.

Edit2: Die Exception taucht direkt beim ersten Durchlauf auf.
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#9

Re: Python4Delphi - Integrationsprobleme

  Alt 11. Nov 2008, 10:26
Es sieht so aus, als ob dein Porjekt bei Boolschen Operationen eine vollständige Auswertung durchführt.

Versuche, dass mal in den Projekteinstellungem herauszubekommen, oder mit der Direktive {$B-} auszuschalten.
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
0xDEAD

Registriert seit: 9. Okt 2008
33 Beiträge
 
#10

Re: Python4Delphi - Integrationsprobleme

  Alt 11. Nov 2008, 10:41
Jawohl, "Projekt" >> "Optionen" >> "Boolsche Ausdrücke vollständig" ist aktiviert.
Sag jetzt bitte nicht, dass das schlecht ist.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:27 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz