Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Plugin problem (https://www.delphipraxis.net/93565-plugin-problem.html)

EWeiss 7. Jun 2007 14:29


Plugin problem
 
Hi

Ein seltsames verhalten zeigt sich wenn ich das Plugin Visual Ball (und andere) ausführen will.
Aus VB heraus gibt es keine Probleme Visual Ball für Sonique wird ordnungsgemäß ausgeführt mit der BassVis.dll

Starte ich das gleiche plugin auf die gleiche weise wie in VB
unter Delphi dann gibt es mir immer einen Fehler aus
Zitat:

floating point division durch null
Mit allen Sprachen C#, VB_NET, VB, MSVC funktioniert das Plugin nur unter Delphi nicht.

Die ausführung ist in allen Anwendungen gleich da sie über die BassVis gehen müssen.

VB
Delphi-Quellcode:
Public Declare Function BASS_SONIQUEVIS_CreateVis Lib "bass_vis.dll" ( _
    ByVal f As Any, _
    ByVal visconfig As Any, _
    ByVal flags As Long, _
    ByVal w As Long, _
    ByVal h As Long _
) As Long
VisChan = BASS_SONIQUEVIS_CreateVis(lstPathList.List(lstPlugins.ListIndex), sdir & "\vis.ini", 0, Picture1(0).ScaleWidth, Picture1(0).ScaleHeight)
Delphi
Delphi-Quellcode:
function BASS_SONIQUEVIS_CreateVis(f, visconfig:PChar; flags, w, h: DWORD):HVIS; stdcall; external 'bass_vis.dll';

vischan := BASS_SONIQUEVIS_CreateVis(PChar(vislist[ListBox1.ItemIndex]), PChar(PluginDir + '\vis.ini'), 0, Panel2.Width, Panel2.Height);
Irgend jemand eine Idee woran das liegen könnte ?
Nur Anwendungen in Delphi verursachen dieses Problem.


gruss Emil

marabu 7. Jun 2007 14:46

Re: Plugin problem
 
Hallo Emil,

da gibt es für mich nur eine Erklärung: Delphi und seine Initialisierung des Floating Point Control Word. Ich glaube mich zu erinnern, dass Delphi bestimmte Exceptions aktiviert, während C++, VB, etc. generell alle Exceptions deaktivieren.

Aus der OH zu Set8087CW
... Es ist zum Beispiel empfehlenswert, alle Gleitkomma-Exceptions zu deaktivieren, wenn OpenGL zur Darstellung von 3D-Grafiken eingesetzt wird. Rufen Sie dazu (vor dem Aufruf einer OpenGL-Funktion) in der Ereignisbehandlungsroutine für OnCreate des Hauptformulars Set8087CW(0x133f) auf.


Freundliche Grüße

EWeiss 7. Jun 2007 14:55

Re: Plugin problem
 
Zitat:

Zitat von marabu
Hallo Emil,

da gibt es für mich nur eine Erklärung: Delphi und seine Initialisierung des Floating Point Control Word. Ich glaube mich zu erinnern, dass Delphi bestimmte Exceptions aktiviert, während C++, VB, etc. generell alle Exceptions deaktivieren.

Aus der OH zu Set8087CW
... Es ist zum Beispiel empfehlenswert, alle Gleitkomma-Exceptions zu deaktivieren, wenn OpenGL zur Darstellung von 3D-Grafiken eingesetzt wird. Rufen Sie dazu (vor dem Aufruf einer OpenGL-Funktion) in der Ereignisbehandlungsroutine für OnCreate des Hauptformulars Set8087CW(0x133f) auf.


Freundliche Grüße

Ah jo ich weiss was du meinst.
Danke für die info ;)
Habe das schon mal gemacht allerdings hier im Forum gelesen das man es besser nicht tun sollte.

EDIT:
Funktioniert nun prächtig ;)
War schon am rätzeln ob es irgendwie mit der übergabe des Pfads zu tun hat.
Bei Vb kann der string als Any übergeben werden und in Delphi als PChar ausgewertet.
Na gut hatte damit nichts zu tun.

gruss.. und schönen Feiertag noch.


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:46 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