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.
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.
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.
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.