
C++
dongpanshan
这个作者很懒,什么都没留下…
展开
-
c++模拟点击任务管理器程序图标 置顶显示
今天在研究模拟任务管理器图标点击效果,在网上搜索了一些信息主要思路是先把最小化或者在其他界面后面的界面(官方不在Z轴的顶层)显示出来界面-》一直置于最顶层-》取消置于最顶层-》激活窗口代码如下: HWND hProgramWnd = ::FindWindow(NULL,L"XXXXX"); if (hProgramWnd) { //个别人用SentMessage,容易产生阻塞 PostMessage(hProgramWnd, WM_SY...原创 2020-08-02 00:16:34 · 576 阅读 · 0 评论 -
C++中 sprintf函数的用法
sprintf函数的功能与printf函数的功能基本一样,只是它把结果输出到指定的字符串中了,看个例子就明白了:例:将"test 1 2"写入数组s中#include int main(void) { char s[40];sprintf(s,"%s%d%c","test",1,2); /*第一个参数就是指向要写入的那个字符串的指针,剩下的就和printf()一样了你可以比较一转载 2010-03-28 16:27:00 · 998 阅读 · 0 评论 -
CString 成员函数用法大全
CString的构造函数CString( );例:CString csStr;CString( const CString& stringSrc );例:CString csStr("ABCDEF中文123456"); CString csStr2(csStr);CString( TCHAR ch, int nRepeat = 1 );例:CString csStr(a,5);//csS原创 2010-05-16 10:40:00 · 660 阅读 · 0 评论 -
C++语言中“_T”是什么意思
/C++语言中“_T”是什么意思? Visual C++里边定义字符串的时候,用_T来保证兼容性,VC支持ascii和unicode两种字符类型,用_T可以保证从ascii编码类型转换到unicode编码类型的时候,程序不需要修改。 如果将来你不打算升级到unicode,那么也不需要_T, ------------------------------------------------------原创 2010-05-16 10:51:00 · 1497 阅读 · 0 评论 -
vs2008格式化代码
<br />ctrl+a全选需要格式化的代码,然后按ctrl+k快捷方式,然后再按ctrl+f,即可。<br />或者,编辑->高级->格式化代码原创 2010-07-14 20:16:00 · 2223 阅读 · 0 评论 -
C++利用Windows API 创建多线程
//上面的例子是基于互斥对象的,这个是基于事件对象的#includewindows.h>#includeiostream.h>DWORD WINAPI Fun1Proc(LPVOID lpParameter);//thread dataDWORD WINAPI Fun2Proc(LPVOID lpParameter);//thread dataint tickets=100;转载 2012-02-13 21:08:07 · 4221 阅读 · 0 评论 -
简单的 C++ SOCKET编程 ---基于TCP/IP协议
server端: #include #include #pragma comment(lib,"ws2_32.lib")void main(){ //创建套接字 WORDmyVersionRequest; WSADATA wsaData; myVersionRequest=MAKEWORD(1,1); interr; err=WSA转载 2012-04-05 23:04:02 · 661 阅读 · 0 评论 -
MFC 多线程编程问题
在网上查了很多关于多线程的例子,大多数都一样,很多注意的地方都没有提到,现在整理了以下,希望对大家有帮助工作者线程的AfxBeginThread 工作者线程的AfxBeginThread的原型如下: CWinThread* AfxBeginThread( AFX_THREADPROC pfnThreadProc, LPVOID pParam, int nPriorit原创 2012-04-06 17:47:06 · 545 阅读 · 0 评论 -
const int a与int const a的区别
const int a与int const a符号常量.两种格式无多大区别.但当const修饰的是指针时就有区别. const int* a int* const a ; 如果const位于星号的左侧,则const就是用来修饰指针所指向的变量,即指针指向为常量;如果const位于星号的右侧,const就是修饰指针本身,即指针本身是原创 2012-05-21 11:07:51 · 1236 阅读 · 0 评论 -
8583报文详细分析
作者:小马 不要以为我这篇文章是告诉你什么是8583,告诉你map的原理,然后分析各个域是什么意思,格式如何, 再有详细一点的甚至告诉你如何写程序等等. 不是, 之所以不写上面这些,基于两点:1 太多的人写这些了, 网上一搜8583,出来的文章都是关于这些的. 2 作用不大, 因为这些规范上都有, 大家一看规范就明白了, 我写了也是无用. 我篇文章适合两类人看:转载 2012-05-24 22:23:49 · 1090 阅读 · 0 评论 -
使用 ZLib 压缩/解压 ZIP 文件
实际应用中有时候会遇到需要处理 ZIP 压缩解压的情况,这时候我们有大概三种选择:调用 rar.exe, unzip.exe 等 使用某现成库 完全手写第一种虽然能完成任务,但是没法知晓结果。曾经有人对说,可以抓命令行输出结果来判断……这种依靠界面文字来进行精确判断的行为个人认为相当不靠谱。第三种,既然我是个“造轮主义”者,当然说好,但是现在我不了解 ZIP 格式,也不了解 ZIP 算原创 2012-08-02 09:06:16 · 13717 阅读 · 3 评论 -
URLDownloadToFile使用问题
当大家在使用URLDownloadToFile方法的时候,需要注意以下几点。1.引用头文件#include 2.引用urlmon.lib。#pragma comment(lib,"urlmon.lib") 3.把对应版本的urlmon.lib复制到工程目录下面(urlmon.lib就在安装的vc下面,可以搜索以下)。原创 2012-08-03 10:50:48 · 6616 阅读 · 0 评论 -
ATL服务程序启动界面问题
开发中有时会遇到这样的问题,当服务程序需要使用某些功能时,由于用户的关系而受到限制,比如访问注册表的HKEY_CURRENT_USER键,使用网络等等,这时候就需要以当前登陆用户的身份去进行操作,通常会创建一个进程来完成需要的功能。如果使用CreateProcess来创建进程的话,新创建的进程和服务程序依然是相同的用户身份,还是无法达到目的,只有使用CreateProcessAsUser了。但Cr转载 2012-08-04 11:30:14 · 1806 阅读 · 0 评论 -
ATL服务程序使用CString类型
在网页查找的时候发现,很多人说ATL服务程序使用CString类型的时候需要配置很多步骤,感觉很麻烦,但是我再调试的时候只是在使用的CString的头文件中添加#include "cstringt.h"#include "atlstr.h"这两句话就可以。我用的是VS2008创建的,不知道其他版本是否可以,如果不可以希望大家指出。原创 2012-08-07 18:59:09 · 1516 阅读 · 0 评论 -
URLDownloadToFile调用返回E_ABOR问题
在调用URLDownloadToFile的时候,发现返回值为E_ABOR,后来debug调试才发现原来URLDownloadToFile函数(第3个参数)不能自动创建下载文件目录,并且是绝度路径且包括文件名,不能是路径,具体说明如下HRESULT URLDownloadToFile( LPUNKNOWN pCaller, LPCTSTR szURL, LPCTSTR szFil原创 2012-08-08 10:58:46 · 5377 阅读 · 1 评论 -
请确保二进制储存在指定的路径中,或者调试他以检查该二进制或相关的DLL文件
在安装C++软件的时候,有时候安装失败提示“请确保二进制储存在指定的路径中,或者调试他以检查该二进制或相关的DLL文件”,这个应该是自己的电脑没有安装VC运行库,可以去微软下载安装。http://www.microsoft.com/downloads/details.aspx?FamilyID=a5c84275-3b97-4ab7-a40d-3802b2af5fc2&DisplayLang=z原创 2012-08-07 15:12:15 · 138835 阅读 · 1 评论 -
win7上安装Visual Studio2005后,启动vs2005报 无法为Visual Studio创建“应用程序数据”文件夹
出现这种现象后,你只需要把vs2005的sp1补丁打上就可以了。原创 2012-07-26 11:04:34 · 3719 阅读 · 0 评论 -
CreateFile打开磁盘格式要求
HANDLE CreateFile( LPCTSTR lpFileName, DWORD dwDesiredAccess, DWORD dwShareMode, LPSECURITY_ATTRIBUTES lpSecurityAttributes, DWORD dwCreationDisposition, DWORD dwFlagsAndAttributes,原创 2012-08-13 16:18:29 · 3508 阅读 · 2 评论 -
CCriticalSection
类CCriticalSection的对象表示一个“临界区”,它是一个用于同步的对象,同一时刻只允许一个线程存取资源或代码区。临界区在控制一次只有一个线程修改数据或其它的控制资源时非常有用。例如,在链表中增加一个结点就只允许一次一个线程进行。通过使用CCriticalSection对象来控制链表,就可以达到这个目的。 在运行性能比较重要而且资源不会跨进程使用时,建议采用转载 2012-08-15 14:20:32 · 9875 阅读 · 0 评论 -
STL中map用法详解
Map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,它完成有可能在我们处理一对一数据的时候,在编程上提供快速通道。这里说下map内部数据的组织,map内部自建一颗红黑树(一种非严格意义上的平衡二叉树),这颗树具有对数据自动排序的功能,所以在map内部所有的数据都是有序的,后边我们会见识到有转载 2012-08-16 11:10:47 · 770 阅读 · 0 评论 -
关于进程访问令牌( access token ) 及 OpenProcessToken
访问令牌是一个被保护的对象,包含了与用户帐户相关的辨识和特权信息。当用户登陆到一台windows计算机,登陆进程会验证用户的登陆凭据。成功后,登陆进程返回一个对应用户的SID和一个用户的安全组SID列表。计算机LSA使用这些信息创建一个访问令牌(主访问令牌)。该访问令牌包括了由登录进程返回的SIDs和一份由本地安全策略分发给用户以及用户安全组的特权列表。此后,这份访问令牌的拷贝会跟每个代表用户执行转载 2012-08-16 14:09:31 · 2743 阅读 · 0 评论 -
ZIP文件格式详解
ZIP文件的总体格式 分文件头信息+文件压缩数据 中心目录+中心目录记录结束符 1.分文件头信息: 字节数 描述 4 分文件头信息标志(0x04034b50) 2 解压缩所需转载 2012-07-27 16:41:10 · 28512 阅读 · 0 评论 -
C++xml操作之三---CMarkUp
这是官网示例文件,取出里面的Markup.cpp和Markup.h,导入你的工程里面,CMarkup类就可以用了;下载地址:http://www.firstobject.com/Markup83.zip转自:http://zengyiqiang2006.blog.163.com/blog/static/1028682262008102310829247/创建一个新的XML文档,分析转载 2012-08-29 15:14:37 · 12935 阅读 · 0 评论 -
C++操作xml之一---Libxml2
C++标准库中没有操作XML的方法,用C++操作XML文件必须熟悉一种函数库,选用LIBXML2Libxml2是一个C语言的XML程序库,可以简单方便的提供对XML文档的各种操作,并且支持XPATH查询,以及部分的支持XSLT转换等功能。Libxml2的下载地址是http://xmlsoft.org/windows版本的的下载地址是http://www.zlatkovic.com/li转载 2012-08-27 17:21:22 · 2623 阅读 · 0 评论 -
ReadFile
ReadFile函数从文件指针指定的位置读取数据。读操作完成后,文件指针将根据实际读出的数据自动进行调整,除非文件句柄是以OVERLAPPED属性值打开的。如果是以OVERLAPPED打开的I/O,应用程序就需要自己手动调整文件指针。 这个函数被设计成兼有同步和异步操作。ReadFileEx函数则设计成只支持异步操作,异步操作允许应用程序在读文件期间可以同时进行其他的操作。 函转载 2012-08-20 11:30:55 · 20435 阅读 · 0 评论 -
C++操作XML之二---RapidXml
rapidxml是一个快速的xml库,官方网站: http://rapidxml.sourceforge.net/,根据manual看到,他竟然比tinyxml快了50-100倍下载解压以后,把以下三个头文件#include引入rapidxml.hpprapidxml_utils.hpprapidxml_print.hpp[cpp] view p转载 2012-08-27 17:30:55 · 5679 阅读 · 0 评论 -
C++XML操作之四---CMarkup使用实例
(一) 先讲一下XML中的物殊字符,手动填写时注意一下。字符 字符实体& &或&' '或'> >或>" "或"(二) CMar转载 2012-08-29 15:17:36 · 4695 阅读 · 1 评论 -
关于mfc 对话框 DATETIMEPICKER控件的使用
按ctrl+w关联一个CDateTimeCtrl变量,这个没问题吧?CTime l_time;CString l_csTime;UpdateData(TRUE);m_ctlBeginDate.GetTime(l_time);l_csTime = l_time.Format( "%Y-%m-%d %H:%M:%S" );这样就可以了。如果需要别的格式的话,可以去查一下CTime的For原创 2012-08-31 16:07:44 · 5218 阅读 · 0 评论 -
C++操作XML经验总结
MFC不像C#,java那样直接操作xml文件的类,需要咱们自己编写,还好现在网上已经提供了3种开源的C++操作xml文件方法(自己在网上找的,具体是否还有其他的,不知道)。1.Libxml2 这个方法只看使用说明,就感觉让人头大,并且代码实现起来很复杂,且效率低(网上查的),直接没有使用。2.RapidXml 这个方法比Libxml2操作起来简单,但是相对CMarkup还原创 2012-08-29 15:30:36 · 1798 阅读 · 0 评论 -
C++程序员之路深入探讨QueryInterface
QueryInterface的本质初探本文写给COM的初学者!QueryInterface接口对COM的重要性不言而喻,该接口的实现有个规则——由QueryInterface返回的IUnknow接口指针必须相同,我的疑问是微软是如何使用C++实现这一COM规则的呢?请读者注意,我只探讨微软使用C++实现的COM,而不是其他公司使用其他语言实现的COM组件,当然无论什么公司使用十分语转载 2012-08-22 16:23:09 · 2993 阅读 · 0 评论 -
sizeof()和lstrlen()和strlen()区别
strlen()是返回字符串的字节长度, lstrlen()是返回字符串的字符长度。 也就是说第二个函数可能和第一个函数结果一样,如果字符串中字符单位都是单字节的话。 一般来说主要区别在于ascii的字符,还是unicode或者是utf的区别。ASCII编码是一个字符占一个字节,Unicode是一个字符占两个字节.求这两种字符串的长度,要用两个函数分别来.转载 2012-08-23 10:09:13 · 12154 阅读 · 0 评论 -
FatFS中的FILINFO介绍
当调用FatFS中的f_readdir函数返回FILINFO值的时候,大家如果直接看FILINFO里面的值可能看不懂。因为里面的值需要大家转换一下,FILINFO的具体格式如下:The FILINFO structure holds a file information returned by f_stat and f_readdir function.typedef struct {原创 2012-09-04 15:02:01 · 6775 阅读 · 0 评论 -
C++中关于new和delete的使用
1.创建动态数组 数组类型的变量有三个重要的限制:数组长度固定不变,在编译时必须知道它的长度,数组只在定义它的块语句中存在。对于动态分配的数组,虽然长度是固定的,但是动态分配的数组不必在编译时知道其长度,可以(通常也是)在运行时才确定数组长度;同时,动态分配的数组一直存在直到程序显示释放为止,这样,我们就可以自己决定数组的存在与否了。 每个程序在执行时都占用一块转载 2012-09-05 16:00:24 · 811 阅读 · 0 评论 -
Windows 7系统如何设置计划任务?
问题描述:Windows 7系统如何设置计划任务?任务计划概述:任务计划,可以将任何脚本、程序或文档安排在某个时间运行。“任务计划”在每次启动windows系统的时候自动启动(默认Task Scheduler服务是开启的)并在后台运行。使用“任务计划”可以完成以下任务:计划让任务在每天、每星期、每月或某些时刻(例如系统启动时)运行。更改任务的计划。停止计划的任务转载 2012-09-06 16:39:21 · 1878 阅读 · 0 评论 -
DLL Project的def文件中的LIBRARY描述字
使用Visual Studio DLL Wizard生成的DLL项目,会生成def文件,描述你在DLL中暴露的函数:LIBRARY "ANameDLL"EXPORTS MyFunc1 @1 MyFunc2 @2这里的LIBRARY这行最好删掉,理由如下:如果你的DLL项目是某个大项目的子项目,并想在Debug模式下面也有Debug模式,那么必须将上面那转载 2012-09-09 16:17:04 · 1054 阅读 · 0 评论 -
VC6 和VS2008 中的CTime类使用问题
在开发项目的时候,出现了这种错误,用VS2008开发的C++动态库,提供了一个对外的结构体如下typedef struct FileInfo{ DWORD fsize; /* File size */ CTime ftime; /* Last modified date and time */ BYTE原创 2012-09-27 09:30:52 · 1881 阅读 · 0 评论 -
MFC选择文件夹对话框
VC++, MFC中实现选择文件夹,选择文件对话框,确定当前工作目录//选择目录void CTestDlg::OnOK() {// BROWSEINFO 结构////////////////////////////////////// typedef struct _browseinfo {// HWND hwndOwner;// LPCITEMID转载 2012-09-26 17:14:13 · 1899 阅读 · 0 评论 -
PostMessaget与ON_MESSAGE
PostMessage是Windows API(应用程序接口) 中的一个常用函数,用于将一条消息放入到消息队列中。函数功能 该函数将一个消息放入(寄送)到与指定窗口创建的线程相联系消息队列里,不等待线程处理消息就返回,是异步消息模式。 消息队列里的消息通过调用GetMessage和PeekMessage取得。原型与参数 函数原型:B00L PostMessage原创 2012-09-09 17:37:11 · 4354 阅读 · 0 评论 -
MFC,C++,Vector使用
MFC,C++,Vector使用标准库Vector类型使用需要的头文件:#include Vector:Vector 是一个类模板。不是一种数据类型。 Vector是一种数据类型。一、 定义和初始化Vector v1; //默认构造函数v1为空Vector v2(v1);//v2是v1的一个副本Vector v3(n,i);//v3包含n个值为i的元素Vec转载 2012-09-29 08:59:47 · 3685 阅读 · 0 评论 -
FATFS怎么支持长文件名和汉字
FATFS官网:http://elm-chan.org/fsw/ff/00index_e.html1.从FATFS官网上下载FATFS程序2.把FATFS中文件上中的后缀名为.c的文件改成.cpp3.把FATFS程序(diskio.cpp,diskio.h,ff.cpp,ff.h,ffconf.h,integer.h)加载到自己的项目中(如果不会加,官网上有FATFS使用实例,大家原创 2012-10-09 16:00:05 · 7661 阅读 · 2 评论