[delphi]Tekst naar een DLL sturen

Pagina: 1
Acties:

  • Megamind
  • Registratie: Augustus 2002
  • Laatst online: 28-02 20:33
Ik heb een DLL geschreven, teminste ben bezig, voor SmarieLCD om zo vanuit mijn delphi app tekst te sturen naar de LCD via een simpele DLL call, dus geen moeilijke code om heel die LCD aan te roepen.

De functie die Smarie aanroept is zo:
code:
1
2
3
4
5
6
7
8
9
10
11
12
Function function1(param1:pchar):pchar; stdcall;
// this one is a simple math funtion
begin
  try

    result:=pchar(Param1);

  except
    on E: Exception do
      result := PChar('plugin had exception: ' + E.Message);
  end;
end;


In de Smartie config roep ik zo de DLL aan:
$dll(demo.dll,1,'')
demo.dll is de dll dus
1 is de functie nummer
'' is de tekst voor param1

Vanuit mijn eigen applicatie denk ik dat ik de DLL zo aan zou moeten sturen:
code:
1
2
3
function function1(param1:pchar): pchar; stdcall; external 'demo.dll';
[..]
function1('Hallo');


Ik krijg geen errors maar heb probleem is dat dus de tekst niet op het scherm verschijnt, de DLL refresh wel elke zoveel ms, maar hoe moet ik nu precies de tekst die ik verzend opvangen in de DLL om die door te geven?

[ Voor 4% gewijzigd door Megamind op 22-05-2005 16:14 ]


  • LordLarry
  • Registratie: Juli 2001
  • Niet online

LordLarry

Aut disce aut discede

Ik snap niet helemaal wat je nu probeert te zeggen, maar ik neem aan dat je DLL niet werkt icm Smartie. Ik ken dat programmatje niet, maar weet je wel zeker dat je stdcall moet gebruiken? En heb je de function1 wel geexporteerd uit de DLL? Hoe weet je zo zeker dat ie weet dat ie function1 aan moet roepen? Gaat het niet via een index ipv een naam? Werkt het wel in een eigen Delphi Applicatie?

Je hebt te maken met PChars. Dat zijn C style strings en die werken anders als de Delphi Ansi Strings. De manier waarop jij ze gebruikt is niet goed en daar zouden fouten vandaan kunnen komen.

We adore chaos because we like to restore order - M.C. Escher


  • Megamind
  • Registratie: Augustus 2002
  • Laatst online: 28-02 20:33
Pfoe de helft dat je roept snap ik nog niet :P Ik ga me meer verdiepen in DLL's, ik ben er wel achter gekomen dat Smartie dll's niet helemaal goed behandeld dus dat wordt waarschijnlijk niks.
Toch bedankt voor je reactie :)

  • Speed24
  • Registratie: Augustus 1999
  • Niet online
Als DLL-calls je niet gaan lukken,
kun je eventueel ook met jaLCDs spelen,
daar kun je via een TCP-poort je strings sturen...

Hier staat een mooi documentje daar over:
http://www.jalcds.de/details.php?id=1046991760