Frage : Führen von PChar parm zu DLL

Ich habe ein DLL mit einer Funktion geschrieben, die einen PChar Parameter nimmt und ein Boolesches zurückbringt. Wenn ich die Funktion von einer Test-APP benenne, kommt sie immer mit einem Handels auf. Ich habe sie verringert jetzt, auf seinem grundlegendsten wie unter aber noch AV.

function myDLLFunction erhalte (szText: PChar): Boolesch; stdcall;
begin
Resultat: = ausrichten;
end;

My Test-APP-Anrufe mag es dieses:

procedure TForm1.Button1Click (Sender: TObject);
var
  szText: PChar;
begin
  szText:= „etwas Text“;
wenn myDLLFunction (szText) then
showmessage („OKAY ");
end;

I haben auch das benennende PChar durch Reihe der Putzfrau aber des gleichen Resultats ersetzt. Ich bin zu DLLs und zu PChars neu. Bin ich etwas tuend dumm?

Antwort : Führen von PChar parm zu DLL

Erklären Sie es richtig?
Dieses arbeitet für mich.
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
6:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
Project1, Unit1:

Maßeinheit Unit1;

Schnittstelle

Gebrauch
  Windows, Mitteilungen, SysUtils, Varianten, Kategorien, Grafiken, Kontrollen, Formen,
  Dialoge, StdCtrls;

Art
  TForm1 = Kategorie (TForm)
    Button1: TButton;
    Verfahren Button1Click (Absender: TObject);
  privat
    {Private Erklärungen}
  Öffentlichkeit
    {Allgemeine Erklärungen}
  Ende;

var
  Form1: TForm1;

Implementierung

{$R *.dfm}

Funktion myDLLFunction (szText: PChar): Boolesch; stdcall; External „project2.dll“;

Verfahren TForm1.Button1Click (Absender: TObject);
var
  szText: PChar;
anfangen
  szText: = „etwas Text“;
  wenn myDLLFunction (szText) dann
    showmessage („OKAY ");
Ende;

Ende.

=======================

Projekt 2, einzelnes dpr:

Bibliothek Project2;

{Wichtige Anmerkung über DLL-Gedächtnismanagement: ShareMem muss sein
  erste Maßeinheit in der GEBRAUCH-Klausel Ihrer Bibliothek UND in Ihrem Projekt (auserwählt
  Projekt-Ansicht Quelle) VERWENDET Klausel, wenn Ihr DLL irgendwelche Verfahren exportiert oder
  Funktionen, die Schnüre als Parameter oder Funktionsresultate führen. Dieses
  zutrifft auf alle Schnüre , die nach und von Ihrem DLL geführt--sogar die das
  genistet in den Aufzeichnungen und in den Kategorien. ShareMem ist die Schnittstellenmaßeinheit zu
  der BORLNDMM.DLL Manager des geteilten Gedächtnisses, der entlang entfaltet werden muss
  mit Ihrem DLL. Um BORLNDMM.DLL zu verwenden zu vermeiden, Schnurinformationen vermitteln
  using PChar oder ShortString Parameter. }

Gebrauch
  SysUtils,
  Kategorien;

{$R *.res}

Funktion myDLLFunction (szText: PChar): Boolesch; stdcall;
anfangen
   Resultat: = ausrichten;
Ende;

Exporte
  myDLLFunction;

anfangen

Ende.
Weitere Lösungen  
 
programming4us programming4us