AGB  ·  Datenschutz  ·  Impressum  







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

Problem mit DLL / Übergabe

Ein Thema von Infamous · begonnen am 9. Okt 2008 · letzter Beitrag vom 21. Okt 2008
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.537 Beiträge
 
Delphi 11 Alexandria
 
#11

Re: Problem mit DLL / Übergabe

  Alt 10. Okt 2008, 09:34
Blieb noch die bereits angesprochene Möglichkeit.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Infamous

Registriert seit: 27. Nov 2007
16 Beiträge
 
#12

Re: Problem mit DLL / Übergabe

  Alt 15. Okt 2008, 10:02
Hab ich gerade gemerkt... auf einem anderem PC läufts nicht, es kommt eine Fehlermeldung -> "Bibliothek nicht registriert" (mit den IStrings).


Dann probier ich es jetzt mal mit der anderen Möglichkeit.
  Mit Zitat antworten Zitat
Infamous

Registriert seit: 27. Nov 2007
16 Beiträge
 
#13

Re: Problem mit DLL / Übergabe

  Alt 15. Okt 2008, 10:29
Auch wenn ich einen ganz normalen PChar übergeben will (was doch auch ohne extra Bibl. gehen sollte??), gibt es eine Zugriffsverletzung.

In der EXE:

Delphi-Quellcode:
uses Schnittstelle;

variable_PChar := Funktion_in_der_Schnittstelle(var1, var2);

In der Schnittstelle:

Delphi-Quellcode:
function Funktion_in_der_Schnittstelle(var1, var2: Double): PChar;

type
    TBerechnung = function (var1, var2: Double): PChar;stdcall;
  
[...DLLladen...]
[...Zeiger auf die Function in der DLL...]

Result := Variable_mit_Zeiger_auf_die_Funktion(var1, var2);
In der DLL:

Delphi-Quellcode:
function Funktion_in_der_DLL(var1, var2: Double): PChar;
begin
    Result := '...';
end;
Es geht, bis ich in der EXe wieder auf die variable_PChar zugreifen will, dann kommt der Zugriffsfehler. Bis dahin wurde die Variable aber nicht gefüllt. Result in der DLL hat gestimmt, wurde aber dann nicht richtig übergeben. Also ist die Variable in der EXE leer. Wie mach ich das dann, dass es richtig übergeben wird?
PChar kann man doch auch so verarbeiten mit DLLs, ohne ShareMem von Borland...?
  Mit Zitat antworten Zitat
Benutzerbild von mirage228
mirage228

Registriert seit: 23. Mär 2003
Ort: Münster
3.750 Beiträge
 
Delphi 2010 Professional
 
#14

Re: Problem mit DLL / Übergabe

  Alt 15. Okt 2008, 10:37
Entweder machst du in DLL und Hauptprogramm "stdcall" hin oder in keinem von beiden. Gemischt geht nicht

Viele Grüße

P.S.: Du kannst auch "WideString" anstatt PChar verwenden... das klappt problemlos über DLLs.
David F.

May the source be with you, stranger.
PHP Inspection Unit (Delphi-Unit zum Analysieren von PHP Code)
  Mit Zitat antworten Zitat
Infamous

Registriert seit: 27. Nov 2007
16 Beiträge
 
#15

Re: Problem mit DLL / Übergabe

  Alt 15. Okt 2008, 10:41
Ja habs oben vergessen, in der DLL steht auch stdcall.

Ok, WideString... ich probiere es... es klappt Mit IStrings wäre es zwar komfortabler, aber dass es auf anderen System auch funktioniert ist wohl wichtiger.
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#16

Re: Problem mit DLL / Übergabe

  Alt 15. Okt 2008, 11:54
Zitat von Infamous:
Mit IStrings wäre es zwar komfortabler, aber dass es auf anderen System auch funktioniert ist wohl wichtiger.
Du kannst ja die StdVCLxx.DLL mit ausliefern und bei der Installation registrieren. GEnausogut kannst du aber, wie gesagt, auch die DLL zum speichermanager mitnehmen und einfach die Stringliste normal verwenden. Oder eben, wie jetzt, über widestring mit entsprechendem Comfortverlust.
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
Infamous

Registriert seit: 27. Nov 2007
16 Beiträge
 
#17

Re: Problem mit DLL / Übergabe

  Alt 21. Okt 2008, 15:37
Ja habe es jetzt mit WideStrings gemacht. Da gibt es aber keine Probleme, wenn man die DLL mit einer anderen programmiersprache aufrufen muss, oder? Also WideStrings sind Delphi-unabhänig?
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#18

Re: Problem mit DLL / Übergabe

  Alt 21. Okt 2008, 15:53
Ja, Widestring ist eine Windowssache. Und die ist ziemlich nett gekapselt von Delphi. Die Funktionen dazu (die man bei Delphi nicht wissen muss) sind hier beschrieben.
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 02:12 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