AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

AllocHGlobal <> GlobalAlloc ?

Ein Thema von EWeiss · begonnen am 12. Mai 2007 · letzter Beitrag vom 24. Mai 2007
Antwort Antwort
EWeiss
(Gast)

n/a Beiträge
 
#1

AllocHGlobal <> GlobalAlloc ?

  Alt 12. Mai 2007, 05:58
Hi

Ist AllocHGlobal mit GlobalAlloc gleichzusetzen ? oder besser GetMem verwenden.

Code:
IntPtr pTimedLevel = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(WMPInterop.TimedLevel)));
Marshal.StructureToPtr(TimedLvl, pTimedLevel, false);
Kommt das hin?

pTimedLvl := GlobalAlloc(GMEM_MOVEABLE, sizeof(TimedLevel)); Für die zweite zeile habe ich keine lösung.
Wie müßte ich das übersetzen ?

Dann noch ein Problem!

Delphi-Quellcode:
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);
kann machen was ich will, pRect.right und pRect.bottom kommt immer als 0 in der DLL an
obwohl der wert mit 300, 240 übergeben wird.
Selbst als übergabe anstelle von pRect (w,h: DWORD) genau das gleiche!

gruss Emil
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#2

Re: AllocHGlobal <> GlobalAlloc ?

  Alt 13. Mai 2007, 13:42
Push.

keiner ne Idee ?

gruss Emil
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#3

Re: AllocHGlobal <> GlobalAlloc ?

  Alt 24. Mai 2007, 07:58
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
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#4

Re: AllocHGlobal <> GlobalAlloc ?

  Alt 24. Mai 2007, 08:38
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.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#5

Re: AllocHGlobal <> GlobalAlloc ?

  Alt 24. Mai 2007, 08:42
Zitat von marabu:
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
Ja ..
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
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:08 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz