本帖最后由 3mile 于 2010-12-2 15:14 编辑
如题,调用LCMapString结果总为0?
我想应该是我调用语句有错吧,请大家指教。
#include <string.au3>
#include <array.au3>
#include <winapi.au3>
Local $sInputText = '中華人民共和國', $ab
;MsgBox(0, 0, _Big5toGbk($sInputText))
;MsgBox(0,0,_GbkToBig5('中华人民共和国'))
Func _Big5toGbk(ByRef $sInputText)
$sInputText = _WinAPI_MultiByteToWideChar($sInputText, 950, $MB_COMPOSITE, False);转为繁体中文
$sInputText = _WinAPI_WideCharToMultiByte($sInputText, 936);转为GBK繁体中文
Return $sInputText
EndFunc ;==>_Big5toGbk
Func _GbkToBig5($sInputText)
$sInputText = _WinAPI_MultiByteToWideChar($sInputText, 936, $MB_COMPOSITE, False);转为繁体中文
$sInputText = _WinAPI_WideCharToMultiByte($sInputText, 950);转为GBK繁体中文
Return $sInputText
EndFunc
$InPtr = _WinAPI_MultiByteToWideChar($sInputText, 936, $MB_COMPOSITE, False)
MsgBox(0,DllStructGetSize($InPtr),DllStructGetData($InPtr,1))
$textbuf=DllStructCreate('WCHAR [16]')
$OutPtr=DllStructGetPtr($textbuf)
$WLC=_WinAPI_MAKELCID(_WinAPI_MAKELANGID(0x04,0x02), 0x03)
MsgBox(0,0,$WLC)
$result = DllCall("kernel32.dll", "none","LCMapStringW", "long", 0x0804, "long", 0x4000000, "PTR", _
$InPtr,"LONG",DllStructGetSize($InPtr), "PTR",$OutPtr,'INT',DllStructGetSize($InPtr)*2)
MsgBox(0,$result,DllStructGetData($OutPtr,1))
|