AGB  ·  Datenschutz  ·  Impressum  







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

Invalid Pointer Operation.

Ein Thema von freak4fun · begonnen am 14. Dez 2004 · letzter Beitrag vom 14. Dez 2004
Antwort Antwort
Benutzerbild von freak4fun
freak4fun

Registriert seit: 22. Sep 2004
Ort: Hannover
1.807 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#1

Invalid Pointer Operation.

  Alt 14. Dez 2004, 13:27
Hallo,
worauf weißt mich die Meldung: "Invalid Pointer Operation." hin?

Ich hab folgendes versucht:
Delphi-Quellcode:
interface

function Funktion(Name: String): String; stdcall;

implemantation

function Funktion(Name: String): String; stdcall; external 'DLL.dll';

procedure TForm1.Button1Click(Sender: TObject);
begin
  Edit1.Text := Funktion(Edit2.Text);
end;
In der DLL.dll
Delphi-Quellcode:
function Funktion(Name: String): String; stdcall;
var
  Zeichenkette: String;
begin
  Result := Zeichenkette;
end;
export
  Funktion;
Also die Zeichenkette ist richtig und wird auch ausgegeben. Ich erhalte halt nur noch die Fehlermeldung. Auf den Service möchte ich aber verzichtn.

Ich bin dankbar für jeden Ansatz und jegliche Lösungsvorschläge.

mfg
freak
Christian
IT: Schließen Sie bitte das Fenster. User: Die Tür auch?
i++; // zaehler i um 1 erhoehen
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

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

Re: Invalid Pointer Operation.

  Alt 14. Dez 2004, 13:30
Hast du den Kommentar gelesen, den dir der DLL-Experte als erstes oben in die Unit schreibt:
Delphi-Quellcode:
library Project2;

{ Wichtiger Hinweis zur DLL-Speicherverwaltung: ShareMem muß 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,
  Classes;

{$R *.res}

begin
end.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von freak4fun
freak4fun

Registriert seit: 22. Sep 2004
Ort: Hannover
1.807 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#3

Re: Invalid Pointer Operation.

  Alt 14. Dez 2004, 13:39
Entschuldigung, Luckie.
Ich muss die englische Version von Delphi nutzen und kann doch Englisch nicht so gut. Ich hab auch nicht gewusst das es da drin steht. Danke für den Hinweis. Ich hoffe nächstmal denk ich dran. (Meine Merkbefreiung ist noch in der Antragstellungsphase )

mfg
freak
Christian
IT: Schließen Sie bitte das Fenster. User: Die Tür auch?
i++; // zaehler i um 1 erhoehen
  Mit Zitat antworten Zitat
Benutzerbild von Sprint
Sprint

Registriert seit: 18. Aug 2004
Ort: Edewecht
712 Beiträge
 
Delphi 5 Professional
 
#4

Re: Invalid Pointer Operation.

  Alt 14. Dez 2004, 13:48
Versuche mal folgendes...

Delphi-Quellcode:
library MyLib;

function MyFunction(const S: WideString): WideString; safecall;
begin
  {...}
  Result := MyString;
  {...}
end;

exports
  MyFunction;

begin
end.
Delphi-Quellcode:
function MyFunction(const S: WideString): WideString; safecall;

implementation

function MyFunction; external 'MyLib.dll';
Konnte bis jetzt noch keine Probleme mit WideString und safecall feststellen.
Ciao, Sprint.

"I don't know what I am doing, but I am sure I am having fun!"
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#5

Re: Invalid Pointer Operation.

  Alt 14. Dez 2004, 13:52
ob safecall oder stdcall sollte keinen Unterschied machen da so ziemlich das gleiche passiert. einziger Unterschied:
Zitat:
The safecall convention implements exception "firewalls." On Windows, this implements interprocess COM error notification.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von Sprint
Sprint

Registriert seit: 18. Aug 2004
Ort: Edewecht
712 Beiträge
 
Delphi 5 Professional
 
#6

Re: Invalid Pointer Operation.

  Alt 14. Dez 2004, 14:00
Zitat von SirThornberry:
ob safecall oder stdcall sollte keinen Unterschied machen da so ziemlich das gleiche passiert.
Ja, ich weiß.

In ActiveX DLL's benutzt Delphi zum exportieren von Strings, safecall und WideString. Weil dort diese Kombination fehlerfrei funktioniert, würde ich das auch in einer Standard-DLL machen.
Ciao, Sprint.

"I don't know what I am doing, but I am sure I am having fun!"
  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 18: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