ich denke wir machen alles richtig
, für Funktionen die PChar oder
ANSI Char als Rückgabewert haben gibt es immer ne globale Variable
leider haben wir von unserem Matlab / C++ code noch keine Exe, zumindest noch nicht auf unserm Testrechner. Daran versuchen wir uns jetzt als nächstes,
Matlab *.exe und dann im Delphi Debugger die
dll testen.
Der Felher scheint im String Handling zu liegen, vermutlich werden bei der Übergabe von Zeichen an die
DLL falsche Zeichen hinzugefügt
Delphi-Quellcode:
library delphi2matlabTESTDLL;
{ ****************************************************************************
* BASIC TEST DLL
*
*
*
* version 2 : Exchange parameter String -> PChar
*
****************************************************************************}
uses
Sharemem,
Classes,
Dialogs;
{$R *.res}
{$I C:\code_shared_libraries\librarySuffix.inc} (* a include´file with library definitions *)
var aResult :
String;
function DllMessage : Boolean;
stdcall;
begin
ShowMessage('
Greeting to you .... Date 21.05.2012') ;
result := true;
end;
function Add_number( x, y : Integer) : Integer;
stdcall;
begin
result := x + y ;
end;
function Multiply_number( x, y : real): Real;
stdcall;
begin
result := x * y ;
end;
function Get_string( x : PChar): PChar;
stdcall;
begin
aResult := '
this is just a simple test ( ' +
String(x) + '
) for a pchar function result ' ;
result := PChar(aresult);
end;
exports
DllMessage,
// test function
Add_number,
Multiply_number,
Get_string;
//------------------------------------------------------------------------------
begin
end.