
VC & C、c++
文章平均质量分 67
xust999
随便活着
展开
-
链接参考
http://www.cnblogs.com/flying_bat/articles/977162.htmlhttp://blog.youkuaiyun.com/wangningyu原创 2010-01-18 19:58:00 · 544 阅读 · 0 评论 -
ANSI Unicode,UTF8 转换
<br /><br /> <br />CString AnsiToUnicode(std::string str)<br />{ <br /> const char *pstr = str.c_str();<br /> int len = ::MultiByteToWideChar(CP_ACP, NULL, pstr, -1, NULL, 0); <br /> if (len == 0) return L""; <br /> <br /> wchar_t* wszString原创 2011-02-26 13:42:00 · 547 阅读 · 0 评论 -
字符编码(ASCII、ANSI、UNICODE及UTF-8编码)
<br />1,基本知识<br /><br /><br />字符内码(charcter code)指的是用来代表字符的内码.读者在输入和存储文档时都要使用内码,内码分为 :<br /><br />单字节内码 -- Single-Byte character sets (SBCS),可以支持256个字符编码。<br />双字节内码 -- Double-Byte character sets)(DBCS),可以支持65000个字符编码. <br /> <br />2. ASCII和Ansi编码 <br />原创 2011-02-26 15:14:00 · 931 阅读 · 0 评论 -
CreateThread, AfxBeginThread,_beginthread
CreateThread是Windows的API函数(SDK函数的标准形式,直截了当的创建方式,任何场合都可以使用),提供操作系统级别的创建线程的操作,且仅限于工作者线程。不调用MFC和RTL的函数时,可以用CreateThread,其它情况不要轻易。在使用的过程中要考虑到进程的同步与互斥的关系(防止死锁)。线程函数定义为:DWORD WINAPI _yourThreadFun(LPVOID pParameter)。但它没有考虑:(1)C Runtime中需要对多线程进行纪录和初始化,以保证C函数库工作正常转载 2011-02-10 09:49:00 · 2094 阅读 · 0 评论 -
Choosing the Correct C/C++ Runtime Library
<br /><br />The C/C++ runtime library contains basic functions like memory allocation (malloc, new), output (printf), and string manipulation (strcpy, strlen).<br />When building a C/C++ application or library, you must pick a C/C++ runtime library. In Vis转载 2011-02-10 14:58:00 · 1132 阅读 · 0 评论 -
选择正确的C/C++ Runtime Library
<br /><br />解决下面的编译/链接问题过程中,有一些新的认识。<br />"warning LNK4049: locally defined symbol"<br />"error LNK2001: unresolved external symbol"<br /> <br />本文意在总结,讨论的中心自然也正如标题所言,是"C/C++ Runtime Library"<br />如果有副标题的话,我想我会用这些编译器的Warning与Error作为这篇blog的副标题。<br /> <br />转载 2011-02-10 14:21:00 · 3277 阅读 · 1 评论 -
混合运行库
<br />Q:如果一个程序里面的不同obj文件或DLL文件使用了不同的CRT,会不会有问题?<br /> A:这个问题实际上分很多种情况。如果程序没有用到DLL,完全静态链接,不同的obj在编译时用到了不同版本的静态CRT。由于目前静态链接CRT只有多线程版,并且如果所有的目标文件都统一使用调试版或发布版,那么这种情况下一般是不会有问题的。因为我们知道,目标文件对静态库引用只是在目标文件的符号表中保留一个记号,并不进行实际的链接,也没有静态库的版本信息。<br /> 但是,如果程序涉及动态链接CRT,转载 2011-03-03 11:32:00 · 675 阅读 · 0 评论 -
Structured Exception Handling (1)
<br />Matt Pietrek 著 <br />董岩 译<br />原文:http://www.microsoft.com/msj/0197/exception/exception.aspx <br />在Win32操作系统提供的所有功能中,使用最广泛而又没有公开的恐怕要数结构化异常处理(Structured Exception Handling,SEH)了。当你考虑Win32结构化异常处理时,也许会想到__try、__finally和__except等术语。可能你在任何一本讲解Win32的好书上都转载 2011-03-03 13:55:00 · 896 阅读 · 0 评论 -
Structured Exception Handling (2)
<br />虽然__except_handler3的代码看起来很多,但是记住一点:它只是一个我在文章开头讲过的异常处理回调函数。它同MYSEH.EXE和 MYSEH2.EXE中的异常回调函数都带有同样的四个参数。__except_handler3大体上可以由第一个if语句分为两部分。这是由于这个函数可以在两种情况下被调用,一次是正常调用,另一次是在展开阶段。其中大部分是在非展开阶段的回调。 <br />__except_handler3一开始就在堆栈上创建了一个EXCEPTION_POINTERS结构,并用转载 2011-03-03 13:56:00 · 711 阅读 · 0 评论 -
用VC进行COM编程所必须掌握的理论知识
这篇文章是给初学者看的,尽量写得比较通俗易懂,并且尽量避免编程细节。完全是根据我自己的学习体会写的,其中若有技术上的错误之处,请大家多多指正。 一、为什么要用COM 软件工程发展到今天,从一开始的结构化编程,到面向对象编程,再到现在的COM编程,目标只有一个,就是希望软件能象积方块一样是累起来的,是组装起来的,而不是一点点编出来的。结构化编程是函数块的形式,通过把一个软件划分成许多模块,每个模块完成各自不同的功能,尽量做到高内聚低藕合,这已经是一个很好的开始,我们可以把不同的模块分给不同的人去做,然转载 2011-05-16 16:34:00 · 833 阅读 · 0 评论 -
MFC消息传递
<br />首先讲几个概念:<br /> <br />一般来说,每个应用程序都有一个UI线程,应该说大部分应用程序都只有一个UI线程。<br /> <br />UI线程,简单的理解:1,是一个线程。 2,创建了UI(准确的说应该是进行了消息循环)。<br /> <br />在MFC的应用框架中UI线程一般就是CWinApp的派生类。因为CWinApp派生自CWinThread,具有处理线程的功能(满足第1点)。<br /> <br />在CWinApp派生类的InitInstance中创建了主窗口(满足第2原创 2011-04-07 10:38:00 · 1497 阅读 · 0 评论 -
串口操作
<br /><br />在工业控制中,工控机(一般都基于Windows平台)经常需要与智能仪表通过串口进行通信。串口通信方便易行,应用广泛。<br />一般情况下,工控机和各智能仪表通过RS485总线进行通信。RS485的通信方式是半双工的,只能由作为主节点的工控PC机依次轮询网络上的各智能控制单元子节点。每次通信都是由PC机通过串口向智能控制单元发布命令,智能控制单元在接收到正确的命令后作出应答。<br /> 在Win32下,可以使用两种编程方式实现串口通信,其一是使用ActiveX控件,这种方法程序简原创 2010-12-11 15:46:00 · 1051 阅读 · 0 评论 -
U盘 插入/删除 监测
<br />view plaincopy to clipboardprint?//重载MFC函数 CString path="";//盘符如G:,F: LRESULT CUpanDlg::DefWindowProc(UINT message, WPARAM wParam, LPARAM lParam) { // TODO: Add your specialized code here and/or call the base class switch(wParam){ case D转载 2010-12-11 15:45:00 · 664 阅读 · 0 评论 -
判断电脑待机
<br />/************************************************************************/ <br />/* 说明: <br />调用函数GetLastInputInfo()以后, 结构成员lpi.dwTime 中的值并非上次输入事件 <br />发生以后的毫秒数。而是上次输入事件发生时的系统运行时间。相当于上次输入事件 <br />发生时执行了lpi.dwTime=::GetTickCount()。 <br />::GetTi转载 2010-12-06 15:13:00 · 857 阅读 · 0 评论 -
在非窗口类中使用定时器
为了在非窗口中使用定时器, 在定时器处理函数中,又要使用调用类的其他成员变量或成员函数. 一个类只使用一个定时器的,可简单处理如下:1, 将回调函数定义为静态成员函数2, 定义s_time指向自身this,方便回调函数使用类的其他成员函数和变量 #pragma once class CTimeTest{public: CTimeTest(void);原创 2010-05-17 16:09:00 · 602 阅读 · 0 评论 -
如何链接到Sql Server 2005
SQL Server 2005本篇介绍如何链接到Sql Server 2005.采用SQL 本地客户 ODBC驱动采用Sql身份验证Driver={SQL Native Client};Server=myServerAddress;Database=myDataBase;Uid=myUsername;Pwd=myPassword;你正在使用SQL Server 2005 E转载 2010-05-18 17:08:00 · 558 阅读 · 0 评论 -
软件由ANSI编码改为UNICODE编码步骤
<br /><br />在开发过程中,常常遇到软件编码由非UNICODE转换为UNICODE编码方式,可采用一下步骤:<br /> <br />VC6.0:<br /> <br />1、工程配置:<br /> (A) project->settings->c/c++->project options 中添加宏:/D "_UNICODE" /D "UNICODE" <br /> (B) project->settings->Link->Entry-Point Symbol 中添加: wWinMain原创 2010-07-30 09:30:00 · 1100 阅读 · 0 评论 -
关于字节对齐-结构体对齐问题解决方法的确认
在做与底层相关性较大的代码中,常常遇到字节对齐的问题,找到一篇文章,可有助于理解。一.什么是字节对齐,为什么要对齐? 现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定类型变量的时候经常在特定的内存地址访问,这就需要各种类型数据按照一定的规则在空间上排列,而不是顺序的一个接一个的排放,这就是对齐。 对齐的作用和原因:各个硬件平台对存储空间的处理上有很大的不同。一些平台对某些特定类型的数据只能从某些特定地址开始存取。比如有些架转载 2010-07-30 09:44:00 · 648 阅读 · 0 评论 -
关于Mdi添加背景图片的方法
<br /><br />框架视图中添加背景图片的方法。 在关闭所有视图后能看到背景图片。<br /> <br />1.在MDIClient.h文件中加入<br />public:<br /> BOOL SetBitmap(UINT nID);<br /> COLORREF SetBackColor(COLORREF nBackColor);<br />Private:<br /> CBitmap* m_pBmp;<br /> COLORREF原创 2010-07-31 09:18:00 · 909 阅读 · 0 评论 -
十六进制转十进制函数
<br /><br /> <br />inline DWORD ToDec(CString &strAddr)<br />{<br />int nRes = strAddr.Find("x",0);<br />CString str;<br />if (nRes != -1) <br />str = strAddr.Mid(nRes+1);<br />else<br />strAddr = "";<br />int nLength = str.GetLength();<br />DWORD dValue原创 2010-07-31 10:29:00 · 1368 阅读 · 0 评论 -
工作输出清单
------------1. 需求环节1.1 工作输出 (1) 应用软件开发需求表.doc (2) 需求-缺陷-修改_履历表(模板).xls (3) 维护项目:《维护修改说明书》“需求规格”章节 新项目: 输出《需求规格说明书》1.2 应遵循的规范 (1) 所有需求信息均应有记录和确认 (2) 所有的需求确认均应有记录 (3) 输出的文档需提交评审------------2. 设计环节原创 2010-07-31 11:33:00 · 1876 阅读 · 0 评论 -
消息截取-回车按键 针对不同控件做不同处理
<br /> 在程序运行时,在界面点击回车,会有默认的按钮响应。但是当界面有多个按钮,处理不同的事务时,点击回车,需要根据当前鼠标所在控件响应不同的按钮处理,要满足这样的需求就需要消息截取,针对不同的控件调用不同的处理函数。<br /> <br />一般,我们采用重载虚函数PreTranslateMessage来打到截取消息的目的。<br /> <br />如果是回车,判断VK_RETURN虚拟按键。<br /> <br />// 取得当前焦点所在控件<br />CWnd* pWnd = GetFo原创 2010-08-14 17:45:00 · 623 阅读 · 0 评论 -
VC++中的CString操作指南
<br />原文出处:codeproject:CString Management<br /><br /><br />通过阅读本文你可以学习如何有效地使用 CString。<br /><br /> CString 是一种很有用的数据类型。它们很大程度上简化了MFC中的许多操作,使得MFC在做字符串操作的时候方便了很多。不管怎样,使用CString有很多特殊的技巧,特别是对于纯C背景下走出来的程序员来说有点难以学习。这篇文章就来讨论这些技巧。<br /> 使用CString可以让你对字符串的操作更加直截了转载 2010-09-19 14:29:00 · 983 阅读 · 0 评论 -
VC中有关数据类型转换的整理
<br /><br />说明:本文纯粹是总结一下有关类型转换的贴子,<br />本人并未对所有方法都做测试,仅仅是为了给大家一个参考。<br />读者层次:初学<br />int i = 100;<br />long l = 2001;<br />float f=300.2;<br />double d=12345.119;<br />char username[]="程佩君";<br />char temp[200];<br />char *buf;<br />CString str;<br />_var转载 2010-09-19 14:31:00 · 606 阅读 · 0 评论 -
用VC对USB口的打开读写操作
USB口的打开读写操作程序的通用性是很好的,不同的USB只需修改不同的GUID至于调试,你怎么调试串口程序就怎么调试USB程序,大小方面一次性发送和接受数据不大于64个字节.这个可能和USB设备有关使用一个GUIDguidHID_1查找并打开一个USB设备extern "C" int PASCAL SearchUSBDevice(){ HANDLE hUsb; int nCount转载 2011-06-18 12:21:00 · 8997 阅读 · 5 评论