C++Builder XE2 TSearchRec



  • Netzschleicher schrieb:

    Interessieren würde es mich aber dennoch wo der Fehler bei 'TSearchRec' liegt.

    Mich auch, leider habe ich aber keine Lizenz dafür und kann es nicht ausprobieren. Du kannst ja mal mit den Debug-Bibliotheken linken und dann in den VCL-Code steppen, um zu schauen, wo der Fehler herkommt. (Ich unterstelle jetzt mal, daß du bei Anwendung und DLL auf die richtige Laufzeitpackage-Konfiguration geachtet hast 😉 )



  • Weiterhin würde ich bei ShowForm(TComponent *Owner) den Owner Parameter weglassen. Der Owner ist ja für das Löschen der Form zuständig. Erstens wird die Form in der dll selbst gelöscht und zweitens halte ich es für keine gute Idee das Löschen außerhalb der dll (von der Anwendung) vorzunehmen.



  • Kann den Fehler leider nicht nachvollziehen, klappt bei mir ohne Zugriffsverletzung.

    Anbei Projekt mit erstellter EXE und DLL
    http://www.magixsoft.de/DLLTest.zip



  • @audacia
    Ich habe beide (die .exe Datei und die .dll) mit der RTL und den Laufzeitpackages gelinkt. So wie es ja auch sein sollte. 🙂

    @VergissEs
    Ich habe mir das von Dir erstellte Projekt auf die Platte kopiert und im Builder XE2 geöffnet. In den Projektoptionen hattest Du denn CodeGuard deaktiviert. Diesen habe ich bei beiden Projekten eingeschaltet. Ein Debugrun ergab dann keinen Fehler. Erst als ich beide Projekte jeweils bereinigt und neu kompiliert habe, trat der Fehler wieder auf. 😞
    Sollte das etwas damit zu tun haben das ich parallel noch mein Rad Studio 2007 installiert habe? Oder spielt mir da doch etwas
    mein Windows7 64Bit einen Streich?

    @Braunstein
    Danke für den Tipp. Werd mich diesbezüglich genauer Belesen und das dann Ändern.



  • Mir ist gerade eingefallen das ich in einer Virtuellen Windows7 32Bit Maschine noch eine Installation meines Builders XE2 habe. Ohne irgendwelche Fremdkomponenten und ohne ein parallel installiertes RAD Studio 2007. Ich habe also das Testprojekt mal eben dort hineinkopiert und neu compiliert. Auch dort lässt sich der Fehler eindeutig nachvollziehen. Zumindest denke ich jetzt mal davon ausgehen zu können, das es weder an meiner 64Bit-Umgebung noch am parallel vorhandenen RAD Studio 2007 liegt. 😕



  • Hab den Codeguard nun aktiviert die Projekte bereinigt und neu erstellt.
    Immer noch keine nachvollziehbare Zugriffsverletzung.

    Evtl mal ein diff von deiner Projektdatei machen und von meiner?



  • @VergissEs
    Ich habe nun Dein Projekt, so wie es bei mir den Fehler hervorbringt gezippt.
    Das 'fehlerhafte Projekt' habe ich hier zum herunterladen eingestellt:

    [url]
    http://www.file-upload.net/download-4269483/DLLTest_error.zip.html
    [/url]



  • Sorry, habe immer noch nicht den Fehler, auch nach neukompilieren bzw wenn ich deine zugemailte EXE direkt ausführe klappt alles ohne Fehlermeldung.

    PS:
    Hab auch Windows 7 64 Bit am Start mit installierter Vorversion RADStudio 2009.
    Habe erst XE2 seit Update #4 installiert.



  • Nun verstehe ich garnichts mehr. 😕 😕 😕
    Mache gerade in einer VM nochmals eine komplette Neuinstallation.
    Mal sehen was da dann herauskommt.



  • Ich habe das ganze nochmals neu in einer Win7 32Bit VM installiert und das besagte Projekt geöffnet.
    Solange ich den CodeGuard nicht aktiviere ist alles OK. Sobald ich jedoch den CodeGuard einschalte, die Projekte bereinige und anschließend neu erstelle, bekomme ich die Zugriffsverletzung beim Beenden des Programmes.

    Die Revision des C++Builders XE2 ist: 16.0.4429.46931
    Updates: Delphi XE2 und C++ builder XE2 Update 4 sowie Help Update 4


Anmelden zum Antworten