AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi Anwendung unicodefähig machen?
Thema durchsuchen
Ansicht
Themen-Optionen

Anwendung unicodefähig machen?

Ein Thema von AlexII · begonnen am 4. Apr 2014 · letzter Beitrag vom 19. Aug 2014
Antwort Antwort
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.277 Beiträge
 
Delphi 10.4 Sydney
 
#1

AW: Anwendung unicodefähig machen?

  Alt 4. Apr 2014, 16:05
Hallo,

wenn du uns noch die Stellen (zeile 86) mal anzeigen würdest,
bekommst du auch Hilfe.

Denke doch mal bitte ein bisschen mit

Meine Glaskugel sagt:
meta := BASS_ChannelGetTags(chan, BASS_TAG_META);

ChannelGetTags ist wohl so definiert
function BASS_ChannelGetTags(): PAnsiChar

Du brauchst eine Unicodefähige Schnittstellenbeschreibung.



Heiko
Heiko
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#2

AW: Anwendung unicodefähig machen?

  Alt 4. Apr 2014, 16:25
Zu dem nutzt dir die ganze Konvertierung nach Unicode nichts wenn du bei BASS_Init das Flag für Unicode nicht verwendest.
Mach dich diesbezüglich mal auf un4Seen kundig.

gruss
  Mit Zitat antworten Zitat
AlexII

Registriert seit: 28. Apr 2008
1.717 Beiträge
 
FreePascal / Lazarus
 
#3

AW: Anwendung unicodefähig machen?

  Alt 4. Apr 2014, 17:42
Zu dem nutzt dir die ganze Konvertierung nach Unicode nichts wenn du bei BASS_Init das Flag für Unicode nicht verwendest.
Mach dich diesbezüglich mal auf un4Seen kundig.

gruss
Ok... aber ich finde in der bass-Hilfe kein BASS_Init Flag.
Du meinst wahrscheinlich das hier:

BASS_SetConfig(BASS_CONFIG_UNICODE, 1); das ist gesetzt bei mir.
Bin Hobbyprogrammierer! Meine Fragen beziehen sich meistens auf Lazarus!

