Einzelnen Beitrag anzeigen

EWeiss
(Gast)

n/a Beiträge
 
#3

AW: Gibt es eine limitierung an einträgen in Records?

  Alt 25. Nov 2013, 09:58
Das hat mit irgendwelchen programminternen Strukturen rein gar nichts zu tun.

Da stimmt einfach die Signatur des Dienstes oder einer seiner DLLs nicht. Ist deine DLL denn signiert?
Nein..
Das ist nur ein Wrapper der die Funktionen von meiner DLL weiterleitet.
Theoretisch kann ich die Classe auch direkt im Projekt einbinden.
Die DLL ist aber nötig da ein Marshalling in VB.NET nicht so ohne weiteres funktioniert. (deshalb habe ich diese auch in C# erstellt)

Damit ich nicht zwei Classen dafür schreiben muss.

Delphi!
Delphi-Quellcode:
  //Definition der Records für die variablen Parameter bei Create bzw. Execute
  //WMP: Handle des Fensters braucht nicht definiert werden, da es bereits beim init mitgegeben wird
  PBASSVIS_EXEC = ^TBASSVIS_EXEC;
  TBASSVIS_EXEC = record
    Pluginfile : PAnsiChar; // Dateiname des Plugins
                                       // für Sonique, Winamp, BassBox
    AMP_UseOwnW1 : DWORD; // Flag für Winamp (ownHDC)
    AMP_UseOwnW2 : DWORD; // Flag für Winamp (ownHDCW2)
    AMP_Moduleindex : DWORD; // Modul-index für Winamp
    AMP_UseFakeWindow : BOOL; // Create a own Window for WindowMessages
    SON_ParentHandle : HWND; // Painthandle für Sonique
    SON_ConfigFile : PAnsiChar; // Dateiname der Konfiguration für Sonique
    SON_Flags : DWORD; // Flags für Sonique
    SON_UseOpenGL : BOOL; // Use OpenGL instead of GDI
    SON_ViewportWidth : integer; // Stretch Width
    SON_ViewportHeight : integer; // Stretch Height
    SON_ShowPrgBar : BOOL; // Progressbar anzeigen
    SON_ShowFPS : BOOL; // Frames pro Sekunde anzeigen
    SON_UseCover : BOOL; // Cover anzeigen
    WMP_PluginIndex : integer; // Pluginindex für WMP;
    WMP_PresetIndex : integer; // Presetindex für WMP;
    WMP_SrcVisHandle : HWND; // ContainerVisHandle für WMP;
    BB_ParentHandle : HWND; // Parent Windowhandle
    BB_Flags : DWORD; // Flags für BassBox selbe wie Sonique
    BB_ShowFPS : BOOL; // Frames pro Sekunde anzeigen
    BB_ShowPrgBar : BOOL; // Progressbar anzeigen
    AIMP_PaintHandle : HDC; // Painthandle für Aimp2
    AIMP_Flags : DWORD; // Flags für Aimp2
    Width, Height : integer; // Fensterhöhe und Breite
    Left, Top : integer; // Left und Top;
  end;
c#

Code:
    [Serializable, StructLayout(LayoutKind.Sequential)]
    public sealed class BASSVIS_EXEC
    {
      [MarshalAs(UnmanagedType.LPStr)]
      public string PluginFile = string.Empty;
      public int AMP_UseOwnW1;
      public int AMP_UseOwnW2;
      public int AMP_ModuleIndex;
      public bool AMP_UseFakeWindow;
      public IntPtr SON_ParentHandle = IntPtr.Zero;
      [MarshalAs(UnmanagedType.LPStr)]
      public string SON_ConfigFile = string.Empty;
      public BASSVISFlags SON_Flags;
      public bool SON_UseOpenGL;
      public int SON_ViewportWidth;
      public int SON_ViewportHeight;
      [MarshalAs(UnmanagedType.Bool)]
      public bool SON_ShowPrgBar;
      [MarshalAs(UnmanagedType.Bool)]
      public bool SON_ShowFPS;
      [MarshalAs(UnmanagedType.Bool)]
      public bool SON_UseCover;
      public int WMP_PluginIndex;
      public int WMP_PresetIndex;
      public IntPtr WMP_SrcVisHandle = IntPtr.Zero;
      public IntPtr BB_ParentHandle = IntPtr.Zero;
      public BASSVISFlags BB_Flags;
      [MarshalAs(UnmanagedType.Bool)]
      public bool BB_ShowFPS;
      [MarshalAs(UnmanagedType.Bool)]
      public bool BB_ShowPrgBar;
      public IntPtr AIMP_PaintHandle = IntPtr.Zero;
      public BASSVISFlags AIMP_Flags;
      public int Width;
      public int Height;
      public int Left;
      public int Top;
      public BASSVIS_EXEC(string filename)
        {
            this.PluginFile = filename;
        }
    }
Habe BOOL in C# als UnmanagedType gemarshallt da scheint es vielleicht Probleme zu geben
Kann dies ein laden der hwinterfacex64.sys verhindern?
Denke mal nicht.

Nachdem ich diese drei variablen addiert habe
Delphi-Quellcode:
SON_ShowPrgBar : BOOL; // Progressbar anzeigen
SON_ShowFPS : BOOL; // Frames pro Sekunde anzeigen
SON_UseCover : BOOL; // Cover anzeigen
Scheint da irgendetwas nicht mehr zu funktionieren.
Deshalb auch die frage nach dem Limit.

gruss

Geändert von EWeiss (25. Nov 2013 um 10:00 Uhr)
  Mit Zitat antworten Zitat