自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(45)
  • 资源 (2)
  • 收藏
  • 关注

原创 模板的包含编译

<br />ict.h文件内容如下:<br />#ifndefMY_H_H<br />#defineMY_H_H<br />template <typenameType><br />TypemaxR(Typea,Typeb);<br /><br /><br />#include"ict.cpp"<br />#endif<br /> <br />ict.cpp文件内容如下:<br />template <typenameType><br />TypemaxR(Typea,Typeb)<br />{<br />

2010-11-30 21:29:00 642

原创 模板的特化(特化和偏特化)

<br />模板特化可以分为全特化和偏特化<br />特化可以为类增加成员函数或成员变量<br />模板特化有三种类型,一是特化为绝对类型,二是特化为引用、指针类型,三是特化为另外一个模板类<br />#include<iostream><br />#include<cstring><br />#include<string><br />usingnamespacestd;<br /> <br />template <classT><br />TmaxR(Tt1,Tt2)<br />{<br />    r

2010-11-30 16:46:00 517

原创 C++ 中 export 关键字的尴尬处境

<br />原文:http://blog.csdn.net/hikaliv/archive/2009/08/23/4474835.aspx<br /><br />  分离编译模式(Separate Compilation Model)允许在一处翻译单元(Translation Unit)中定义(define)函数、类型、类对象等,在另一处翻译单元引用它们。编译器(Compiler)处理完所有翻译单元后,链接器(Linker)接下来处理所有指向 extern 符号的引用,从而生成单一可执行文件。该模式使得 C

2010-11-30 14:01:00 632

转载 扔掉 C / CPP 运行库包袱,缩减文件尺寸,可跨平台

<br />CRT 库是裹在 OS API 上的,所以用 C / CPP 写的程序能够运行。我们可以扔掉 CRT 库直接调用 OS API 完成动作,以此缩减文件尺寸。首先指定程序入口。控制台程序默认入口是 main;Win 窗体程序默认是 WinMain;Dll 默认是 DllMain。其实程序在链接 CRT 库时,三者对应如下:<br />函数名<br /> 默认值<br /> <br />mainCRTStartup(或 wmainCRTStartup) 使用 /SUBSYSTEM:CONSOLE 的

2010-11-30 13:55:00 498

转载 C++ 中 export 关键字的尴尬处境

