需求很简单,char数组转wchar数组,

原来的做法:

 UNICODE_STRING usFilePath = { 0 };ANSI_STRING    asFilePath = { 0 };RtlInitAnsiString(&asFilePath, pFilePath);RtlAnsiStringToUnicodeString(&usFilePath, &asFilePath, TRUE);
// TODO
usFilePath.BufferRtlFreeUnicodeString(&usFilePath);

应用层char数组转wchar数组的方法还是挺多的,但是内核层在网上竟然找不到几个靠谱的方法,没办法,我太菜了

后来使用swprintf_s加%hs格式化字符串:

char* pFilePath = "c:\\1.exe";
wchar_t ws[260] = { 0 };
swprintf_s(ws, 260, L"%hs", pFilePath);

最后在msdn上发现官方推荐使用RtlStringCbPrintfW来代替swprintf系列函数

char* str1 = "this is an ansi string";WCHAR str2[260] = { 0 };status = RtlStringCbPrintfW(str2, 260, L"this is an unicode string from %hs", str1);if (!NT_SUCCESS(status)){KdPrint(("convert ansi to wchar failed.\n status = %x", status));}

windows kernel char数组转wchar数组相关推荐

  1. char数组拷贝wchar数组

    std::string str = "123"; size_t nDestSize = mbstowcs(NULL, str.c_str(), 0) + 1; //size_t n ...

  2. C/C++:Windows编程—Windows RPC 传递自定义数据类型、自定义数据类型数组、指针数组

    前言 该篇博文不是讲Windows rpc入门的.是笔者在实际使用Windows RPC时 所遇到的问题,以及解决方法. 笔者有这样的需求,需要从RPC Server获取大量数据,而且该数据是动态分配 ...

  3. 函数模板案例_利用函数模板封装一个排序的函数,可以对不同数据类型数组进行排序 排序规则从大到小,排序算法为选择排序 分别利用char数组和int数组进行测试

    案例描述: 利用函数模板封装一个排序的函数,可以对不同数据类型数组进行排序 排序规则从大到小,排序算法为选择排序 分别利用char数组和int数组进行测试 #include <iostream& ...

  4. 简单问题:sizeof(char型数组)为数组大小,而不是4, 为什么? 100!

    转载自:http://topic.csdn.net/t/20030701/23/1979882.html char   A[10];  int   len   =   sizeof(A);  len的 ...

  5. c语言char数组和short数组的区别,详解C语言中Char型指针数组与字符数组的区别

    详解C语言中Char型指针数组与字符数组的区别 详解C语言中Char型指针数组与字符数组的区别 1.char 类型的指针数组:每个元素都指向一个字符串,指向可以改变 char *name[3] = { ...

  6. 【C 语言】指针 与 数组 ( 指针 | 数组 | 指针运算 | 数组访问方式 | 字符串 | 指针数组 | 数组指针 | 多维数组 | 多维指针 | 数组参数 | 函数指针 | 复杂指针解读)

    相关文章链接 : 1.[嵌入式开发]C语言 指针数组 多维数组 2.[嵌入式开发]C语言 命令行参数 函数指针 gdb调试 3.[嵌入式开发]C语言 结构体相关 的 函数 指针 数组 4.[嵌入式开发 ...

  7. 一维数组,二维数组,三维数组,数组与指针,结构体数组,通过改变指针类型改变访问数组的方式

     打印数组中的每个元素,打印每个元素的地址: #include <stdio.h> #include <stdlib.h> void main(void) { int a[ ...

  8. 静态数组和动态数组 内存分布

    数组是程序设计中是一个非常重要的概念.数组是一个用于收集大量类似数据的容器, 以及其每一个元素能被相同处理过程迭代来处理的一个抽象体. 创建数组一般有三种方式:全局/静态范围的数组,局部变量数组,申请 ...

  9. C语言学习笔记09-数组、字符数组、字符串数组、二维数组(单字符输入输出putchar、getchar,字符串输入输出的scanf、gets、puts)

    C语言数组   数组作用:可以用来保存很多记录(可以看成一种大容器).一些简单游戏也基本由数组实现,如游戏地图(二维数组)等等.   一个数组 划分 多个单元(下标区分) -存放-> 多个同类元 ...

最新文章

  1. python 比较两个yaml文件
  2. 前后端分离模式下的权限设计方案
  3. 1127: 第三章:再见,林静!
  4. arm-linux启动,linux启动流程arm
  5. Python开发人员最喜欢的工具
  6. 14亿人参与,共建台湾省实景地图!
  7. Qt教程(新手入门级)
  8. 精选免费论文翻译工具
  9. 前端使用Echart实现动态图表
  10. vue项目首屏加载优化
  11. h5应用数据加密_H5+应用打包JS没有加密混淆
  12. Revit 二次开发 获取多段轴网的location
  13. mysql 死锁问题 Lock wait timeout exceeded; try restarting transaction
  14. mysql分组排序后加序号
  15. 计算机硬盘错误怎么办,电脑维修:开机遇到Windows硬盘错误画面时,该怎么做?...
  16. MCC 移动设备国家代码 (Mobile country code) 概述 MCC 国家/地区代码 注释 概述 移动设备国家代码 ( Mobile country code / MCC ) 定义于国际
  17. C#利用Chart工具绘制SinCos曲线
  18. 视频教程-javascript/jquery全过程详解-Java
  19. Android Selinux 权限配置
  20. 宽屏企业网站源码中英php_Lankecms蓝科中英文双语企业网站系统PHP版V2.0,PHP伪静态html宽屏LED照明公司模板外贸黑色...

热门文章

  1. android中的计步问题及计步传感器分析
  2. 【python脚本】-刷CSDN博客流量
  3. sublime中实现中停止运行
  4. 基于SSM的汽车租赁后台管理系统【完整项目源码】
  5. 范数对于数学的意义?1范数、2范数、无穷范数
  6. html中<button>按钮标签详细介绍
  7. orgChart的应用
  8. A Glance at Secure Multiparty Computation for Privacy Preserving Data Mining论文总结
  9. 中国移动定制机或给华为手机一条出路,同时迫使5G手机降价
  10. [ md ] md语法