AGB  ·  Datenschutz  ·  Impressum  







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

Probelme mit DLL Programmierung

Ein Thema von Digielm · begonnen am 8. Apr 2008 · letzter Beitrag vom 8. Apr 2008
Antwort Antwort
Digielm

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

Probelme mit DLL Programmierung

  Alt 8. Apr 2008, 08:40
Hallo ich nutze Delphi 7 und hab bei Delphitreff eine Anleitung gefunden für eine DLL zu erstellen.

Soweit klappt auch alles bis auf dieser aufruf
Delphi-Quellcode:
function einfachso : String;
var
  einfachso: Teinfachso;
  Handle : THandle;
begin
    Handle := LoadLibrary(PChar(ExtractFilePath(application.name)+'phoenix.dll'));
    @einfachso := GetProcAddress(Handle, 'einfachso');
    if @einfachso <> nil then
    begin
      result := einfachso;
    end;
    freelibrary(Handle);
end;
bei dem Aufruf freelibrary(Handle);
bekomme ich grundsätzlich eine exception. Kann mir jemand helfen und sagen warum ??
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

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

Re: Probelme mit DLL Programmierung

  Alt 8. Apr 2008, 08:46
Du hast in deiner DLL einen Fehler gemacht!

Ohne Quellcode der DLL sowie der Definition von Teinfachso wird das ein munderes Glaskugel-Raten.
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: Probelme mit DLL Programmierung

  Alt 8. Apr 2008, 08:48
ok hier der Code der DLL
Delphi-Quellcode:
library Phoenix;

{ Wichtiger Hinweis zur DLL-Speicherverwaltung: ShareMem muss sich in der
  ersten Unit der unit-Klausel der Bibliothek und des Projekts befinden (Projekt-
  Quelltext anzeigen), falls die DLL Prozeduren oder Funktionen exportiert, die
  Strings als Parameter oder Funktionsergebnisse übergeben. Das gilt für alle
  Strings, die von oder an die DLL übergeben werden -- sogar für diejenigen, die
  sich in Records und Klassen befinden. Sharemem ist die Schnittstellen-Unit zur
  Verwaltungs-DLL für gemeinsame Speicherzugriffe, BORLNDMM.DLL.
  Um die Verwendung von BORLNDMM.DLL zu vermeiden, können Sie String-
  Informationen als PChar- oder ShortString-Parameter übergeben. }



uses
  SysUtils,
  SDL_cpuid;

{$R *.res}
function CalcStrChecksum(s: string): Longint;
var
  i: integer;
  L: integer;
begin
  Result := 0;
  l := Length(s);
  if l > 0 then
  begin
    for i := 1 to l do
      Inc(Result, Ord(s[i])*i);
  end;
end;

function einfachso : String; stdcall;
begin
// result := GenerateCPUID +'-'+ inttostr(CalcStrChecksum(GenerateCPUID));
  result := GenerateCPUID;
end;


exports einfachso;
begin
end.
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

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

Re: Probelme mit DLL Programmierung

  Alt 8. Apr 2008, 08:51
Lies mal den Kommentar durch den dir Delphi angelegt hat. Ist ab und zu auch mal hilfreich.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#5

Re: Probelme mit DLL Programmierung

  Alt 8. Apr 2008, 08:55
Bitte hier lesen: http://www.michael-puff.de/Artikel/2...String_DLL.php
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Digielm

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

Re: Probelme mit DLL Programmierung

  Alt 8. Apr 2008, 08:57
Sorry hatte ich übersehen klappt alles.

Danke euch
  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 05: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