<br />C++ 中 export 关键字的尴尬处境<br />       分离编译模式(Separate Compilation Model)允许在一处翻译单元(Translation Unit)中定义(define)函数、类型、类对象等,在另一处翻译单元引用它们。编译器(Compiler)处理完所有翻译单元后,链接器(Linker)接下来处理所有指向 extern 符号的引用,从而生成单一可执行文件。该模式使得 C++ 代码编写得称心而优雅。<br />       然而该模式却驯不服模板(Temp

2010-11-30 13:54:00 618

原创 C++ 虚函数内存布局学习笔记

<br />http://blog.163.com/yql_bl/blog/static/84785169200811307757344/?mode=edit<br /> <br />由sizeof()求带有虚函数的类的大小引发的思考,在查看相关资料的过程中看到了陈皓先生的一篇文章《C++ 虚函数表解析》(详情见http://blog.csdn.net/haoel)觉得讲的十分的好,只是看完之后仍对为什么要又为什么可以由父类的指针调用子类的对象的虚函数不解,如这种典型的描述:<br />Derive d;/

2010-11-28 15:00:00 472

转载 vs2005c++下使用部分activex控件概述及问题

<br />vs2005c++下使用部分activex控件概述及问题1 <br />最近接到工作需要使用c++,无奈下又得回头看看c++的东西。<br />c++中连接数据库原提供oledb和dao两种方式,dao还没有接触。后来多了个ado,不过每个操作的表要建一个类,平时用ado.net习惯了刹感麻烦。看到activex中提供了ADODC控件和DataGrid控件,感觉还不错,在网上搜了一圈,总结总结<br />这是网上一高人写的<br />Step 2,从资源视图中打开主对话框 <br />Step

2010-11-25 15:19:00 843

原创 标准模板库介绍

<br />标准模板库介绍 <br />作者:Wilbur Lang<br />标准模板库,也叫 STL,是一个 C++ 容器类库,算法和迭代器。他提供许多 基本算法,数据结构。STL 是一个通用库,即可以充份定制:几乎所有的 STL 组件都是模板。在你使用 STL 前,你必须了解模板的工作情况。 <br /> 容器和算法<br />和许多类库一样,STL 包含容器类 - 可以包含其他对象的类。STL 包含向量 类,链表类,双向队列类,集合类,图类,等等。他们中的每个类都是模板,能包含 各种类型的对象。例如

2010-11-22 22:33:00 395

原创 走近 STL

<br />本文面向的读者:学习过C++程序设计语言(也就是说学习过Template),但是还没有接触过STL的STL的初学者。这实际上是我学习STL的一篇笔记,老鸟就不用看了。<br /><br />什么是泛型程序设计<br />  我们可以简单的理解为:使用模板的程序设计就是泛型程序设计。就像我们我们可以简单的理解面向对象程序设计就是使用虚函数的程序设计一样。<br /><br />STL是什么<br />  作为一个C++程序设计者,STL是一种不可忽视的技术。Sandard Template Lib

2010-11-22 22:28:00 401

原创 map不允许一对多,重复时,会出现后面的覆盖前面的

<br />map不允许一对多,重复时,会出现后面的覆盖前面的<br /><br />#include<map><br />#include<string><br />#include<iostream><br />usingnamespacestd;<br />intmain()<br />{<br />    map<int,string> mymap;<br />    mymap[1]="学生1";<br />    mymap[1]="学生2";<br />    mymap[3]="学生3";<

2010-11-22 15:44:00 951

原创 map容器对象插入数据的4种方式讲解

<br />map容器对象插入数据的4种方式<br />#include<string><br />#include<iostream>  <br />#include<map>  <br />#include<utility>  <br />usingnamespacestd;<br />intmain()<br />{<br />    map<int, string> Employee;<br /><br />    //通过键值赋值<br />    Employee[123] = "Mayuefe

2010-11-22 14:39:00 13013 1

原创 multimap容器

multimap容器1、multimap和map基本相同,但是multimap允许插入重复键值的元素,由于允许重复键值的存在,所以multimap的插入删除查找与map不同。2、元素插入可以进行键值相同的元素的插入 3、删除操作则可以删除某迭代器位置上的元素,某迭代器区间的元素和某键值的所有重复元素,可以clear()清空multimap 4、查找find(),找到则返回找到的第一个元素的迭代器位置,否则返回m.end()迭代器位置 #include#include#includeusingnamespac

2010-11-22 13:24:00 2883

原创 [原创]VC++下编译出极小的程序

<br />昨天做了个telnet后门程序玩,  <br />既然是后门嘛,自然是越小越好.可是我的VC9编译一个HelloWorld都有50K+...  <br />动态链接到MSVCRT90.dll倒是小下来了,但是得背上一个更变态的dll(600多k)  <br />而这个msvcrt90.dll就是我的vista sp1也不是自带的.更不便于程序的部署.  <br />最后自己去查了查资料终于编译出体积比较满意的exe,步骤如下:  <br />1.扔掉CRT.  <br />CRT提供了大量常用的

2010-11-20 02:04:00 796

原创 ActiveX Control Test Container(TstCon32.exe)在windows7或者Vista中不能正常运行的解

有博友向我反馈,说按照我介绍的方法编译了TSTCON解决方案后不能够正常运行。我在这里继续给大家讲解怎么解决这个问题。 如果你是windows7或者是vista的用户,那么使用VS2005、VS2008或者是VS2010将是必须的,推荐使用VS2010。对于VS2008它是对vista操作系统开发的一套工具,而windows7配套的是VS2010。假如你是这两款操作系统的用户的话,使用vc6.0基本上是不可能的,它已经是老古董了!而在这两套操作系统上面开发ActiveX控件,你会发现少了工

2010-11-19 23:47:00 4801 1

原创 ActiveX 控件注册的几种方法 VC++编写!

<br />ActiveX 控件注册的几种方法 VC++编写!<br /> <br />ActiveX 控件是一个动态链接库,是作为基于COM 服务器进行操作的,并且可以嵌入在包容器宿主应用程序中,ActiveX 控件的前身就是OLE 控件。由于ActiveX 控件与开发平台无关,因此,在一种编程语言上开发的ActiveX 控件可以无须作任何修改,即可在另一种编程语言中使用,其效果如同使用Windows 通用控件一样。如:在VC ++中开发的ActiveX 控件,不作任何修改即可应用于VB 中。由此可见,通

2010-11-19 23:43:00 1905

原创 VC2008中ActiveX Control Test Container程序去那里了?

<br />如果此片文章对你有帮助,欢迎转载,但请您保留此篇文章的源地址:http://hi.baidu.com/plutus666<br />    如果你是windows7或者是vista的用户,那么使用VS2005、VS2008或者是VS2010将是必须的,推荐使用VS2010。对于VS2008它是对vista操作系统开发的一套工具,而windows7配套的是VS2010。假如你是这两款操作系统的用户的话,使用vc6.0基本上是不可能的,它已经是老古董了!而在这两套操作系统上面开发ActiveX控件,

2010-11-19 23:43:00 3987

原创 ActiveX 控件注册的几种方法 VC++编写!

<br />ActiveX 控件注册的几种方法 VC++编写!<br /> <br />ActiveX 控件是一个动态链接库,是作为基于COM 服务器进行操作的,并且可以嵌入在包容器宿主应用程序中,ActiveX 控件的前身就是OLE 控件。由于ActiveX 控件与开发平台无关,因此,在一种编程语言上开发的ActiveX 控件可以无须作任何修改,即可在另一种编程语言中使用,其效果如同使用Windows 通用控件一样。如:在VC ++中开发的ActiveX 控件,不作任何修改即可应用于VB 中。由此可见,通

2010-11-19 23:40:00 804

转载 C++编译期Constraints设计 (转载)

11月1日C++编译期Constraints设计 (转载)所谓的compile-time Constraints就是在编译期使用C++的语法规则对设计进行约束检查,尽量在编译期把程序的问题暴露出来,节省成本。常用的规则:1.大小为0的数组在编译期会报错templatevoid check_size(){ int dmp[sizeof(T1)==sizeof(T2)];}比如 check_size();//okcheck_size();//c

2010-11-19 13:23:00 818

转载 有关宏的使用总结 - 1 (VS编译器)

11月9日有关宏的使用总结 - 1 (VS编译器)今天下午被宏折腾了好久,是时候,该好好总结一下有关于宏的使用了。 1.宏的分段式定义一定要注意,不能在 / 后面有任何的字符,包括空格例如:#define PRINTF(s) /<br />         printf(s##"/n");如果 #define PRINTF(s) / 这句的后面还有多余的空格,那么vc编译器将提示 error C2017: 非法的转义序列<br /> error C2014: 预处理器命令必须作为第一个非空白空间启动 2.宏

2010-11-19 13:08:00 5882 1

原创 MFC中CTreeCtrl类的一些基本用法

<br />MFC中CTreeCtrl类的一些基本用法 <br />最近做课程设计是用到了树形控件,原来对树形控件的用法基本都忘了,这次又重新整合了一下,以加深记忆。<br />    树形控件可以用于树形的结构,其中有一个根接点(Root)然后下面有许多子结点,而每个子结点上有允许有一个或多个或没有子结点。CTreeCtrl类封装了树形控件的各种操作。在树形控件中每一个结点都有一个HTREEITEM句柄,这个句柄按我的理解其实就是一些十六进制的数,就是用来标识的ID。但是我们通常添加到树形结构的结点都是一

2010-11-18 13:00:00 7002

原创 MFC 中Silder控件的用法

MFC 中Silder控件的用法<br /> <br />    言归正传,在MFC的对话框中可以插入一些控件,其中Silder就是常用之一。下面记录了Silder控件的常用操作:<br />    设置最大值和最小值<br />        通过函数SetRange来完成,例如:m_Slider.SetRange(1, 5);<br />    设置当前位置:<br />        通过函数SetPos完成,例如:m_Slider.SetPos(3);<br />    获取当前位置:<br /> 

2010-11-18 12:59:00 925

原创 MFC 常用控件

MFC 常用控件<br />http://www.cnblogs.com/youring2/archive/2010/08/18/1802903.html<br />    在MFC窗体控件中,常用的有Button、Static Box、Edit Box、Scroll Bar、Tree Ctrl、List Ctrl、Tab Ctrl等。通常在访问这些控件的时候,要先在建立类向导中添加一个变量,这个变量就是这个控件。类型为CTRL,值为该控件。<br />    然后就可以方便的访问这些控件了。<br /> 

2010-11-18 12:58:00 852

转载 MFC中CImageList(图形列表控件)和CTreeCtrl(树形列表控件)的简单用法

  今日康复,感谢自己能有一个好身体!现在是2010-8-17 23:31:47,抬头看不见月亮,但风很爽,如果有月亮,应该能够算得上苏轼所说的“月白风清”了。如此良夜,又学会了两个控件的简单用法,心里很爽啊。    首先是CImageList控件,用来保存一组相同大小的图标或位图,它没有图形显示界面,主要用途是为其它控件提供图形列表。可以通过索引访问图标或位图。CImageList常用的函数有: 函数说明Create创建一个CImageList控件GetImageCount获取图像的数目GetImageI

2010-11-18 12:51:00 4328

原创 VC进程控制相关代码

<br />//获取进程路径<br />CString GetProcessPath( DWORD idProcess )<br />{<br />    // 获取进程路径<br />    CString sPath;<br />    // 打开进程句柄<br />    HANDLE hProcess = OpenProcess( PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, FALSE, idProcess );<br />    if( NULL !=

2010-11-13 13:30:00 681

原创 VC++结束进程,干掉杀毒软件或者其他令人不爽的进程

<br />VC++结束进程,干掉杀毒软件或者其他令人不爽的进程 收藏 <br />BOOL SetPrivilege(HANDLE hToken,LPCTSTR lpszPrivilege,BOOL bEnablePrivilege)//提升权限<br />{<br />TOKEN_PRIVILEGES tp;<br />LUID luid;<br />if(!LookupPrivilegeValue(NULL,lpszPrivilege,&luid))<br />{<br />printf("/nLoo

2010-11-13 01:38:00 810

原创 用CreateToolhelp32Snapshot/Process32First/Process32Next API枚举系统进程

<br />/*********************************************************************<br />用CreateToolhelp32Snapshot/Process32First/Process32Next API枚举系统进程<br />在很多情况下需要对系统的进程进行操作,方法有很多种但最常用的是<br />CreateToolhelp32Snapshot/Process32First/Process32Next 一系列API使现结束进程使

2010-11-13 00:51:00 579

原创 在DLL中使用资源

<br />在DLL中使用资源(一)   <br />现在最常看见的关于DLL的问题就是如何在DLL中使用对话框,这是一个很普遍的关于如何在DLL中使用资源的问题。这里我们从Win32   DLL和MFC   DLL两个方面来分析并解决这个问题。   <br /><br />1.Win32   DLL   <br />在Win32   DLL中使用对话框很简单,你只需要在你的DLL中添加对话框资源,而且可以在对话框上面设置你所需要的控件。然后使用DialogBox或者CreateDialog这两个函数(或相

2010-11-13 00:49:00 514

原创 VC遍历指定文件夹下的所有文件 及如何删除文件夹

项目中要使用删除文件的功能,于是找了找资料,总结了一些方法,其实都很简单的。希望对大家有帮助:常用文件函数:if(finder.IsDirectory()   &&   !finder.IsDots())   //如果是目录   {}IsDirectory()判断是否目录IsDots()) 判断是否为.或..在dos中说明每个目录下都有缺省的两个目录分别为"."和".."分别表示上一层目录和本层目录.因此当我们遍历目录树下的文件时要过滤掉这两个缺省目录。 每个文件夹都有下面两个特殊子文件夹: (1) . 表

2010-11-12 19:34:00 5216 1

原创 对话框关闭方式与消息路由

<br />对话框关闭方式与消息路由<br /> <br /> <br />对话框默认用的两个按钮的ID分别是IDOK和IDCANCEL,这两个都是在winuser.h 中预定义的系统标准控件ID。 <br />对于标准ID,你不重载时MFC会自动调用父类的相应处理函数。 <br />比如IDOK映射到CDialog::OnOK()函数,IDCANCEL映射到CDialog::OnCancel()。 <br /><br />在这两个函数的源码如下: <br />void CDialog::OnOK() <b

2010-11-10 16:18:00 2043 2

原创 重启计算机 vc代码

<br />重启计算机 vc代码 <br /><br /> <br />if (MessageBox(" Changed Pages. Let setting avail, /n you must reboot! Now, Reboot?",<br />     "Notice", MB_YESNO) == IDNO)<br />    {<br />     MessageBox("Please Reboot later!", "Notice", MB_OK);<br />    }<br />    e

2010-11-10 16:15:00 2341

原创 WindowFromPoint

WindowFromPoint  函数功能:该函数获得包含指定点的窗口的句柄。   函数原型:HWND WindowFromPoint(POINT Point);   参数:   Point:指定一个被检测的点的POINT结构。   返回值S:返回值为包含该点的窗口的句柄。如果包含指定点的窗口不存在,返回值为NULL。如果该点在静态文本控件之上,返回值是在该静态文本控件的下面的窗口的句柄。   备注:WindowFromPoint函数不获取隐藏或禁止的窗口句柄,即使点在该窗口内。应用程序应该使用ChildW

2010-11-10 16:11:00 3889

原创 #define new DEBUG_NEW

<br /> #define new DEBUG_NEW<br /><br />在用vc时,利用AppWizard会产生如下代码: <br />#ifdef _DEBUG<br />#define new DEBUG_NEW<br />#undef THIS_FILE<br />static char THIS_FILE[] = __FILE__;<br />#endif <br /> <br /> <br /> <br />对于<br />#define new DEBUG_NEW<br />首先看msd

2010-11-10 16:10:00 1655 1

转载 VC 任务栏 系统托盘图标

VC 任务栏 系统托盘图标        很多程序运行时都会在系统托盘中显示出自己的图标,感觉很有意思,也想做一个玩一玩,正好现在学VC就到网上找了个VC的例子做法很简单,但要实现更多方便的功能还要加以修改. <br />现在就开始吧,我们需要做这样几个事情: <br />一、准备工作 <br />      1.在你的程序主窗体定义的头文件中定义一个用户自定义消息。该消息的用处是,当我们用鼠标点击任务栏上的图标时,图标要发出的消息,消息的接收者就是当前你写定义语句的窗体。定义方法是:#define WM_

2010-11-10 16:00:00 3803

转载 VC实现开机自运行

<br />1、实现开机自运行 <br /><br />     我在csdn网站上经常看到有人问这样的问题,其实要实现开机时就自动运行自己的程序并不难。在注册表的HKEY_LOCAL_MACHINE/Software/Microsoft/Windows/CurrentVersion/Run键下可以看到有一系列键值,它们都是开机自动运行的软件的路径。那么我们要做的就是编程实现将我们的程序的路径也添加到这个键值下,就搞定了。著名的“windows优化大师”也就是用去掉不必要的开机运行软件这个方法来实现开机速度

2010-11-10 13:16:00 1091

原创 防止头文件被重复定义#pragma once

<br />#pragma once<br /> <br />也可以使用<br />#ifndef<br />#define AAA     <br /> <br />#ifdef<br />#else<br />#define AA<br />#endif          <br /> <br /> <br />#ifdef DLL1_API<br />#else<br />#define DLL1_API extern "C" _declspec(dllimport)<br />#endif

2010-11-08 23:49:00 462

原创 按钮上添加位图方法

<br /> HBITMAP bmp; <br /> bmp=::LoadBitmap(HINSTANCE(GetModuleHandle(0)),MAKEINTRESOURCE(IDB_BITMAP1)); <br /> //m_btn1.SetBitmap(bmp); <br /> ((CButton*)GetDlgItem(IDC_BUTTON1))->SetBitmap(bmp);

2010-11-08 22:05:00 577

原创 WSAStartup的WSA,WSA是什么单词的缩写?

<br />WSAStarup,即WSA(Windows SocKet Asynchronous,Windows套接字异步)的启动命令<br /> <br />WSA == Windows SocKet Asynchronous == Windows套接字异步

2010-11-08 21:40:00 1466

原创 在VC中使用 Flash 美化你的程序(转)

<br />在VC中使用 Flash 美化你的程序 <br />http://cqyangyong.spaces.live.com/blog/cns!66BB503A2FB4C3F5!316.entry<br />代码运行效果图   利用flash可以作出很漂亮的动画,想不想让自己的程序也有这样漂亮的界面呢? ^_^,其实,要做到这点也不难。在这里将介绍怎样把falsh制作的界面嵌入到自己的程序中,并让flash动画和自己的程序进行交互。  我们分为两步来走:   一、将flash动画嵌入自己的程序中,这一

2010-11-08 21:27:00 979

原创 利用ShellExecute独立打开一个网页窗口打开我们指定的网页

<br />利用ShellExecute独立打开一个网页窗口打开我们指定的网页<br /> <br />执行ShellExecute(NULL,_T("open"),"http://www.csdn.net",NULL,NULL,SW_SHOW);<br />如果以前没有IE窗口,则打开一个<br />但是,如果以前已经有一个,则在原窗口显示<br />请问如何一定生成新的窗口显示?不管以前有没有打开的窗口<br /> <br /> <br /> <br />ShellExecute是我们常用的一个API,

2010-11-08 21:06:00 12682

原创 VC 实现 窗体 透明度

<br />VC 实现 窗体 透明度<br /> 在对话框的OnInitDialog()函数中添加下面代码:<br />int n_color=200;//n_color为透明度(0-255)<br /> SetWindowLong(this->GetSafeHwnd(),GWL_EXSTYLE,<br />  GetWindowLong(this->GetSafeHwnd(),GWL_EXSTYLE)^0x80000);<br /> HINSTANCE hInst = LoadLibrary(L"User

2010-11-08 20:33:00 806

SDK模拟MFC隐藏WinMain,CWinApp,CDialog

此程序为本人在学习了孙鑫老师vc视频教程后,深彻领悟MFC编程原理和对比了Win32 SDK编程开发流程,经过本人不屑的努力,最终写成的,本人不断反思,探索思考而得,属于100%原创作品。 程序中隐藏WinMain函数,当成是头文件包含进来,我们开发就不需要改动WinMain函数, CWinApp 和CDialog类在SDK中模拟实现,程序会进入我写的InitInstance,该函数里面负责显示窗口,窗口类里面有窗口过程...

2012-04-07

滑块控件如何使用的介绍,代码+讲解详细!

通过简单的滑块小工程,让你快速掌握使用 滑条控件 让你立刻具有小小的成就感!

2010-04-27

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除