Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi VCL.dcp und rtl.dcp verursachen Accessviolation (https://www.delphipraxis.net/74516-vcl-dcp-und-rtl-dcp-verursachen-accessviolation.html)

Baeuerle 4. Aug 2006 12:43


VCL.dcp und rtl.dcp verursachen Accessviolation
 
Hallo,

ich bekomme unter D2005 immer Access Violations, wenn ich Laufzeitbibliotheken vcl und rtl einbinde.

Warum?

Das Accessv. tritt entweder beim starten oder beim beenden des Progs auf.

CK_CK 4. Aug 2006 12:44

Re: VCL.dcp und rtl.dcp verursachen Accessviolation
 
Hi!
Das wird dann wohl eher an deinem Programm liegen.

Zeig' doch mal Code... (ich vermute, du gibst einige Komponenten nicht wieder frei...)

Baeuerle 4. Aug 2006 12:52

Re: VCL.dcp und rtl.dcp verursachen Accessviolation
 
Das ganze ist etwas zu komplex (code).

Folgendes:

Ich benutze VCL-Skin um Formulare zu skinnen. Habe eine dll mit einem Formular. VCL Skin sagt kompiliere Prog und dll mit rtl und vcl und die dll wird auch geskinnt. Mache ich dies kommen die AccessViolations.

So und nu???

CK_CK 4. Aug 2006 12:54

Re: VCL.dcp und rtl.dcp verursachen Accessviolation
 
Dann wird das etwas mit der dll-Einbindung zu tun haben...
Poste doch mal nur diesen Teil...

Vielleicht ist auch etwas mit der Skin-Komponente. Hast du schon ein funktionierendes Programm damit gemacht?

Baeuerle 4. Aug 2006 13:00

Re: VCL.dcp und rtl.dcp verursachen Accessviolation
 
Zitat:

Zitat von CK_CK
Hast du schon ein funktionierendes Programm damit gemacht?

Ja habe ein Testprojekt gemacht, da hat es funktioniert!!

[quote="CK_CK"]Dann wird das etwas mit der dll-Einbindung zu tun haben...
Poste doch mal nur diesen Teil...
[quote]

Delphi-Quellcode:
// Steht im globalen teil einer Unit
// Dll wird statisch angebunden

procedure CopyFiles(SourceFile, ptkFile,AnalyseTime,email,appname: String;
                         pItem: TProfilItem;
                         AutoRun, Minimized, Hidden, NTFS, ShredInArchive: Boolean;
                         CB: TCallback); stdcall; external 'SyncroNaut4.dll';

CK_CK 4. Aug 2006 13:01

Re: VCL.dcp und rtl.dcp verursachen Accessviolation
 
Benutze mal statt String PChar. Strings machen in dlls Probleme...
Oder du musst in der dll und dem Programm als erste Unit ShareMem einbinden. Dann funktioniert das trotzdem...

Edit: In deinen selbstdefinierten Typen sollte natürlich anstatt String auch nur PChar vorkommen...
Eine Umwandlung funktioniert so:
Delphi-Quellcode:
PCharVar := PChar(StringVar);
//oder
StringVar := Pchar; //Delphi macht das automatisch...

Baeuerle 4. Aug 2006 13:03

Re: VCL.dcp und rtl.dcp verursachen Accessviolation
 
Sharemem ist bereits in der DPR der dll und der exe angegeben. Daran kann es also auch nicht liegen !

CK_CK 4. Aug 2006 13:09

Re: VCL.dcp und rtl.dcp verursachen Accessviolation
 
OK, dann liegt's nicht daran... *thema_abhack*

Da ich mich mit VCL-Skin nicht auskenne kann ich dann nicht weiterhelfen.
Eine Frage aber noch: Hast du bei dem Testprojekt auch ein dll-Formular geskinnt? Ich bin mir fast sicher, dass VCL-Skin Probleme mit dlls hat...

Baeuerle 4. Aug 2006 13:19

Re: VCL.dcp und rtl.dcp verursachen Accessviolation
 
Zitat:

Zitat von CK_CK
Hast du bei dem Testprojekt auch ein dll-Formular geskinnt? Ich bin mir fast sicher, dass VCL-Skin Probleme mit dlls hat...

Ja habe ich und es hat geklappt...

Danke für Deine Mühe


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:47 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