2010-02-09 127 views
2

我正在使用Visual Studio .NET 2003,並試圖將以純ANSI字符編寫的程序轉換爲獨立於Unicode /多字節字符。從ANSI轉換爲Unicode

該程序具有pcap_loop的回調函數,稱爲「got_packet」。它定義爲

void got_packet(u_char *user, const struct pcap_pkthdr *header, const u_char *cpacket) 
{ 
    USES_CONVERSION; 
    _TUCHAR *packet; 
    packet = A2T(cpacket); 
    ... 
} 

但是,我得到錯誤信息

error C2440: 'type cast': cannot convert from 'const u_char *' to 'ATL::CA2WEX<>' 

如何解決這個問題?

+0

ANSI什麼? ANSI是一個標準機構,你的意思是ASCII嗎? – paxdiablo 2010-02-09 07:23:21

+0

嗯,我不太熟悉確切的術語,但我的意思是ANSI字符串,如MSDN文章中所述: http://msdn.microsoft.com/en-us/library/87zae4a3(VS。 71).aspx 基本上,程序對每個字符串/數組等使用了char,char *,unsigned char和unsigned char *,以及諸如strstr和strlen之類的字符串函數,不考慮Unicode字符。 – Rayne 2010-02-09 07:35:44

+1

@paxdiablo:「ANSI」也是Windows-1252字符集的別名。 http://www.alanwood.net/demos/ansi.html – 2010-02-09 07:40:34

回答