windows下wchar_t* 转char*
这个在windows下很常见,常用,留个档。
一般用这个函数:
size_t wcstombs(
char *mbstr,
const wchar_t *wcstr,
size_t count
); mbstr
The address of a sequence of multibyte characters.
wcstr
The address of a sequence of wide characters.
count
The maximum number of bytes that can be stored in the multibyte output string.
locale
The locale to use.
下面是我写的一个测试,是根据项目改过来的:
#include <windows.h>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <boost/filesystem.hpp> namespace bfs = boost::filesystem; bool get_path(char *file_name,size_t size){ char ownPth[MAX_PATH]; HMODULE hModule = GetModuleHandle(NULL); // Will contain exe path,When passing NULL to GetModuleHandle, it returns handle of exe itself
if (hModule != NULL)
{
GetModuleFileNameA(hModule,ownPth, MAX_PATH); //
}
else
ownPth[]=; bfs::path iic_file(ownPth);
iic_file = iic_file.parent_path() / "dlp_usb.iic" ; //For releaseing if( !bfs::is_regular_file(iic_file))
{
printf("\r\nError,open 68013 iic file fail\r\n");
return false ;
} wcstombs(file_name,iic_file.c_str(),size); //memcpy(file_name,iic_file.c_str(),byte_count); return true; } int main(){ char iic_file[]; if(get_path( iic_file,)){ printf("TRUE\n");
} return ;
}
references:
http://msdn.microsoft.com/en-us/library/5d7tc9zw.aspx
http://blog.163.com/tianshi_17th/blog/static/4856418920085209414977/
windows下wchar_t* 转char*的更多相关文章
- C++ WINDOWS下 wchar_t *和char * 相互转化总结篇
说道wchar_t和char两个类型大家都不会陌生 wchar_t:在windows下是Unicode 16编码,也就是俗称宽字节 char:当然就是指一个字节,在windows下面默认是gbk编码的 ...
- windows下wchar_t的问题
使用vs新建工程或者编译工程的时候默认在编译设置里面讲wchar_t设置为内置类型,如下图: 但是在编译相互依赖的工程的时候,如果有的工程不将wchar_t设置为内置类型的时候,将会出现链接错误,需要 ...
- wchar_t是内置还是别名(亲测有效:wchar_t在windows下是16位整数的别名,在linux等平台下是32位整数的别名。MSVC2008开始默认是/Zc:wchar_t)
接前一篇C++ ABI之名字改编(以Qt为例),继续看看C++名字改编相关的问题. 问题 MSVC 有一对选项/Zc:wchar_t- 与 /Zc:wchar_t控制wchar_t 于是 wchar_ ...
- 【404】int main(int argc,char * argv[]) windows 下的使用
参考:int main(int argc,char * argv[]) windows 下的使用 参考:Theprogram can't start because libgcc_s_dw2-1.dl ...
- char 转wchar_t 及wchar_t转char
利用WideCharToMultiByte函数来转换,该函数映射一个unicode字符串到一个多字节字符串.通常适合于window平台上使用. #include <tchar.h> #in ...
- windows下捕获dump
一般要捕获异常只需要两个函数:SetUnhandledExceptionFilter截获异常:MiniDumpWriteDump写dump文件.但是由于CRT函数可能会在内部调用SetUnh ...
- CString向char类型转化 ---“=”: 无法从“wchar_t *”转换为“char *
此文从网上复制过来,原文出处已丢失,望见谅哈 VC 2005中,这个本来很简单的问题又稍微复杂了一点. 在工程里面,一个必不可少的步骤就是把CString转换为shar*字符串.通过 ...
- 二、Windows 下 ShellCode 编写初步
第二章.Windows 下 ShellCode 编写初步 (一)shellcode 定义:最先的 Shell 指的是人机交互界面,ShellCode 是一组能完成我们想要的功能的机器代码,通常以十六进 ...
- windows下 jemalloc编译
准备 Windows下使用VS2015进行编译,需要使用cmake构建版本.(如果有cygwin,在其中执行VS的vcvarsall.bat后使用"CC=cl ./autogen.sh&qu ...
随机推荐
- IComparer<T> 接口Linq比较接口
IComparer<T>比较两个对象并返回一个值,指示一个对象是小于.等于还是大于另一个对象. 在Linq当中,很多扩展方法接受一个实现IComparer<T>接口的实例的对象 ...
- SeekBar.OnSeekBarChangeListener解析
public static interface SeekBar.OnSeekBarChangeListener android.widget.SeekBar.OnSeekBarChangeListen ...
- [poj 1364]King[差分约束详解(续篇)][超级源点][SPFA][Bellman-Ford]
题意 有n个数的序列, 下标为[1.. N ], 限制条件为: 下标从 si 到 si+ni 的项求和 < 或 > ki. 一共有m个限制条件. 问是否存在满足条件的序列. 思路 转化为差 ...
- ZOJ3765---Lights (Splay伸展树)
Lights Time Limit: 8 Seconds Memory Limit: 131072 KB Now you have N lights in a line. Don't wor ...
- (转载)iOS Framework: Introducing MKNetworkKit
This article is available in Serbo-Croatian, Japanese and German. (Translations in Serbo-Croatian b ...
- kafka-分布式消息系统
消息中间件MessageQuene 解耦且可扩展:业务复杂度的提升带来的也是耦合度的提高,消息队列在处理过程中间插入了一个隐含的.基于数据的接口层,两边的处理过程都要实现这一接口.这允许你独立的扩展或 ...
- windows系统还原
windows系统还原 windows 系统还原有两种方法: 方法一.开始-控制面板-系统和安全-备份和还原 (或者开始—所有程序—附件—系统工具—系统还原) 详细请看下面的截图说明 方法二.开机的时 ...
- ASP.Net MVC概念及基本
1.1概念 MVC是一种软件设计模式,即:Model(模型).View(视图).Controller(控制器) .其主要设计目标是将用户接口和逻辑层相分离,以便开发人员更好的关注逻辑层的设计和测试, ...
- 自定义VS的ItemTemplates 实现任意文件结构
上一篇说到重写IHttpHandler实现前后端分离,这次说一下如何建立一个如下文件结构. VS建立webform时是根据模板来的.C#的模板目录如下: F:\Program Files (x86)\ ...
- vi 快捷键【转】【weber整理必出精品】
光标的移动 命令 光标移动 h或^h 向左移一个字符 j或^j或^n 向下移一行 k或^p 向上移一行 l或空格 向右移一个字符 G 移到文件的最后一行 nG 移到文件的第n行 w 移到下一个字的开头 ...