Vraag : Het overgaan van PChar parm tot DLL

Ik heb een DLL met een functie geschreven die een parameter PChar neemt en van Boole terugkeert. Wanneer ik de functie van een test app roep komt het altijd op met GEMIDDELD. Ik heb nu het tot zijn het meest basis zoals maar word hieronder nog myDLLFunction verminderd AV.

function (szText: PChar): Van Boole; stdcall; /> Resultaat
beginend;

My de test app roept het als dit:

procedure TForm1.Button1Click (Sender: TObject);
var
szText: PChar;
begin
szText: = „Één of andere tekst“;
als myDLLFunction (szText) then
showmessage („O.K.“);
end;

I heeft ook het roepen PChar met serie van Klusje maar zelfde resultaat vervangen. Ik ben nieuw aan DLLs en PChar. Ben I stom doend iets?

Antwoord : Het overgaan van PChar parm tot DLL

Behoorlijk verklaart u het?
Dit werk voor me.
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:
36:
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:

eenheid Unit1;

interface

gebruik
  Vensters, Berichten, SysUtils, Varianten, Klassen, Grafiek, Controles, Vormen,
  Dialogen, StdCtrls;

type
  TForm1 = klasse (TForm)
    Button1: TButton;
    procedure Button1Click (Afzender: TObject);
  privé
    {Privé verklaringen}
  openbaar
    {Openbare verklaringen}
  eind;

var
  Form1: TForm1;

implementatie

{$R *.dfm}

functie myDLLFunction (szText: PChar): Van Boole; stdcall; externe „project2.dll“;

procedure TForm1.Button1Click (Afzender: TObject);
var
  szText: PChar;
begin
  szText: = „Één of andere tekst“;
  als myDLLFunction (szText) toen
    showmessage („O.K.“);
eind;

eind.

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

Project 2, enige dpr:

bibliotheek Project2;

{Belangrijke nota over DLL geheugenbeheer: ShareMem moet zijn
  eerste eenheid in de uitgezochte clausule van het GEBRUIK van uw bibliotheek EN uw project (
  De project-mening Bron) GEBRUIKT clausule als uw DLL om het even welke procedures uitvoert of
  functies dat de paskoorden als parameters of functie voortvloeit. Dit
  is op alle die koorden van toepassing tot en van uw DLL worden overgegaan--die zelfs dat
  worden genesteld in verslagen en klassen. ShareMem is de interfaceeenheid aan
  BORLNDMM.DLL deelde geheugenmanager, wat moet worden opgesteld
  met uw DLL. Vermijden gebruikend BORLNDMM.DLL, ga koordinformatie over
  gebruikend parameters PChar of ShortString. }

gebruik
  SysUtils,
  Klassen;

{$R *.res}

functie myDLLFunction (szText: PChar): Van Boole; stdcall;
begin
   Resultaat: = Waar;
eind;

de uitvoer
  myDLLFunction;

begin

eind.
Andere oplossingen  
 
programming4us programming4us