tweaklib2.pp 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. { %NEEDLIBRARY }
  2. {$ifdef mswindows}
  3. {$define supported}
  4. {$endif mswindows}
  5. {$ifdef Unix}
  6. {$define supported}
  7. {$endif Unix}
  8. {$ifndef fpc}
  9. {$define supported}
  10. {$endif}
  11. {$ifdef supported}
  12. const
  13. {$ifdef windows}
  14. libname='tweaklib1.dll';
  15. {$else}
  16. libname='tweaklib1';
  17. {$linklib tweaklib1}
  18. {$endif}
  19. var
  20. {$ifndef darwin}
  21. _myvar: cardinal; weakexternal libname name '_MYVAR';
  22. _myvar2: cardinal; weakexternal libname name '_MYVAR2';
  23. {$else darwin}
  24. { needs to be fixed in the compiler }
  25. _myvar: cardinal; weakexternal libname name 'MYVAR';
  26. _myvar2: cardinal; weakexternal libname name 'MYVAR2';
  27. {$endif darwin}
  28. function _test: cardinal; weakexternal libname name '_TEST';
  29. procedure _test2; weakexternal libname name '_TEST2';
  30. begin
  31. {$ifdef darwin}
  32. if (paramcount=0) then
  33. halt(0);
  34. {$endif}
  35. if not assigned(@_test) then
  36. halt(1);
  37. if assigned(@_test2) then
  38. halt(2);
  39. if _test<>$facef00d then
  40. halt(3);
  41. if not assigned(@_myvar) then
  42. halt(4);
  43. if assigned(@_myvar2) then
  44. halt(5);
  45. if (_myvar<>$12345678) then
  46. halt(6);
  47. end.
  48. {$else supported}
  49. begin
  50. { no library support }
  51. end.
  52. {$endif supported}