paxScript Demo. Call routines defined in a dll.


paxBasic

Dim DllName = "TestDll.dll"
Declare Function Min Lib DllName Alias "Min" (X As Integer, Y As Integer) As Integer
Declare Function Max Lib DllName (X As Integer, Y As Integer) As Integer
Declare Register Function AddStrings Lib DllName (X As String, Y As String) As String
print Min(66, 70)
print Max(66, 70)
print AddStrings("abc", "pq")

Default paxBasic calling convention is stdcall.

paxC

extern "TestDll" int stdcall Min(int x, int y);
extern "TestDll" int stdcall Max(int x, int y);
extern "TestDll" string register AddStrings(string x, string y);
println Min(60, 50);
println Max(2, 3);
println AddStrings("abc", "pq");

Default paxC calling convention is cdecl.

paxPascal

const
  DllName = 'TestDll.dll';
function Min(X, Y: Integer): Integer; stdcall; external DllName name Min;
function Max(X, Y: Integer): Integer; stdcall; external DllName;
function AddStrings(const S1, S2: String): String; external DllName;
println Min(66, 70);
println Max(2, 3);
println AddStrings('abc', 'pq');

Default paxPascal calling convention is register.

Source code of TestDll

library TestDll; //Do not forget to add ShareMem unit to the USES clause of your application!

uses ShareMem;

function Min(X, Y: Integer): Integer; stdcall;
begin
  if X < Y then result := X else result := Y;
end;

function Max(X, Y: Integer): Integer; stdcall;
begin
  if X > Y then result := X else result := Y;
end;

function AddStrings(const S1, S2: String): String;
begin
  result := S1 + S2;
end;

exports

  Min,
  Max,
  AddStrings;

begin
end.


Copyright © 1999-2006 VIRT Laboratory. All rights reserved.