Einzelnen Beitrag anzeigen

EWeiss
(Gast)

n/a Beiträge
 
#4

AW: Enum verursacht eine ungültige gleitkommaoperation in Kernel32

  Alt 12. Jul 2016, 00:34
Habe es jetzt geändert..
Hat nichts mit dem Enum zu tun ich bekomme ein StackOverflowException in C#.
Habe im Moment keine Idee wie ich das beheben soll.

Vielleicht ist mein Ansatz auch falsch.

Ich gehe so vor.
Ich starte ein Plugin und setze es als Parent in ein Fenster.
Schließe ich das Fenster dann funktioniert alles normal.
Schließe ich das Plugin im Fenster dann bleibt das Fenster sichtbar.
Das Plugin schickt die Message WM_CLOSE.. und mein Thread wird beendet.

Jetzt sende ich über die Callback die Variable psExternalClose
Delphi-Quellcode:
   
if (assigned(AmpStateCallback)) then
  AmpStateCallback(psExternalClose);

Result := 0;
ExitThread(0);
In Delphi werte ich diese dann so aus.

Delphi-Quellcode:
    psExternalClose:
      begin
        if frm_Gen.Visible then
        begin
          mVisParam.VisHandle := 0;
          frmMain.InfoTimer1.Enabled := false;
          frm_Gen.Hide;
          frm_Gen.Close;
        end;
      end;
Das Fenster wird geschlossen und alles ist ok.

Funktioniert in VB6 nicht (ungültige gleitkommaoperation)
und in C# StackOverflowException

Code:
       
case BASSVIS_PLAYSTATE.ExternalClose:
  if (resWin != null)
    if (resWin.Visibility == Visibility.Visible)
    {
      mVisParam.VisHandle = 0;
      resWin.Close();
      resWin = null;
    }
    break;
Finde den Fehler einfach nicht.

gruss
  Mit Zitat antworten Zitat