Seite 1 von 1
unicode für funktion ausschliessen
Verfasst: 19.10.2007 09:19
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
Verfasst: 19.10.2007 09:26
von #NULL
soweit ich weiß geht das nicht.
du muesstest die string-daten manuell hin- und zurueck umwandeln in ascii/unicode.
Verfasst: 19.10.2007 09:57
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
Verfasst: 19.10.2007 10:13
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
Verfasst: 19.10.2007 10:16
von #NULL
[da ist glaube ich ein typo in thread-titel]
Verfasst: 19.10.2007 10:21
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