如何将字符串转换为TYPES.LPTSTR.targetType.array



我假设了一些定义如下:

var CONFIG = {
    is64bit: ctypes.voidptr_t.size == 4 ? false : true,
    ifdef_UNICODE: true};
var TYPES = {
    CHAR: ctypes.char,
    WCHAR: ctypes.char16_t};
TYPES.LPSTR = TYPES.CHAR.ptr;
TYPES.LPWSTR = TYPES.WCHAR.ptr;
TYPES.LPTSTR = CONFIG.ifdef_UNICODE ? TYPES.LPWSTR : TYPES.LPSTR;

我有一个这样的字符串:"OMNIKEY AG智能卡读卡器USB 0"

,我想将其转换为TYPES.LPTSTR.targetType.array格式,其中如果它通过toString()显示,则如下所示:

ctypes.char16_t.array(36)(["O", "M", "N", "I", "K", "E", "Y", " ", 
"A", "G", " ", "S", "m", "a", "r", "t", " ", "C", "a", "r", "d", 
" ", "R", "e", "a", "d", "e", "r", " ", "U", "S", "B", " ", "0", 
"x00", "x00"])

我的系统是64位

这实际上是这样做的:var st = "OMNIKEY AG Smart Card Reader USB 0"; var st_cArr = TYPES.LPTSTR.targetType.array(st.length+1)(st)我选择了st.length+1,因为默认情况下你有一个空终止符,我选择了+1,所以你得到了x00的两个空终止符

相关内容

最新更新