Geändert von AlexII ( 4. Apr 2014 um 17:59 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.340 Beiträge
 
Delphi 12 Athens
 
#4

AW: Anwendung unicodefähig machen?

  Alt 4. Apr 2014, 16:27
Du brauchst eine Unicodefähige Schnittstellenbeschreibung.
Oder wenn es die nur als ANSI gibt, dann muß sie auch weiterhin ANSI bleiben.



Wenn früher PChar, Char und string "richtig" benutzt wurden, dann würden die jetzt automatisch richtig als Unicode arbeiten.
Genauso hätten früher auch explizit die ANSI-Versionen verwenden werden müssen, wo es definitiv immer ANSI sein wird.
Ebenso, wie man früher auch explizit die Wide-Versionen nutzen musste, wo es auch damals schon Unicode sein musste.
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu ( 4. Apr 2014 um 16:30 Uhr)
  Mit Zitat antworten Zitat
AlexII

Registriert seit: 28. Apr 2008
1.717 Beiträge
 
FreePascal / Lazarus
 
#5

AW: Anwendung unicodefähig machen?

  Alt 4. Apr 2014, 16:54
Hallo,

Du brauchst eine Unicodefähige Schnittstellenbeschreibung.
bass.dll ist eigentlich schon Unicodefähig... hm...
Bin Hobbyprogrammierer! Meine Fragen beziehen sich meistens auf Lazarus!

Geändert von AlexII ( 4. Apr 2014 um 16:56 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.222 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: Anwendung unicodefähig machen?

  Alt 4. Apr 2014, 18:06
Hallo,

Du brauchst eine Unicodefähige Schnittstellenbeschreibung.
bass.dll ist eigentlich schon Unicodefähig... hm...
Die API ist AnsiString. Mit gesetzten Flag werden die Strings UTF8-Codiert erwartet.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
AlexII

Registriert seit: 28. Apr 2008
1.717 Beiträge
 
FreePascal / Lazarus
 
#7

AW: Anwendung unicodefähig machen?

  Alt 4. Apr 2014, 18:25
Hallo,

Du brauchst eine Unicodefähige Schnittstellenbeschreibung.
bass.dll ist eigentlich schon Unicodefähig... hm...
Die API ist AnsiString. Mit gesetzten Flag werden die Strings UTF8-Codiert erwartet.
Das heißt ich kann alles so lassen wie oben im Beispiel? Bin jetzt noch mehr verwirrt.
Bin Hobbyprogrammierer! Meine Fragen beziehen sich meistens auf Lazarus!
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.222 Beiträge
 
Delphi 10.4 Sydney
 
#8

AW: Anwendung unicodefähig machen?

  Alt 4. Apr 2014, 18:47
Hallo,

Du brauchst eine Unicodefähige Schnittstellenbeschreibung.
bass.dll ist eigentlich schon Unicodefähig... hm...
Die API ist AnsiString. Mit gesetzten Flag werden die Strings UTF8-Codiert erwartet.
Das heißt ich kann alles so lassen wie oben im Beispiel? Bin jetzt noch mehr verwirrt.
AFAIK nein. Du musst dafür sorgen das alle Strings UTF8 Codiert werden. Delphi (ab D2009) verwendet standardmäßig UTF-16 (String) bzw. AnsiStrings (AnsiString). Evtl. reicht es die Schnittstellendefinition von (Ansi-)String auf UTF8-String zu ändern. Evtl. sorgt die Compiler-Magic hier für eine automatische Codierung
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von wicht
wicht

Registriert seit: 15. Jan 2006
Ort: Das schöne Enger nahe Bielefeld
809 Beiträge
 
Delphi XE Professional
 
#9

AW: Anwendung unicodefähig machen?

  Alt 4. Apr 2014, 18:50
Moin!

Dein BASS_StreamCreateURL-Aufruf muss so aussehen:

chan := BASS_StreamCreateURL(url, 0, BASS_STREAM_BLOCK or BASS_STREAM_STATUS or BASS_STREAM_AUTOFREE or BASS_UNICODE, @StatusProc, nil);

Man beachte dabei das Flag BASS_UNICODE. "url" muss dann natürlich PChar werden, oder PWideChar, aber nicht PAnsiChar. Das steht alles in der Hilfe, die mit BASS ausgeliefert wird.
http://streamwriter.org

"I make hits. Not the public. I tell the DJ’s what to play. Understand?"
  Mit Zitat antworten Zitat
AlexII

Registriert seit: 28. Apr 2008
1.717 Beiträge
 
FreePascal / Lazarus
 
#10

AW: Anwendung unicodefähig machen?

  Alt 4. Apr 2014, 19:21
Moin!

Dein BASS_StreamCreateURL-Aufruf muss so aussehen:

chan := BASS_StreamCreateURL(url, 0, BASS_STREAM_BLOCK or BASS_STREAM_STATUS or BASS_STREAM_AUTOFREE or BASS_UNICODE, @StatusProc, nil); Man beachte dabei das Flag BASS_UNICODE. "url" muss dann natürlich PChar werden, oder PWideChar, aber nicht PAnsiChar. Das steht alles in der Hilfe, die mit BASS ausgeliefert wird.
In der bass.pas steht aber folgendes:

function BASS_StreamCreateURL(url: PAnsiChar; offset: DWORD; flags: DWORD; proc: DOWNLOADPROC; user: Pointer):HSTREAM; {$IFDEF MSWINDOWS}stdcall{$ELSE}cdecl{$ENDIF}; external bassdll; url ist also vom Datentyp PAnsiChar. Darf ist den Datentyp an dieser Stelle ändern? Habe es auch gemacht, bekomme aber einen Fehler.
Bin Hobbyprogrammierer! Meine Fragen beziehen sich meistens auf Lazarus!
  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 00:24 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