我需要在需要wchar_t *
CFStringref
我尝试使用CFStringCreateWithCharacters
,但我没有随处可见。
所以,如果我有:
wchar_t * widecharvar = L"some value";
CFStringRef stringref;
如何将widecharvar
转换并复制到stringref
?该值将用于SecRequirementCreateWithString()
由于
答案 0 :(得分:5)
我正在做我的头脑和记忆;如果它有问题,请评论,我会实际测试它。
// Check our byte order. Assuming we made the string as in your example
CFStringEncoding encoding = (CFByteOrderLittleEndian == CFByteOrderGetCurrent()) ?
kCFStringEncodingUTF32LE : kCFStringEncodingUTF32BE;
int widecharvarLen = wcslen(widecharvar);
CFStringRef string = CFStringCreateWithBytes(NULL,
widecharvar,
(widecharvarLen * sizeof(wchar_t)),
encoding,
false);
最后false
表示该字符串不包含BOM(字节顺序标记),这是我假设您正在处理的字符串。