File:  [mozdev] / mozptch / QBindings.pas
Revision 1.1: download - view: text, annotated - select for diffs - revision graph
Sun May 30 19:51:15 2004 UTC (14 years, 9 months ago) by oertel
Branches: MAIN
CVS tags: version_30_05_04, HEAD
-Linux support ready for delivery (beta)
-New Variables for EmailAddress, ncoming and outgoing server
-INI-Files debuged
- new bin zip file

unit QBindings;
{ QBindings muss als erste Unit im Hauptprogramm-Quellcode
  eingebunden werden. Die libborqt.so / libqtintf.so wird dann
  zusätzlich im gleichen Verzeichnis wie das Executable gesucht. }

interface
uses
  SysUtils;

implementation

{$IFDEF LINUX}
uses
  Libc;

procedure LoadQtLib;
const
  QtShareNames: array[Boolean] of string = (
    'libqtintf-6.9-qt2.3.so', 'libborqt-6.9-qt2.3.so');
var
  StaticallyBound: Boolean;
  UseBorQt: Boolean;
  QtLibPath: string;
begin

 // hier wird der absolute Pfad abgegeben, in dem das SharedObject gesucht wird
  QtLibPath := ExtractFileDir(ParamStr(0));


  if (QtLibPath <> '') and (QtLibPath[1] <> PathDelim) then
    QtLibPath := IncludeTrailingPathDelimiter(GetCurrentDir) + QtLibPath;
  UseBorQt := GetModuleHandle(PChar(QtShareNames[True])) <> 0;
  StaticallyBound := UseBorQt or (GetModuleHandle(PChar(QtShareNames[False])) <> 0);
  if not StaticallyBound then
  begin
    UseBorQt := GetEnvironmentVariable('CLX_USE_LIBQT') = '';
    // Lade das SharedObject mit absolutem Pfad.
    if dlopen(PChar(QtLibPath + PathDelim + QtShareNames[UseBorQt]), RTLD_LAZY or RTLD_GLOBAL) = nil then
    begin
      // BindHelp.pas wird sich um die Fehlermeldung kümmern
    end;
  end;
end;

initialization
  LoadQtLib;

{$ENDIF LINUX}

end.


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>