AGB  ·  Datenschutz  ·  Impressum  







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

dll Progammieren

Ein Thema von Digielm · begonnen am 10. Mär 2009 · letzter Beitrag vom 10. Mär 2009
Antwort Antwort
Digielm

Registriert seit: 2. Aug 2006
246 Beiträge
 
Delphi 5 Enterprise
 
#1

dll Progammieren

  Alt 10. Mär 2009, 15:30
Hallo

ich habe eine DLL programmiert mit Delphi 2006 und die wird mit .net Delphi 2007 aufgerufen.

Jetzt kriege ich immer diesen Fehler


Verwalteter Debug-Experte 'LoaderLock' trat mit der Meldung 'Eine verwaltete Ausführung wird innerhalb der Sperre für den OS-Loader versucht. Versuchen Sie nicht, verwalteten Code innerhalb einer DllMain- oder Bildinitialisierungsfunktion auszuführen, da dies ein Hängen der Anwendung zur Folge haben kann.' auf. Prozess test.exe (5412)
Verwalteter Debug-Experte 'LoaderLock' trat mit der Meldung 'Eine verwaltete Ausführung wird innerhalb der Sperre für den OS-Loader versucht. Versuchen Sie nicht, verwalteten Code innerhalb einer DllMain- oder Bildinitialisierungsfunktion auszuführen, da dies ein Hängen der Anwendung zur Folge haben kann.' auf. Prozess test.exe (5412)
Verwalteter Debug-Experte 'LoaderLock' trat mit der Meldung 'Eine verwaltete Ausführung wird innerhalb der Sperre für den OS-Loader versucht. Versuchen Sie nicht, verwalteten Code innerhalb einer DllMain- oder Bildinitialisierungsfunktion auszuführen, da dies ein Hängen der Anwendung zur Folge haben kann.' auf. Prozess test.exe (5412)

Dieses Problem kenne ich nicht, kann mir da jemand bei helfen ?
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.196 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: dll Progammieren

  Alt 10. Mär 2009, 15:32
Ich würde dir vorschlagen gleich wieder auf VCL.Win32 zu wechseln. VCL.NET ist gestorben. Jeder weitere Tag Zeit zu investieren ist vergeutete Zeit.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Digielm

Registriert seit: 2. Aug 2006
246 Beiträge
 
Delphi 5 Enterprise
 
#3

Re: dll Progammieren

  Alt 10. Mär 2009, 15:36
Tolle Aussage

bringt mir aber nix, da das Projekt eben schon da ist und auch erweitert werden muß !!!

Also brauche ich dennoch eine Lösung.
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.196 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: dll Progammieren

  Alt 10. Mär 2009, 15:40
Zitat von Digielm:
bringt mir aber nix, da das Projekt eben schon da ist und auch erweitert werden muß !!!
Und damit weiter in eine Sackgasse entwickelt wird ....

Googeln nach der Fehlermeldung bringt z. B. diesen Thread

Kannst du eine Minimalcode/Beispiel bringen wie die DLL eingebunden wird bzw. was die DLL macht? Du weißt schon: Glaskugel und so ...
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.639 Beiträge
 
#5

Re: dll Progammieren

  Alt 10. Mär 2009, 15:42
Zitat von Digielm:
ich habe eine DLL programmiert mit Delphi 2006 und die wird mit .net Delphi 2007 aufgerufen.
Das ist das Problem.

Aber erstmal Grundsätzlich: In .NET spricht man nicht von DLL's sondern von Assemblies. DLL asoziiert eigentlich automatisch unmanaged / native Code, deswegen würde ich in der .NET Welt immer im .NET Sprachgebrauch bleiben.

Nun zum Hintergrund:

Mit Delphi 2006 erstellst Du eine .NET 1.1 Assembly.
Delphi 2007 erzeugt aber .NET 2.0 Anwendungen.

.NET 1.1 und 2.0 sind aber dermassen Inkompatibel zueinander, dass das einfach nicht geht. Das wäre wie wenn Du eine 16bit Dll aus einem 32bit Prozess aufrufst: Das knallt vorne und hinten.

Abhilfe schafft hier, das Assembly mit Delphi 2007 auch nochmal zu erstellen, damit Du auch hier mit reinem .NET 2.0 arbeitest.
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
Digielm

Registriert seit: 2. Aug 2006
246 Beiträge
 
Delphi 5 Enterprise
 
#6

Re: dll Progammieren

  Alt 10. Mär 2009, 15:55
Also die DLL ist eine Delphi 2006 VCL Win32 Dll.

und diese will ich eben in Delphi 2007 dot net aufrufen.
  Mit Zitat antworten Zitat
Digielm

Registriert seit: 2. Aug 2006
246 Beiträge
 
Delphi 5 Enterprise
 
#7

Re: dll Progammieren

  Alt 10. Mär 2009, 15:59
Hier mal das Toll was die DLL aufruft

Delphi-Quellcode:
unit Unit1;
interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Forms,
  Dialogs, Controls, StdCtrls, System.ComponentModel;

Function SetPhoneNumbersFormatted(Phonenumber, countrycodewithoutplus : String) : String; stdcall;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;
 
implementation
{$R *.nfm}

Function SetPhoneNumbersFormatted(Phonenumber, countrycodewithoutplus : String) : String; stdcall;
  external 'nummer.dll';
procedure TForm1.Button1Click(Sender: TObject);
begin
  showmessage(SetPhoneNumbersFormatted('2321321321','48'));
end;

end.
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.196 Beiträge
 
Delphi 10.4 Sydney
 
#8

Re: dll Progammieren

  Alt 10. Mär 2009, 17:38
Strings als übergabeparameter in eine DLL? Und das ohne SharMem und dann noch zwischen Win32 und .NET - Das kann ja eigentlich nur krachen!

Stell mal die DLL-Funktion auf PChars, besser PWideChars um. Dann könnte es besser gehen.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Antwort Antwort


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 21:59 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