我正在尝试使用函数_snwprintf

时间:2013-06-28 22:42:49

标签: c++ c

我尝试使用_snwprintf()将一些字符串放入名称中; 用于打开名称的文件 但不幸的是,我所知道的只是字符串的第一个字符

这是一个代码:

# include<stdio.h>
#define LN L"\\SystemRoot\\System32\\Log.txt"

void main (void)
{
       wchar_t name[1024];
   _snwprintf(name,sizeof(name),L"%s",LN);
   printf("%s",name);
       getchar();
}

,我得到的输出是\

我在内核模式下使用它从用户模式读取文件,我在这样的小事上失败了:)

有人可以赐教我如何获取这个字符串的全名? PLS!

1 个答案:

答案 0 :(得分:3)

是的,您将Unicode字符串视为ANSI。在little-endian系统中,前两个字节是“\”后跟零,这将终止字符串。

你想说

wprintf(L"%s", name);

如果您在调试器中单步执行,您会看到'name'包含您期望的内容。