![]() |
Gibt es eine limitierung an einträgen in Records?
Ich hab da ein Problem in Verbindung mit C# und Delphi.
Um die Kompatibilität zwischen verschiedenen Sprachen zu erhalten sind meine Variablen als LongBool ausgelegt. Boolean funktioniert leider bei VB nicht so kann ich hier ein Long anstelle von Boolean verwenden. Angeblich soll bedingt durch meine DLL dieser Fehler auftreten. Zitat:
Kann es sein das die Einträge in einem Record limitiert sind? gruss |
AW: Gibt es eine limitierung an einträgen in Records?
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? |
AW: Gibt es eine limitierung an einträgen in Records?
Zitat:
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:
c#
//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;
Code:
Habe BOOL in C# als UnmanagedType gemarshallt da scheint es vielleicht Probleme zu geben
[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; } } Kann dies ein laden der hwinterfacex64.sys verhindern? Denke mal nicht. Nachdem ich diese drei variablen addiert habe
Delphi-Quellcode:
Scheint da irgendetwas nicht mehr zu funktionieren.
SON_ShowPrgBar : BOOL; // Progressbar anzeigen
SON_ShowFPS : BOOL; // Frames pro Sekunde anzeigen SON_UseCover : BOOL; // Cover anzeigen Deshalb auch die frage nach dem Limit. gruss |
AW: Gibt es eine limitierung an einträgen in Records?
Sorry das ich das Thema so schnell nach oben hole.
Kann mir denn niemand sagen ob meine DLL (32Bit) das laden von hwinterfacex64.sys verhindert? gruss |
AW: Gibt es eine limitierung an einträgen in Records?
Wenn das deine DLL einbindet und diese nicht signiert ist, wäre das möglich. Denn es steht ja da, dass die Signierung nicht korrekt ist.
Ob es tatsächlich deine DLL ist, die das verhindert, kann man relativ einfach im Process Monitor prüfen. Wenn deine DLL im Zuge des Starts dieses Dienstes nie angefasst wird, kann sie auch nicht die Ursache sein. |
AW: Gibt es eine limitierung an einträgen in Records?
Habe den Fehler gefunden.
Nicht bei mir sondern in der Anwendung selbst die meine DLL verwendet. Es existiert ein Folder namens Plugin dieser sollte eigentlich nur ausschließlich für Winamp Plug-Ins verwendet werden. Jetzt haben die da aber noch andere DLL's in einem separaten Ordner gelagert. (Für MiniDisplays) Durch das rekursive Search Flag das auf true geschaltet wurde suchte meine DLL natürlich auch dort nach möglichen Winamp Plug-Ins. Das hatte zur folge das DLL's geladen wurden welche dieses Interface verwenden. Das kann dann natürlich nur ins negative gehen. gruss |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:02 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