AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

was macht System.IsMultiThread genau?

Ein Thema von EWeiss · begonnen am 31. Mär 2007 · letzter Beitrag vom 2. Apr 2007
 
EWeiss
(Gast)

n/a Beiträge
 
#10

Re: was macht System.IsMultiThread genau?

  Alt 31. Mär 2007, 22:11
Zitat von SirThornberry:
Ob isMultiThread einen Einfluss darauf hat weiß ich nicht, sollte aber nicht wenn es in einem extra Modul steckt.
Und Fehler unterdrücken ist der falsche Ansatz. Eine Zugriffsverletzung kommt schließlich weil an einer falschen Speicheradresse auf Speicher zugegriffen werden soll. Im Schlimmsten fall kommt also mal keine Zugriffsverletzung und Speicher wird an falschen Stellen gelesen oder geschrieben. Es gilt also - Fehler finden!
Jo ist wohl der sinnvollste weg..
Nur konnte bisher keinen finden bei mir läuft das durch ohne zicken.
Vielleicht die compileroption zu stark eingestellt bei den anderen...

Hmm versteh das nicht!

Das wäre vielleicht mein ansatz gewesen.

Delphi-Quellcode:
  procedure LibraryProc(Reason: integer);
  begin
    case (Reason) of
      DLL_PROCESS_ATTACH:
      begin
        BassHandle := LoadLibrary('bass.dll');
        if (BassHandle = 0) then
        begin
          MessageBox(0, 'Unable to load ''bass.dll''' + #13#10 + 'Halting the library process', 'Fatal Error!!', MB_ICONERROR);
          ExitCode := 1;
          Exit;
        end;

        BassFuncs := GetProcAddress(BassHandle, '_');
        if (BassFuncs = nil) then
        begin
          FreeLibrary(BassHandle);
          BassHandle := 0;

          MessageBox(0, 'Unable to load add-on functions from ''bass.dll''' + #13#10 + 'Halting the library process', 'Fatal Error!!', MB_ICONERROR);
          ExitCode := 1;
          Exit;
        end;
        System.IsMultiThread := true;
        Saved8087CW := Default8087CW;
        Set8087CW($133f);
      end;
      DLL_PROCESS_DETACH:
      begin
        if (BassHandle <> 0) then
        begin
          FreeLibrary(BassHandle);
          BassHandle := 0;
        end;

        if (FindPluginsPtr <> nil) then
          StrDispose(FindPluginsPtr);

        Set8087CW(Saved8087CW)
      end;
    end;
  end;
um den Fehler der meistens hier auftritt wie berichtet zu umgehen..
Delphi-Quellcode:
function BASS_VIS_FindPlugins(vispath: PChar; flags: DWORD): PChar; stdcall;
var
  fPath: PChar;
  i, z: Integer;
  Plugins: String;
  DllHandle: THandle;
  VisList: TStringList;
  sSonique, sWinamp, fRecursive: Boolean;

  procedure SearchDir(const dPath: String);
  var
    x: Integer;
    sRec: TSearchRec;
  begin
    if (sSonique) then
    begin
      x := FindFirst(dPath + '*.svp', faAnyFile, sRec);
      while (x = 0) do
      begin
        if (FileExists(dPath + sRec.Name)) then
          VisList.Add(dPath + sRec.Name);

        x := FindNext(sRec); .....
Nur wie gesagt bei mir tritt keiner auf.
Auch unter D7 nicht.

gruss Emil
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:03 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz