簡體   English   中英

在C中將UNICODE_STRING轉換為ANSI,反之亦然

[英]Converting a UNICODE_STRING to ANSI or vice versa in C

我有一個UNICODE_STRING ,我想將其與以空值結尾的ANSI字符串進行比較,以檢查它們是否相同。 我使用的是C.我想,以避免包括winternl.hRtlInitUnicodeString

這樣做的首選方法是什么?

或者,或者,使用MultiByteToWideChar()將ANSI字符串轉換為寬字符表示形式,然后將其與UNICODE_STRING.buffer進行比較,我是否有任何問題MultiByteToWideChar()要了解該緩沖區可能不會以null終止)?

我只是使用MultiByteToWideChar()轉換ANSI字符串。 CompareString()函數采用每個字符串的長度參數,因此不必擔心缺少空終止符。

只需注意哪些參數接受或返回字節與字符,並且使用這些函數應該沒有問題。

WideCharToMultiByte似乎更合乎邏輯。 它可以處理非零終止的字符串,並產生終止的字符串。 並且它嘗試對在系統代碼頁中沒有字符的代碼點做有意義的事情。 然后就是strcmp()。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM