USES_CONVERSION的使用和注意】的更多相关文章

转自:http://blog.csdn.net/p40614021/article/details/6778100 ATL:转换宏是各种字符编码之间进行转换的一种很方便的方式,在函数调用时,它们显得非常有用.ATL转换宏的名称是根据下面的模式来命名的[源类型]2[新类型]或者[源类型]2C[新类型].据有第二种形式的名字的宏的转换结果是常量指针(对应名字中的"C"). 为了使用这些宏,需要先包含atlconv.h头文件.你甚至可以在非ATL工程中包含这个头文件来使用其中定义的宏,因为这…
USES_CONVERSION是用来转换类型的,比如我们很常见的问题: 在Socket编程时候,我们的IP地址从界面上输进去一般都使用CString类型的,可是在SOCKADDR_IN中的inet_addr却是const char *我们就不能直接用CString来用.我们就可以使用T2A()宏了. SOCKADDR_IN localaddr; CString m_IP = L"192.168.1.2"; USES_CONVERSION;    localaddr.sin_family…
1.A2W和W2A 在<Window核心编程>,多字节和宽字节之间转换比较麻烦的,MultiByteToWideChar函数和WideCharToMultiByte函数有足够多的参数的意义让我们去理解.那么使用ATL的一个很好的字符串的转换宏:A2W和W2A. (1)A2W的用法: USES_CONVERSION; CString tmpStr; char*LineChar="fdsfdsa"; const WCHAR * cLineChar = A2W(LineChar)…
UniCode 下 CString 转 char* 的方法的文章有很多,但是大部分都是在互相转载,看了那么多资料,仍然没有解决乱码的问题,后来从一个论坛的一条回复里面找到了正确的方法,特此拿出来与大家分享. 先总结一下网上找到的三种转换的方法: 方法一:使用函数setlocale setlocale(LC_ALL,"chs"); 需要包含头文件#include<locale.h> 此方法的思路是配置地域化信息.通常在需要输入输出中文的时候设置一下,就没问题了,setloca…
如题,找了半天... //CString转string USES_CONVERSION; CString temp; temp = _T("kjdsaflkjdlfkj"); char* s_char = W2A(temp); string ss = s_char;…
1:  用 CString  如果没有mfc 可以用 ATL 中的 CString  #include <atlstr.h>     CStringA v1 = "111";     CStringW v2 = "222";     v2 = v1; 2  :  #include <string> std::string ws2s(const std::wstring& ws) { std::string curLocale = se…
//CString m_str = _T("11"); //USES_CONVERSION; //char *m_cc = T2A(m_str); //BYTE m_bb; //sscanf_s(m_cc, "%02X", &m_bb); 这样,m_bb就是十六进制数据了…
COM技术内幕(笔记) COM--到底是什么?--COM标准的要点介绍,它被设计用来解决什么问题?基本元素的定义--COM术语以及这些术语的含义.使用和处理COM对象--如何创建.使用和销毁COM对象.基本接口--描述IUnknown基本接口及其方法. 掌握串的处理--在COM代码中如何处理串.应用COM技术--例子代码,举例说明本文所讨论的所有概念. 处理HRESULT--HRESULT类型描述,如何监测错误及成功代码.COM--到底是什么? 简单地说,COM是一种跨应用和语言共享二进制代码的…
原文出处:Browser Helper Objects: The Browser the Way You Want It一.简介 有时,你可能需要一个定制版本的浏览器.在这种情况下,你可以自由地把一些新颖但又不标准的特征增加到一个浏览器上.结果,你最终有的只是一个新但不标准的浏览器.Web浏览器控件只是浏览器的分析引擎.这意味着仍然存在若干的与用户接口相关的工作等待你做――增加一个地址栏,工具栏,历史记录,状态栏,频道栏和收藏夹等.如此,要产生一个定制的浏览器,你可以进行两种类型的编程――一种象…
1.现象    最近项目中调出一个bug,某些时候程序会卡死不动,用windbg进行加载后用 ~*kb 命令列出所有的线程栈调用,发现有多个线程调用 WaitForMultipleObjects 在等待同一个内核对象:    输入 !handle cc f 命令列出该内核对象的详细信息:    发现是是一个Mutex对象,对象名是 Mutex_DebugMsg2 ,查找代码知道这个Mutex是用写log时锁定文件写入用的.代码如下: BOOL CDebugMsg::WriteLogA(LPSTR…
通过前一篇文章<C++中string,wstring,CString的基本概念和用法>,对Cstring.wstring 和string有了一个了解.string是C++提供的标准字符串操作类.wstring是操作宽字符串的类..CString是对string(字符串)和wstring(宽字符串)的一个封装,常用在mfc中,用来解决编码问题的.在编程过程中,经常会遇到Cstring.wstring 和string之间的相互转换,在这里做了个简单地总结,另外也会附上其他类型的转换.常见的转换方式…
在以前VC++6.0中默认的字符集是多字节字符集(MBCS:Multi-Byte Character Set),而VS2005及以后默认的字符集是Unicode,这样导致以前在VC6.0中非常简单实用的各类字符操作和函数在VS2010环境下运行时会报各种各样的错误. 字符集可以通过工程属性修改:“工程-属性-字符集”. CString在Unicode和多字节字符集下的区别:CString 是基于 TCHAR 数据类型的.如果为程序的生成定义了符号 _UNICODE,则会将 TCHAR 定义为 w…
实现原理: 1.后台开线程遍历目录,遍历出一个文件路径在界面上更新显示(通过发消息通知主界面) 2.需要扩展一下Duilib控件,在此我扩展了CLabelUI,重写了PaintText函数 扩展控件的.h文件 /************************************************************************************************* * * File Name : UILabelEx.h * * Created : 2016…
LL(1)分析法实验的mfc做到最后因为CString转化为string的问题卡了一个多小时,也是惨,网上各种方法找过都不行.幸亏最后还是找到几行代码搞定了.特此mark一下. USES_CONVERSION; char* s_char = W2A(m_in); inString = s_char;…
有比MultiByteToWideChar和WideCharToMultiByte更简单的字符串转换宏,你相信吗?头文件 d:\program files\microsoft visual studio 8\vc\atlmfc\include\atlconv.h如果要使用ATL字符串转换宏,请先定义 USES_CONVERSION;  // 只需要调用一次,就可以在函数中进行多次转换 下面一个例子: USES_CONVERSION; // 只需要调用一次,就可以在函数中进行多次转换 ] = "c…
50行代码实现的一个最简单的基于 DirectShow 的视频播放器 本文介绍一个最简单的基于 DirectShow 的视频播放器.该播放器对于初学者来说是十分有用的,它包含了使用 DirectShow 播放视频所有必备的函数. 直接贴上代码,具体代码的含义都写在注释中了: /* 雷霄骅 * 中国传媒大学/数字电视技术 * leixiaohua1020@126.com * */ // aviplayer.cpp : 定义控制台应用程序的入口点. #include "stdafx.h"…
1.MFC下调用控制台 在CWinApp的InitInstance中对话框的DoModal之前加入 AllocConsole(); // 开辟控制台 SetConsoleTitle(_T("测试窗口")); // 设置控制台窗口标题 freopen("CONOUT$","w",stdout); // 重定向输出 freopen( "CONIN$", "r+t", stdin ); // 申请读 在CWinA…
上一次我们实现了把我们要的图片添加到CTreeCtrl控件里去,并显示图片的缩略图,现在开始我们要讲比较重要的部分--绘图区.为了实现能编辑图片的功能,绘图区应该具有如下功能. 1.  添加删除图片. 2.  放大缩小绘图区. 3.  选中一张图片,移动一张图片. 4.  绘制图片 5.  给图片添加点击事件 为了更好的实现这些功能,我模仿了cocos2d的内存管理机制以及节点结构,写了一个静态库VALib,它使用GID+渲染图片,以及实现观察者模式来监听鼠标事件.源码可一从这里下载.当然,你也…
I/O完成端口原理见上一篇(可点击这里) 10.5.4.4 利用I/O完成端口实现Socket通信 (1)Accept和AcceptEx流程的比较 ①采用accept方式的流程示意图如下(普通的阻塞函数) ②采用AcceptEx方式的流程示意图如下(可工作在阻塞或非阻塞方式). [注意]:AcceptEx与Accept的不同 ①AcceptEx是在客户端连入之前,就把客户端的Socket建立好了.也就是说,AcceptEx是先建立的Socket,然后才发出的AcceptEx调用.即在进行客户端的…
win32 int main(){ //001e1000 ::MessageBox(NULL, TEXT("111"), TEXT("222"), 0); HMODULE vHmodule = GetModuleHandle(NULL); printf("vHmodule = 0x%08X\n", vHmodule); IMAGE_DOS_HEADER *vImageDosHeader = (IMAGE_DOS_HEADER *)vHmodule…
这两天想做一下windows系统下图标的修改,让程序有更新的时候能够更新图标的外观,达到提醒的作用,360,QQ经常采用这种方式进行更新的提示,也有采用弹框的方式来提示,用新版QVOD的同事可能见到过类似的.废话不说,我的思路是: (1)检测程序更新 (2)检测windows桌面图标中是够含有需要的,如果没有则需要创建,如果有则准备更新图标 (3)根据跟新的内容,程序自己创建新的图像,修改快捷方式的图标 这种方法需要开机之后,存在一个系统进程来检测这种更新,360就是这样干的~~还有一个弊端是程…
前言 本文并不尝试列举出所有的转换方法,只列举作者认为方便易用的方法. 1.char*和wchar_t*的相互转换 可以利用中间类_bstr_t(头文件comdef.h)方便的进行相互转换 const wchar_t* wText = (_bstr_t)"测试"; char* cText = (_bstr_t)L"测试"; 可以通过A2T,A2W,T2A,T2W等宏来进行转换 char* cText = "测试"; USES_CONVERSION…
首先mfc下字符串只有两种数据:char(一个字节)和wchar_t(两个字节),很多其他数据类型如TCHAR,WCHAR等都是这个两个基本类型的宏定义,BYTE是uchar 1.对话框打印char* char* info=""; ::MessageBoxA(this->m_hWnd, info, "", MB_OK); 2.CString转char* int nLen; char * wsabuf = NULL; USES_CONVERSION; wsabu…
转载:http://www.cnblogs.com/renyuan/archive/2012/12/29/2838716.html 转载:http://blog.csdn.net/jhqin/article/details/5548656 转载:http://blog.csdn.net/dongdan_002/article/details/42460343 头文件WMIInfo.h /*******************************************************…
目录 第1章同步TCP通讯    1 1.1 同步通讯与异步通讯    1 1.2 同步通讯类    1 1.3 同步TCP通讯客户端    4 1.3.1 界面    4 1.3.2 界面类声明    4 1.3.3 界面类构造函数    5 1.3.4 连接服务器    5 1.3.5 写数据    6 1.3.6 读数据    6 1.3.7 断开连接    7 1.4 同步TCP通讯服务端    7 1.4.1 界面    7 1.4.2 界面类声明    8 1.4.3 CSocket…
目录 第1章 VC++6.0创建    2 1.1 目标    2 1.2 创建项目    2 1.3 增加COM类    4 1.4 属性    7 1.5 事件    8 1.6 实现连接点    9 1.7 编码    11 1.7.1 增加成员变量    11 1.7.2 初始化成员变量    11 1.7.3 完成属性赋值代码    11 1.7.4 完成控件绘制代码    11 1.7.5 响应鼠标左键按下消息    13 1.7.6 修改DllUnregisterServer   …
上回书介绍了GUID.CLSID.IID和接口的概念.本回的重点是介绍 COM 中的数据类型.咋还不介绍组件程序的设计步骤呀?咳......别着急,别着急!孔子曰:"饭要一口一口地吃":老子语:"心急吃不了热豆腐",孙子云:"走一步看一步吧" ...... 先掌握必要的知识,将来写起程序来才会得心应手也:-) 走入正题之前,请大家牢牢记住一条原则:COM 组件是运行在分布式环境中的.比如,你写了一个组件程序(DLL或EXE),那么使用者可能是在本…
MFC下的常用字符串数据类型表示的含义: L:Long  长 P:Point  指针 C:Const  常量 W:Wchar_t  宽字符 T:TCHAR  STR:String  字符串 在看看MFC下各种数据类型的定义: 1 typedef char *LPSTR; 2 typedef const char *LPCSTR; 3 4 typedef wchar_t *LPWSTR; 5 typedef const wchar_t *LPCWSTR; 6 typedef wchar_t WCH…
在windows编程中,由于编码方式的不同和c与c++的不同而造成了许多复杂的有关字符串之间的转换 首先,windows编码方式有ANSCLL和UNICODE,前者是单字符的,后者是双字符的. 然后,char*理所当然是单字符的,string也是单字符的,而CString是Tchar的. 那么什么是TCHAR呢,它在采用ANSCLL的编码中表示单字符,在UNICODE编码中表示双字符,定义如下 如果定义_UNICODE,声明如下:     typedef   wchar_t   TCHAR; 如…
string与char*的转换方法 string a; char *b=a.c_str(); string a=new String(b); a=b; LPCWSTR是unicode的字符串,LPCSTR是ascll字符串 你可以使用Microsoft在ATL里面提供的宏来进行转换 #include <atlbase.h> USES_CONVERSION; LPCWSTR pw = T2W("Hello,world!"); // tchar -> wchar LPCT…