testdll.pp 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. {
  2. $Id$
  3. Copyright (c) 1998 by Pierre Muller
  4. Win32 DLL usage example. It needs dlltest.pp
  5. }
  6. library testdll;
  7. function GetModuleFileName(hModule:longint;lpszPath:pchar;cchPath:longint):longint;
  8. external 'kernel32' name 'GetModuleFileNameA';
  9. procedure beep(ID:longint);
  10. external 'user32' name 'MessageBeep';
  11. var
  12. teststr : string;
  13. procedure P1(var s:string);export;
  14. var
  15. p:array[0..255] of char;
  16. begin
  17. getmodulefilename(Hinstance,@p,255);
  18. writeln('DLL: Hello, I''m DLL ',pchar(@p));
  19. end;
  20. procedure P2(x:longint);export;
  21. begin
  22. writeln('DLL: Argument X=',x);
  23. writeln('DLL: New teststr="',teststr,'"');
  24. end;
  25. procedure P3(var t);export;
  26. begin
  27. end;
  28. procedure P4(x1:pointer);export;
  29. begin
  30. end;
  31. procedure NewExit;
  32. begin
  33. beep(0);
  34. writeln('DLL: Exit from testdll');
  35. end;
  36. exports
  37. P1 index 1,
  38. P2 name 'Proc2',
  39. P3,
  40. P4 resident,
  41. teststr name 'FPC_string';
  42. begin
  43. writeln('DLL: HInstance ',Hinstance,' PrevInst ',Hprevinst,' DLLReason ',DLLreason,' DLLParam ',DLLparam);
  44. teststr:='DLL init done';
  45. exitproc:=@newExit;
  46. end.
  47. {
  48. $Log$
  49. Revision 1.1 1999-01-12 14:20:36 peter
  50. + dll example
  51. }