ShareMem vs. FastShareMem
Hallo zusammen,
ich habe folgendes Problem. Ich würde gerene FastShareMem einsetzten, wenn ich dies jedoch mache, erhalte ich beim schliessend er Anwendunge eine Exception C0000005. Beim Einsatz von ShareMem erhalte ich diese Fehlermeldung nicht!! Es bleibt mir also nichts anderes übrig als ShareMem einzusetzten. Kennt jemand ein ähnliches Problem oder weiß eine Abhilfe??? Ich setze FastShareMem 2.10 ein. Bin dankbar für alle Tipps Baeuerle |
Re: ShareMem vs. FastShareMem
Schon mal FastMM probiert?
Kann glaube ich auch das Sharen von Speicher zwischen Exe und DLL. |
Re: ShareMem vs. FastShareMem
Zitat:
Und falls(da) im FastMM auch Fehler drin sind ... einfach mal im Foum suchen, es sollten eine Tipps zu deren Behebung vorhanden sein. |
Re: ShareMem vs. FastShareMem
Hallo,
danke für eure Antworten. Ich habe jetzt FastMM Version 4.66 eingebunden. Und die Optionen
Delphi-Quellcode:
aktiviert die für Share Memory nötig sind. Die Anwendung lässt sich ohne Probleme kompilieren die Dll bringt jedoch sofort einen Runtime Error 217.
{$DEFINE ShareMMIfLibrary}
{$DEFINE AttemptToUseSharedMM} Hat jemand eine Idee ??? |
Re: ShareMem vs. FastShareMem
Die DLL auch damit FastMM kompiliert?
|
Re: ShareMem vs. FastShareMem
Ja, habe ich. Trotzdem tritt der Runtime Error auf.
Das einzigste was bisher Fubktioniert ist mit ShareMem. Davon möchte ich aber werg, weil dies anscheinend zu langsam ist. ( Wird hier hier ja schon mehrfach beschrieben ) |
Re: ShareMem vs. FastShareMem
Kann sich bitte nochmal jemand diesem Problem annehmen, ich benötige eure hilfe.
Kann der Runtime Error duch speicherleaks entstehen??? |
Re: ShareMem vs. FastShareMem
Zitat:
Aber ganau das willst Du ja nicht benutzen. Ist die FastMM auch überall als erste Unit eingebunden? Auch im *.dpr? |
Re: ShareMem vs. FastShareMem
Hi:
http://www.delphifaq.com/faq/f84.shtml Vielleicht hilft dir das was. Nutzt du initialization und finalization Teile? Gruß |
Re: ShareMem vs. FastShareMem
Was heißt jetzt überall?
Ich habe Sie in der Anwendung.dpr und in der dll.dpr als erste eingetragen. In den weiteren Units habe ich FastMM nicht mehr in die uses eingetragen. So weit ich das verstanden habe muss ich das auch nicht oder doch? |
Re: ShareMem vs. FastShareMem
Zitat:
Hast du mal den FullDebugMode getestet? |
Re: ShareMem vs. FastShareMem
@rochus: Ja ich habe teilweise in den initialisierungen bzw. finali.. code stehen. warum? Macht das einen unterschied?
|
Re: ShareMem vs. FastShareMem
@himitsu: habe ich getestet hat mir nur ein paar speicherleaks angezeigt (ca. 80Byte) nciht ganz so schlimm :roll:
|
Re: ShareMem vs. FastShareMem
Zitat:
|
Re: ShareMem vs. FastShareMem
[quote="Baeuerle"]Was heißt jetzt überall?
Als erste Unit in den .DPRs reicht eigentlich aus (solange sich nichts anderes am MemoryManagement zu schaffen macht. Zitat:
|
Re: ShareMem vs. FastShareMem
ShareMem ist nirgends eingetragen.
So jetzt mal noch was ganz dummes, kann FastMM 4.66 mit Delphi4 genutzt werden? Ich habe das Projekt nämlich noch nicht nach Delphi2005 portiert. |
Re: ShareMem vs. FastShareMem
Sollte es jedenfalls noch, aber wenn nicht ... hab hier noch ein FastMM v4.26, dieses lief/läuft unter D4.
|
Re: ShareMem vs. FastShareMem
Ok,
ich bin der sache schon näher gekommen. Folgendes Problem: In der initialisierung einer Unit wird ein Object erzeugt (TRegister) das Objekt kapselt funktionen aus einer anderen *.dll. Die *.dll enthält Funktionen von einem Tool das nicht mehr weiter unterstütz wird (nur bis D3). Wenn ich jetzt einen String an das Objekt bzw. die *.dll übergebe kracht es. Ich könnte jetzt versuchen, das Objekt an einer anderen Stelle zu erzeugen vielleicht geht es dann. Habe auch schon versucht FastMM in die zweite dll einzubinden. bringt leider keinen unterschied. |
Re: ShareMem vs. FastShareMem
A :cry:
Habe jetzt aufgegeben und bleibe bei ShareMem funktioniert immerhin !!! Mit FastMM bekomme ich eine EInvalidPointer Exception aus einer externen dll die nicht von mir stammt und ich somit keine möglichkeit habe etwas zu verändern. Wenn ich das per try except verhindere kommen noch an anderen stellen Probleme Exceptions hoch. Ich lasse lieber die Finger davon. Danke für eure bemühungen. |
Re: ShareMem vs. FastShareMem
Zitat:
Ja, das könnte was ausmachen. Wenn du meinem Link gefolgt wärst, hättest du folgende Zeilen lesen können: Zitat:
Gruß |
Re: ShareMem vs. FastShareMem
Da FastMM aber die Units, wo er seine Initialisierungsabschnitte drin hat aufruft, werden diese Initialisierungen immer erst nach dem Installieren des FastMM ausgeführt,
da die Initialisierungsabschnitte in der Reinfolge aufgerufen werden, wie sie eingebunden sind (rekursive Units vor denen, worin sie eingebunden sind). Also wenn FastMM die erste Unit in der DPR ist, dann kann sich nichts Anderes (abgesehn von SysInit und System) zuvor initialisieren. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:11 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