Seite 1 von 1

ASCII String in Structure

Verfasst: 02.02.2019 18:23
von Cläusel
Ahoi.
Brauch da mal nen Schlagwort für die Suche, damit ich weiß wonach überhaupt.
Hab mal ein paar Tools die im ASCII Modus problemlos funktionierten,
mit PB5.70, also Unicode, bearbeitet.
Das macht natürlich Probleme, wenn die *.dll Ascii Strings an die übergebene Struktur zurück gibt.
An welchen Stelle kann ich den Ascii Rückgabestring bei "currentChannelInfo\name" auf Unicode konvertieren, das ich den
String in der Anwendung weiter korrekt verwenden kann?
Oder vorher schon irgendwie mit .p.ascii ? Aber wie verwende ich das in einer Struktur?
Bin wahrscheinlich komplett auf dem Holzweg.

Beste Grüße =o)

Code: Alles auswählen

Structure CHANNELINFO
id.u
type.u 
name.s{128} 
EndStructure

Define currentChannelInfo.CHANNELINFO
Define currentChannelHandle.i = 798722 ;what ever

If OpenLibrary(0,"MYDLL.dll")
     Define Result.i = CallFunction(0,"GetChannelInfo",currentChannelHandle, @currentChannelInfo)
     Debug currentChannelInfo\name ;<<< Hier nur Chinesische Zeichen da ja Ascii von der *. dll zurückgegeben wird, PB aber Unicode darstellt.
     CloseLibrary(0)
EndIf

Re: ASCII String in Structure

Verfasst: 02.02.2019 18:30
von mk-soft
abc...

Code: Alles auswählen

Structure CHANNELINFO
  id.u
  type.u 
  name.b[128] ; Array of byte range 0..127
EndStructure

Define currentChannelInfo.CHANNELINFO
Define currentChannelHandle.i = 798722 ;what ever

Macro getASCII(text)
  PeekS(text, -1 , #PB_Ascii)
EndMacro

If OpenLibrary(0,"MYDLL.dll")
  Define Result.i = CallFunction(0,"GetChannelInfo",currentChannelHandle, @currentChannelInfo)
  Debug currentChannelInfo\name ;<<< Hier nur Chinesische Zeichen da ja Ascii von der *. dll zurückgegeben wird, PB aber Unicode darstellt.
  Debug getASCII(Debug currentChannelInfo\name)
  Debug PeekS(currentChannelInfo\name, -1 , #PB_Ascii)
  CloseLibrary(0)
EndIf

Re: ASCII String in Structure

Verfasst: 02.02.2019 19:43
von Cläusel
Ach Gott ja... :roll:
Betriebsblind.. bin völlig falschen Überlegungen nachgegangen...

Ich werde die Struktur mit String belassen und nach dem dll Aufruf mal eben
mit PeekS und PokeS nach Unicode ummodeln....

Vielen Dank !!!!

:allright: