windows下wchar_t的问题】的更多相关文章

说道wchar_t和char两个类型大家都不会陌生 wchar_t:在windows下是Unicode 16编码,也就是俗称宽字节 char:当然就是指一个字节,在windows下面默认是gbk编码的 所以在windows 下 wchar_t 转 char也就是编码转化 直接贴出wchar_t *字符串和char *字符串的集中互转方法 方法一:利用Windows的宏W2A,A2W USES_CONVERSION; char* test1 = W2A(L"我是宽字节");//转化成默认…
这个在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 ca…
使用vs新建工程或者编译工程的时候默认在编译设置里面讲wchar_t设置为内置类型,如下图: 但是在编译相互依赖的工程的时候,如果有的工程不将wchar_t设置为内置类型的时候,将会出现链接错误,需要保证所有的工程在wchar_t的设置上保持一致,这样才不会出现链接错误. Qt4采用的wchar_t不是内置类型,在Qt5中wchar_t是内置类型,这样在依赖Qt的项目进行Qt4->Qt5升级的时候,可能涉及到这样的问题,需要对wchar_t做一致性处理. 在编译的时候可以设置编译的选项cxxfl…
接前一篇C++ ABI之名字改编(以Qt为例),继续看看C++名字改编相关的问题. 问题 MSVC 有一对选项/Zc:wchar_t- 与 /Zc:wchar_t控制wchar_t 于是 wchar_t 可以是 unsigned short 或 __wchar_t(称为原生类型?) 的别名 两个东西混用会怎么样? 首先考虑,会混用么?,是杞人忧天么? 由于 Qt 为 MSVC 提供的二进制包采用的前者/Zc:wchar_t-.考虑: 如果你编译自己的Qt程序时,启用了后者,会怎么样? 如果Qt程…
Windows 下字节转换 #include <string> #include <windows.h> class CharsConversion { public: static bool MultiByte2UTF8( const std::string&, std::string& ); static bool UTF82MultiByte( const std::string&, std::string& ); static bool Mu…
一两个月前为产品写了一个独立的exe,由于产品使用的捕获dump是一个现成的进程外exe,如果以资源的方式集成它容易出现安全警告,由于时间关系没有寻求新的解决方法,还是遵循旧方案,不捕获dump. 最近业余看了会儿breakpad client,想到一个解决方案——其实也蛮简单的,最后exe大概会增加200多KB.下边从头分析. 有这样一种需求,希望一个进程启动之后,有另一个进程来“守护”它,当它发生crash时,能生成dump,然后把它重启:还有一个要求,“守护”进程跟工作进程必须是在同一个物…
     一般要捕获异常只需要两个函数:SetUnhandledExceptionFilter截获异常:MiniDumpWriteDump写dump文件.但是由于CRT函数可能会在内部调用SetUnhandledExceptionFilter(NULL),解除我们程序设置的异常处理,这导致我们的程序无法完整捕获崩溃.另外,还有一部分非异常的CRT错误,不属于SEH异常捕获的范畴,需要通过_set_invalid_parameter_handler._set_purecall_handler拦截,…
由于在windows下的QT编程中,如果涉及到使用微软的API,那么不可避免使用_TCHAR这些类型,因此在网上查了一下,其中一个老外的论坛有人给出了这个转换,因此在这里做一下笔记 : )#ifdef UNICODE #define QStringToTCHAR(x)     (wchar_t*) x.utf16() #define PQStringToTCHAR(x)    (wchar_t*) x->utf16() #define TCHARToQString(x)     QString:…
第二章.Windows 下 ShellCode 编写初步 (一)shellcode 定义:最先的 Shell 指的是人机交互界面,ShellCode 是一组能完成我们想要的功能的机器代码,通常以十六进制数组的形式存在 NOTES:计算机每次都只是执行当前 EIP 指向的指令(单 CPU).在当前指令执行后,EIP 会自动加 1,从而指向下一条指令.如果有 JMP CALL RET 一类的指令,EIP 就会被强行改变成指定的地址,从而完成流程的跳转 (二)打开控制台窗口的 C 程序 升级版: 程序…
准备 Windows下使用VS2015进行编译,需要使用cmake构建版本.(如果有cygwin,在其中执行VS的vcvarsall.bat后使用"CC=cl ./autogen.sh"命令生成Makefile后编译也是可以的) 下载源码 git clone https://github.com/jemalloc/jemalloc-cmake.git 请确保已经安装好cmake工具. 还可以下载一个专门为win32修改的版本,支持VC6编译. git clone https://git…