LPCTSTR LPCWSTR LPCSTR 含义】的更多相关文章

#ifdef UNICODE#define LPCTSTR LPCWSTR#else#define LPCTSTR LPCSTR#endif      LPCTSTR A 32-bit pointer to a constant character string that is portable for Unicode and DBCS. An LPCWSTR if UNICODE is defined, an LPCSTR otherwise.LPCWSTR Pointer to a cons…
DWORD:本来被定义为unsigned long,DWORD的含义就是双字,一个字是2字节,双字就是32字节. 但是在C/C++中,经常会用到把一个指针转换成数字储存,然后再将其传唤为指针调用.那么在32位系统下,指针是32位长度的,在64位系统下,指针是64位长度的,所以微软引入了DWORD_PTR和INT_PTR等带_PTR的类型,这些类型是这么保证的:将指针转换成带_PTR的类型然后再转换回来,可以得到原始的指针,不会发生截断.在实现上,DWORD_PTR在32位程序和64位程序的定义是…
首先在编译程序时经常会遇到这种问题: 错误 1 error C2664: "CWnd::MessageBoxW": 不能将参数 1 从"const char [3]"转换为"LPCTSTR" 1.觉得很烦,一般的做法就是不管三七二十一,在字符串前面加一个'L':如调用函数FUN(LPCTSTR str)时,不能  FUN("HELLO"); 而是FUN(L"HELLO");通常这样做都比较能解决问题.2.或…
UNICODE:它是用两个字节表示一个字符的方法.比如字符'A'在ASCII下面是一个字符,可'A'在UNICODE下面是两个字符,高字符用0填充,而且汉字'程'在ASCII下面是两个字节,而在UNICODE下仍旧是两个字节.UNICODE的用处就是定长表示世界文字,据统计,用两个字节可以编码现存的所有文字而没有二义. MBCS,它是多字节字符集,它是不定长表示世界文字的编码.MBCS表示英文字母时就和ASCII一样(这也是我们容易把MBCS和ASCII搞混的原因),但表示其他文字时就需要用多字…
标签: 杂谈 分类: VC     char*   是指向ANSI字符数组的指针,其中每个字符占据8位(有效数据是除掉最高位的其他7位),这里保持了与传统的C,C++的兼容.        LP的含义是长指针(long   pointer).LPSTR是一个指向以‘’结尾的ANSI字符数组的指针,与char*可以互换使用,在win32中较多地使用LPSTR.而LPCSTR中增加的‘C’的含义是“CONSTANT”(常量),表明这种数据类型的实例不能被使用它的API函数改变,除此之外,它与LPST…
UNICODE:它是用两个字节表示一个字符的方法.比如字符'A'在ASCII下面是一个字符,可'A'在UNICODE下面是两个字符,高字符用0填充,而且汉字'程'在ASCII下面是两个字节,而在UNICODE下仍旧是两个字节.UNICODE的用处就是定长表示世界文字,据统计,用两个字节可以编码现存的所有文字而没有二义. MBCS,它是多字节字符集,它是不定长表示世界文字的编码.MBCS表示英文字母时就和ASCII一样(这也是我们容易把MBCS和ASCII搞混的原因),但表示其他文字时就需要用多字…
转自:http://blog.sina.com.cn/s/blog_4aa4593d0100odra.html 问题的原因是字符串ANSI和Unicode编码的区别, VC6与VS2003等默认使用ANSI编码,而VS2005默认采用Unicode.简单的说,ANSI用1个字节表示字符,Unicode用2个字节表示1个字符.若想要你的代码在VS2005中编译通过,3中方法:1.可修改编码选项:项目属性-->配置属性-->常规-->字符集-->使用多字节字符集2.把你字符串定义为宽字…
LPCWSTR tmp = L"xxx"; char*转到LPCWSTR LPCSTR(charTmp)…
CString ,BSTR ,LPCTSTR之间关系和区别 CString是一个动态TCHAR数组,BSTR是一种专有格式的字符串(需要用系统提供的函数来操纵,LPCTSTR只是一个常量的TCHAR指针. CString 是一个完全独立的类,动态的TCHAR数组,封装了 + 等操作符和字符串操作方法. typedef OLECHAR FAR* BSTR; typedef const char * LPCTSTR; vc++中各种字符串的表示法 首先char* 是指向ANSI字符数组的指针,其中每…
vc字符串转换处理:(绝对精华,收集所有的例子) 1.头文件中要定义宏;   #define   UNICODE         #define   _UNICODE     //////////////////// char   buf[128];    memset(buf,0,128);     strcpy(buf,"你好");     WCHAR   pCName[128];     memset(pCName,0,128);     MultiByteToWideChar(…
vc++中各种字符串(转载) http://www.cnblogs.com/tomin/archive/2008/12/28/1364097.html CString ,BSTR ,LPCTSTR之间关系和区别 CString是一个动态TCHAR数组,BSTR是一种专有格式的字符串(需要用系统提供的函数来操纵,LPCTSTR只是一个常 量的TCHAR指针. CString 是一个完全独立的类,动态的TCHAR数组,封装了 + 等操作符和字符串操作方法.typedef OLECHAR FAR* B…
API HOOK,就是截获API调用的技术,在程序对一个API调用之前先执行你的函数,然后根据你的需要可以执行缺省的API调用或者进行其他处理,假设如果想截获一个进程对网络的访问,一般是几个socket API : recv,recvfrom, send, sendto等等,当然你可以用网络抓包工具,这里只介绍通过API HOOK的方式来实现, 主要原理是在程序运行中动态修改目标函数地址的内存数据,使用jmp语句跳转到你的函数地址,执行完后再恢复内存数据, 汇编代码是: mov eax, pNe…
2.是关于如何加载dll或lib库的.可以看这篇bog   Qt调用dll中的功能函数点击打开链接 **************************************************************************************************************************************************** 声明: 事先我已经自己动手写了一个简单的dll文件(myDLL.dll),C版接口的.并且用我前两篇有…
//QString to wchar_t *: const wchar_t * encodedName = reinterpret_cast<const wchar_t *>(fileName.utf16()); //QString to char * given a file name: QByteArray fileName = QFile::encodeName(aFileName); const char * encodedName = fileName.constData(); //…
VC++中的字符串用起来着实让人难受,LPTSTR.LPCTSTR.LPCSTR.LPCWSTR.LPSTR.WCHAR.CString._T()和L彼此之间的互相转换更是头痛.根据使用经验和MSDN Libary文档总结出如下: 1.CString类型字符串 CString位于头文件afx.h中,是MFC中的一种字符串类型的类.此处解释CString与LPSTR.LPCSTR相互转换问题. 注:typedef char CHAR;  typedef CHAR* LPSTR;  typedef…
多字节字符与宽字节字符 1) char与wchar_t 我们知道C++基本数据类型中表示字符的有两种:char.wchar_t. char叫多字节字符,一个char占一个字节,之所以叫多字节字符是因为它表示一个字时可能是一个字节也可能是多个字节.一个英文字符(如’s’)用一个char(一个字节)表示,一个中文汉字(如’中’)用3个char(三个字节)表示,看下面的例子. void TestChar() { char ch1 = 's'; // 正确 cout << "ch1:&quo…
在头文件<atlconv.h>中定义了ATL提供的所有转换宏,如: A2CW (LPCSTR) -> (LPCWSTR) A2W     (LPCSTR) -> (LPWSTR) W2CA  (LPCWSTR) -> (LPCSTR) W2A  (LPCWSTR) -> (LPSTR) 所有的宏如下表所示:  A2BSTR OLE2A T2A W2A A2COLE OLE2BSTR T2BSTR W2BSTR A2CT OLE2CA T2CA W2CA A2CW OLE…
一.播放声音文件的简单方法 在VC++ 中的多媒体动态连接库中提供了一组与音频设备有关的函数.利用这些函数可以方便地播放声音.最简单的播放声音方法就是直接调用VC++中提供的声音播放函 数BOOL sndPlaySound ( LPCSTR lpszSound,UINT fuSound ); 或BOOL PlaySound( LPCSTR lpszSound, HMODULE hmod, DWORD fuSound );其中参数lpszSound是需要播放声音的.WAV文件的路径和文件名, hm…
醉了,windows下宏定义了很多char类型 LPTSTR .今天,直接使用,qt报错,真TM费事. 将“CPU”转化为wcha_t * QString str = "CPU"; const wchar_t * str_cpu = reinterpret_cast<const wchar_t *>(str.utf16());//char * 转换为 wchar_t * 类型 下面这篇blog很好 QT QString, wchar_t *, TCHAR, CString和…
C#  VS C++ C#代码遇见了非托管dll如何处理 问题:托管与非托管,兼容? 方法一:DllImport 托管调试助手 "PInvokeStackImbalance" Message=托管调试助手 "PInvokeStackImbalance":"对 PInvoke 函数"XXXX_Pub_Test!XXXX_Pub_Test.XxxxClient_temp::xxxxclient_config_init"的调用导致堆栈不对称.…
API Hook ApiHook又叫做API劫持,也就是如果A程序调用了B.cll里面的C函数,我们可以做到当A调用C函数执行的时候,直接执行我们自己事先准备好的函数,之后我们在执行真正的C,当然我们可以不执行C或者更改C的参数等等,实现的核心思路就是: mov eax, pNewAddr[/size][size=3] jmp eax 解释下具体原理:我们首先获取要劫持函数的地址,然后我们在自己组装一个数据结构,数据结构的内容是 执行汇编:把新函数地址拷到寄存器里,然后再jmp到新函数地址位置执…
概述 VC++是微软公司开发的一个IDE(集成开发环境),换句话说,就是使用c++的一个开发平台.有些软件就是这个编出来的...另外还有VB,VF.只是使用不同语言...但是,VC++是Windows平台上的C++编程环境,学习VC要了解很多Windows平台的特性并且还要掌握MFC.ATL.COM等的知识,难度比较大.Windows下编程需要了解Windows的消息机制以及回调(callback)函数的原理:MFC是Win32API的包装类,需要理解文档视图类的结构,窗口类的结构,消息流向等等…
简介 添加注册表项是实现文件自启动的经典方法之一,但因为操作注册表项是一个敏感操作,被报毒可能性较大,但即便如此,这个方法还是值得一学的,因为后期大部分编程都涉及到注册表操作. 最常使用到的注册表项有两项: "HKEY_CURRENT_USER\Software\Microsoft\WindowsNT\CurrentVersion\Windows"将"load"键下的键值改为自启动目标文件路径,但缺点在于只能支持一个程序: "HKEY_LOCAL_MACH…
总结一下基本的注入过程,分注入和卸载 注入Dll: 1,OpenProcess获得要注入进程的句柄 2,VirtualAllocEx在远程进程中开辟出一段内存,长度为strlen(dllname)+1; 3,WriteProcessMemory将Dll的名字写入第二步开辟出的内存中. 4,CreateRemoteThread将LoadLibraryA作为线程函数,参数为Dll的名称,创建新线程 5,CloseHandle关闭线程句柄 卸载Dll: 1,CreateRemoteThread将Get…
记住新建项目后,要配置OpenCV环境!参考链接http://blog.csdn.net/zy122121cs/article/details/49180541 做工程搭建框架什么的,基本的要熟练啊.    其中借鉴了ww老师的代码~ 新建项目,命名: 点确定,然后,我习惯用基于对话框的:然后点击完成. 从工具箱拖几个控件出来:    Combo Box组合框属性设置: 给图片随便命名个ID,再选择类型Frame: 如右图所示,框架就搭好了:   在Test01Dlg.h头文件中添加如下: //…
1. Unicode字符集: 它是用两个字节表示一个字符的方法.比如字符'A'在ASCII下面是一个字符,可'A'在UNICODE下面是两个字符,高字符用0填充,而且汉字'程'在ASCII下面是两个字节,而在UNICODE下仍旧是两个字节.UNICODE的用处就是定长表示世界文字,据统计,用两个字节可以编码现存的所有文字而没有二义. 2. MCBS字符集: 即多字节字符集,它是不定长表示世界文字的编码.MBCS表示英文字母时就和ASCII一样(这也是我们容易把MBCS和ASCII搞混的原因),但…
引用 LPSTR.LPCSTR.LPTSTR.LPCTSTR.LPWSTR及LPCWSTR的意义及区别 1.ANSI(即MBCS):为多字节字符集,它是不定长表示世界文字的编码方式.ANSI表示英文字母时就和ASCII一样,但表示其他文字时就需要用多字节. 2.Unicode:用两个字节表示一个字符的编码方式.比如字符'A'在ASCII下面用一个字节表示,而在Unicode下面用两个字节表示,其中高字节用“0”填充:函数'程'在ASCII下面用两个字节表示,而在Unicode下面也是用两个字节表…
        类   型     MBCS  UNICODE TCHAR char char WCHAR wchar_t wchar_t LPSTR char* char* LPCSTR const char* const char* LPWSTR wchar_t* wchar_t* LPCWSTR const wchar_t* const wchar_t* LPTSTR TCHAR* TCHAR* LPCTSTR const TCHAR* const TCHAR*             相…
1.ANSI(即MBCS):为多字节字符集,它是不定长表示世界文字的编码方式.ANSI表示英文字母时就和ASCII一样,但表示其他文字时就需要用多字节.   2.Unicode:用两个字节表示一个字符的编码方式.比如字符'A'在ASCII下面用一个字节表示,而在Unicode下面用两个字节表示,其中高字节用“0”填充:函数'程'在ASCII下面用两个字节表示,而在Unicode下面也是用两个字节表示.Unicode的用处就是定长表示世界文字,据统计,用两个字节可以编码现存的所有文字而没有二义.…
LPSTR   一个32位的指向字符串的指针    LPCSTR   一个32位的指向字符串常量的指针    LPWSTR   一个32位的指向unicode字符串的指针    LPCWSTR   个32位的指向unicode字符串常量的指针 前面的L代表LONG,P就是指针的意思,C就是constant的意思,W是wide的意思,STR就是string的意思 LPSTR = char *LPCSTR = const char *LPWSTR = wchar_t *LPCWSTR = const…