Einzelnen Beitrag anzeigen

EWeiss
(Gast)

n/a Beiträge
 
#5

AW: Delphi nach C#

  Alt 15. Aug 2011, 19:34
Hätte ja sein können, dass du das nicht kennst.

Gut, also was mir auf den ersten Blick auffällt ist, dass da das stdcall fehlt. In DllImport muss noch stehen:
Code:
CallingConvention=CallingConvention.StdCall
Ahh Danke werd es mal addieren und sehen was bei rum kommt.

Bekomme jetzt diese Meldung nach meiner Änderungen.
Zitat:
An unhandled exception of type 'System.Runtime.InteropServices.MarshalDirectiveEx ception' occurred in BassVisAPI.Net.dll
Additional information: "return value" kann nicht gemarshallt werden: Ungültige verwaltete/nicht verwaltete Typenkombination..
Code:
private BASSVIS_PLUGINS[,] Plugins;
Code:
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);
  }
}
Meine Änderung!
Code:
//BASSVIS_GetPlugins
public static BASSVIS_PLUGINS[,] BASSVIS_GetPlugins(BASSVISKind kind, string pluginPath, bool recursive)
{
  BASSVIS_PLUGINS[,] Plugins = BASSVIS_GetPlugins(kind, pluginPath, recursive ? BASSVISFindFlags.BASSVIS_FIND_RECURSIVE : BASSVISFindFlags.BASSVIS_FIND_DEFAULT);
  return Plugins;
}
[return: MarshalAs(UnmanagedType.LPArray)]
[DllImport("bass_vis.dll", EntryPoint = "BASSVIS_GetPlugins", CharSet = CharSet.Auto)]
private static extern BASSVIS_PLUGINS[,] BASSVIS_GetPlugins(BASSVISKind A_0, [In, MarshalAs(UnmanagedType.LPStr)] string A_1, BASSVISFindFlags A_2);
ObjectBrowser..
Code:
public static BassVis_Api.BASSVIS_PLUGINS[,] BASSVIS_GetPlugins(BassVis_Api.BASSVISKind kind, string pluginPath, bool recursive)
    Member of BassVis_Api.BassVis
PS:
Hat leider nichts gebracht gleicher Fehler wie oben.
Hätte mich auch gewundert da ich in allen meinen Funktionen das stdcall nicht addiert habe.
Und diese Funktionieren. (Aber ein versuch konnte ja nicht schaden )

Neuer versuch..
Code:
[return: MarshalAs(UnmanagedType.SafeArray)]
Jetzt hat er nach dem Einsprungspunkt in der DLL gefragt. DLL ersetzt nächster Fehler.

Zitat:
An unhandled exception of type 'System.ExecutionEngineException' occurred in BassVisAPI.Net.dll
Verdammt schwierig

gruss

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