unicode für funktion ausschliessen

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
jpd
Beiträge: 380
Registriert: 14.02.2005 10:33

unicode für funktion ausschliessen

Beitrag von jpd »

Hi @All,

Moin!

habe eine frage,

verwende in meinen aktuelle project unicode,
habe eine procedure die aber unicode nicht unterstützt,
wie kann ich den kompiler beibringen das er diese procedure
nicht in unicode mode ausführt?

Danke
jpd
Zuletzt geändert von jpd am 19.10.2007 10:22, insgesamt 1-mal geändert.
PB 5.10 Windows 7 x64
Benutzeravatar
#NULL
Beiträge: 2238
Registriert: 20.04.2006 09:50

Beitrag von #NULL »

soweit ich weiß geht das nicht.
du muesstest die string-daten manuell hin- und zurueck umwandeln in ascii/unicode.
Zuletzt geändert von #NULL am 19.10.2007 10:09, insgesamt 1-mal geändert.
my pb stuff..
Bild..jedenfalls war das mal so.
Benutzeravatar
jpd
Beiträge: 380
Registriert: 14.02.2005 10:33

Beitrag von jpd »

Hi #NULL,

danke das hatte ich befürchtet!

Code: Alles auswählen

Procedure.s GetIPbyName (NameIP.s) 
  TheIPAdress.s 
  If InitNetwork() 
    
    pHostinfo = gethostbyname_(NameIP) 
    If pHostinfo = 0 
      TheIPAdress = "Unable to resolve domain name" 
    Else 
      CopyMemory (pHostinfo, hostinfo.HOSTENT, SizeOf(HOSTENT)) 
      If hostinfo\h_addrtype <> #AF_INET 
        MessageRequester("Info","A non-IP address was returned",0) 
      Else 
        While PeekL(hostinfo\h_addr_list+AdressNumber*4) 
          ipAddress = PeekL(hostinfo\h_addr_list+AdressNumber*4) 
          TheIPAdress = StrU(PeekB(ipAddress),0)+"."+StrU(PeekB(ipAddress+1),0)+"."+StrU(PeekB(ipAddress+2),0)+"."+StrU(PeekB(ipAddress+3),0) 
          AdressNumber+1 
        Wend 
      EndIf 
    EndIf 
  Else 
    MessageRequester("Info","Network can't be initialized",0) 
  EndIf 
  ProcedureReturn TheIPAdress 
EndProcedure 

gethostbyname_(
wenn unicode eingeschaltet ist dann gibt dieser api call

immer 0

danke

jpd
PB 5.10 Windows 7 x64
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag von Kiffi »

@jpd:

nach meinen Kenntnissen verlangt gethostbyname_() einen Ansi-String als
Übergabeparameter. Also musst Du zuvor den Unicode-String in Ansi
umwandeln.

Code: Alles auswählen

Procedure.s Uni2Ansi(*Unicode.l)
  Size.l = WideCharToMultiByte_(#CP_ACP, 0, *Unicode, -1, #Null, #Null, #Null, #Null)
  ansi.s=Space(Size)
  WideCharToMultiByte_(#CP_ACP, 0, *Unicode, -1, @ansi, Size, #Null, #Null)
  ProcedureReturn ansi 
EndProcedure 

pHostinfo = gethostbyname_(Uni2Ansi(@NameIP))
Grüße ... Kiffi
a²+b²=mc²
Benutzeravatar
#NULL
Beiträge: 2238
Registriert: 20.04.2006 09:50

Beitrag von #NULL »

[da ist glaube ich ein typo in thread-titel]
my pb stuff..
Bild..jedenfalls war das mal so.
Benutzeravatar
jpd
Beiträge: 380
Registriert: 14.02.2005 10:33

Beitrag von jpd »

Hi Kiffi,

so ist es auch!

es gibt tage da ist man einfach zu! :(

aber dafür gibt es hier immer gute hilfe :)

Danke
jpd
PB 5.10 Windows 7 x64
Antworten