![]() |
AllocHGlobal <> GlobalAlloc ?
Hi
Ist AllocHGlobal mit GlobalAlloc gleichzusetzen ? oder besser GetMem verwenden.
Code:
Kommt das hin?
IntPtr pTimedLevel = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(WMPInterop.TimedLevel)));
Marshal.StructureToPtr(TimedLvl, pTimedLevel, false);
Delphi-Quellcode:
Für die zweite zeile habe ich keine lösung.
pTimedLvl := GlobalAlloc(GMEM_MOVEABLE, sizeof(TimedLevel));
Wie müßte ich das übersetzen ? Dann noch ein Problem!
Delphi-Quellcode:
kann machen was ich will, pRect.right und pRect.bottom kommt immer als 0 in der DLL an
function BASS_WMPVIS_Render(Data: PChar; pRect: TRect): Integer; stdcall; external 'bassWmp_vis.dll';
pRect.left := 0; pRect.top := 0; pRect.right := Image1.Width; pRect.bottom := Image1.Height; Result := BASS_WMPVIS_Render(pTimedLvl, pRect); obwohl der wert mit 300, 240 übergeben wird. Selbst als übergabe anstelle von pRect (w,h: DWORD) genau das gleiche! gruss Emil |
Re: AllocHGlobal <> GlobalAlloc ?
Push.
keiner ne Idee ? gruss Emil |
Re: AllocHGlobal <> GlobalAlloc ?
Hi Emil,
für das Übersetzungsproblem bräuchte ich die vollständige C-Quelle der Klasse mit der Methode AllocHGlobal. Auch zu dem Problem mit der Parameterübergabe fällt mir so gar nichts ein. Stammt die Funktion BASS_WMPVIS_Render() von dir? Freundliche Grüße |
Re: AllocHGlobal <> GlobalAlloc ?
GetMem verwendet den Memorymanager, GlobalAlloc hingegen ist eine Windowsfunktion welche direkt Speicher anfordert. Intern verwendet GetMem sicher irgendwo GlobalAlloc aber eben besser organisiert als wie du es normaler Weise verwendest weil eben ein durchdachter Memorymanager dahinter steckt.
|
Re: AllocHGlobal <> GlobalAlloc ?
Zitat:
Die ist von mir und funktioniert auch ;) halbwegs. Bin von dem C# Quelltext ganz weg und habe meine RenderMethode von Winamp für WMP verändert. Allerdings mit mäßigen erfolg. Mit fehlen ein paar Samples beim FFTSpectrum 1024 werden übergeben habe es aber noch nicht geschaft diese für den rechten Kanal richtig zu übergeben also von 1024 -> 2048 welche beim WMP für die Visualisierung des rechten Kanals zuständig sind. Na ja .. mit dem Osci bin ich auch noch nicht zufrieden. gruss Emil |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:15 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 by Thomas Breitkreuz