Einzelnen Beitrag anzeigen

EWeiss
(Gast)

n/a Beiträge
 
#6

AW: Delphi nach C#

  Alt 15. Aug 2011, 23:13
Soweit habe ich es schon mal..

Code:
#region Winamp

if (index == Convert.ToInt32(BASSVISKind.BASSVISKIND_WINAMP))
{

  Plugins = BassVis.BASSVIS_GetPlugins((BASSVISKind)cbVisType.SelectedIndex, PluginDir, true);
  if (Plugins != null)
  {
    foreach (BASSVIS_PLUGINS p in Plugins)
    {
      string name = Path.GetFileName(p.PluginPath);
      string path = Path.GetDirectoryName(p.PluginPath);

      lstPlugins.Items.Add(name);
      pluginPathList.Add(path);
    }
       
    lstPlugins.SelectedIndex = 0;

    mVisParam.VisHandle = Plugins[lstPlugins.SelectedIndex].PluginHandle;
    int NumModule       = Plugins[lstPlugins.SelectedIndex].ModuleCount;
    string Pluginname   = Plugins[lstPlugins.SelectedIndex].PluginName;

    if (!(NumModule > 0))
    {
      return;
    }                   
    Descript.Text = Pluginname;

    for (int IntI = 0; IntI <= (NumModule - 1); IntI++)
    {
      VisModules.Items.Add(Plugins[lstPlugins.SelectedIndex].ModuleName);
    }

    if (NumModule > 0)
    {
      VisModules.SelectedIndex = 0;
    }

    if (Stream != 0 && NumModule == 1)
    {
      cmdStartVis_Click(null, null);
    }
  }
}

#endregion Winamp
Aber immer noch einen Fehler.
Code:
Plugins = BassVis.BASSVIS_GetPlugins((BASSVISKind)cbVisType.SelectedIndex, PluginDir, true);
Zitat:
An unhandled exception of type 'System.ExecutionEngineException' occurred in BassVisAPI.Net.dll
Die Ausnahme, die bei einem internen Fehler im Ausführungsmodul der Common Language Runtime ausgelöst wird. Die Klasse kann nicht vererbt werden.

Hatte ein 2Dimensionales Array [,] das war schon mal falsch.
Was soll da falsch sein das die Klasse nicht vererbt wird?

Code:
//BASSVIS_GetPlugins
public static BASSVIS_PLUGINS[] BASSVIS_GetPlugins(BASSVISKind kind, string pluginPath, bool recursive)
{
  BASSVIS_PLUGINS[] Plugins = BASSVIS_GetPlugins(kind, pluginPath, recursive ? BASSVIS_FINDFLAGS.BASSVIS_FIND_RECURSIVE : BASSVIS_FINDFLAGS.BASSVIS_FIND_DEFAULT);
  if (Plugins != null)
  {
    return Plugins;
  }
  return null;
}
[return: MarshalAs(UnmanagedType.SafeArray)]
[DllImport("bass_vis.dll", EntryPoint = "BASSVIS_GetPlugins", CharSet = CharSet.Auto)]
private static extern BASSVIS_PLUGINS[] BASSVIS_GetPlugins(BASSVISKind kind, [In, MarshalAs(UnmanagedType.LPStr)] string pluginPath, BASSVIS_FINDFLAGS recursive);
An der Überladenen Function kann es eigentlich nicht liegen.

Hmm....

gruss

Geändert von EWeiss (15. Aug 2011 um 23:19 Uhr)
  Mit Zitat antworten Zitat