VC++备忘录
文章平均质量分 82
JMAVI
这个作者很懒,什么都没留下…
展开
-
MFC 用串行化实现文档存储和读取
在面向对象的程序设计中,一般都是用二进制文件来保存文档资料。在VC++中控制和使用文件流的方法很多,MFC程序设计中常用的有两种方法:用CFile对象存储和读取文件;利用串行化存取文件。其中用CFile对象直接存储文档,存在着以下两个问题:一是过程繁琐,例如绘图系统中常存在大量的数据对象(直线对象、矩形对象等);另一个问题是功能受限,VC++为了程序集成的需要,设汁成了复合文档,可以把各种外来对象转载 2010-11-14 17:11:00 · 1356 阅读 · 0 评论 -
MFC ComboBox 使用方法
MFC ComboBox 使用方法 Combo Box (组合框)控件很简单,可以节省空间。从用户角度来看,这个控件是由一个文本输入控件和一个下拉菜单组成的。用户可以从一个预先定义的列表里选择一个选项,同时也可以直接在文本框里面输入文本。下面的例子简要说明如何利用 MFC CComboBox Class来操作字符串列表。1、定义控件对应变量假定已经创建了一个Di转载 2010-10-24 16:46:00 · 3429 阅读 · 0 评论 -
时间转换
#include void rawtime_to_datatime(const long myRawtime,int& year,int&month,int&day,int& hour,int&minute,int&second){ time_t rawtime = (time_t)myRawtime; struct tm * timeinfo; ti原创 2011-11-24 12:42:27 · 695 阅读 · 0 评论 -
创建线程
//在msdn的例子#include #include #include unsigned Counter;unsigned __stdcall SecondThreadFunc(void* pArguments) { printf( "In second thread...\n"); while (Counte原创 2011-11-02 11:14:24 · 453 阅读 · 0 评论 -
C++读写unicode文件
#include #include using namespace std; int main(int argc, _TCHAR* argv[]){ FILE* pfile = fopen("D:\\早上好unicode.txt", "rb"); if (!pfile) return false; fseek(pfile, 2, 0); wchar_t b原创 2011-09-21 18:10:21 · 5108 阅读 · 2 评论 -
C语言中的可变参数函数 三个点“…”
第一篇C语言编程中有时会遇到一些参数个数可变的函数,例如printf()函数,其函数原型为:int printf( const char* format, ...);它除了有一个参数format固定以外,后面跟的参数的个数和类型是可变的(用三个点“…”做参数占位符),实际调用时可以有以下的形式:printf("%d",i);printf("%s",s);pr转载 2011-11-02 10:41:11 · 495 阅读 · 0 评论 -
字符串操作常用函数
函数名: stpcpy 功 能: 拷贝一个字符串到另一个 用 法: char *stpcpy(char *destin, char *source); 程序例: #include #include int main(void) { c转载 2011-09-21 22:38:46 · 544 阅读 · 0 评论 -
strstr实现
strstr:在字符串中查找指定字符串的第一次出现:不需要调用其他库函数做法:char* strstr(const char *s1, const char *s2){ int n; if (*s2) { while (*s1) { for转载 2011-09-27 22:11:13 · 6506 阅读 · 0 评论 -
利用GetPrivateProfileString读取配置文件(.ini)
配置文件中经常用到ini文件,在VC中其函数分别为:写入.ini文件:bool WritePrivateProfileString(LPCTSTR lpAppName,LPCTSTRlpKeyName,LPCTSTR lpString,LPCTSTR lpFileName转载 2011-09-27 22:38:59 · 554 阅读 · 0 评论 -
C程序内存结构
一个32位的运行在保护模式下应用程序,无论是Linux 还是Windows 都给它分配一个4GB的平坦的内存空间一个运行着的c程序所占用的内存空间分为:代码区 初始化数据区 未初始化数据区 堆区 和 栈区 在地址上从高位到地位为(高位)栈区堆区转载 2011-09-23 17:16:29 · 3048 阅读 · 0 评论 -
Three Ways to Inject Your Code into Another Process
Download entire package - 157.31 KBDownload WinSpy - 20 KB (demo application)ContentsIntroductionWindows HooksThe CreateRemoteThread & LoadLibrary TechniqueInterprocess CommunicationsThe C翻译 2011-11-11 00:04:35 · 997 阅读 · 0 评论 -
static用法小结
static关键字是C, C++中都存在的关键字, 它主要有三种使用方式, 其中前两种只指在C语言中使用, 第三种在C++中使用(C,C++中具体细微操作不尽相同, 本文以C++为准).(1)局部静态变量(2)外部静态变量/函数(3)静态数据成员/成员函数下面就这三种使用方式及注意事项分别说明 一、局部静态变量在C/C++中, 局部变量按照存储形式可分为三种au转载 2010-11-10 21:41:00 · 348 阅读 · 0 评论 -
VC单文档实现多视图的方法
多视图是VC开发中经常要用到的技术之一,一般地实现单文档多视图有两种方式1)通过视图分割的技术(使用CSplitterWnd实现),将窗口分割为多个部分,每个部分显示各自显示不同的视图,这种技术实现起来比较简单,并多视图是VC开发中经常要用到的技术之一,一般地实现单文档多视图有两种方式1)通过视图分割的技术(使用CSplitterWnd实现),将窗口分割为多个部分,每个部分显示各自显示不同的视转载 2013-05-15 19:48:52 · 737 阅读 · 0 评论 -
四元数和旋转矩阵
Quaternion(四元数)Quaternion 的定义四元数一般定义如下: q=w+xi+yj+zk其中 w,x,y,z是实数。同时,有: i*i=-1 j*j=-1 k*k=-1四元数也可以表示为: q=[w,v]其中v=(x,y,z)是矢量,w是标量,虽然v是矢量,但不能简单的理解为3D空间的矢量,它是4维空间中的的转载 2013-05-20 20:25:47 · 29619 阅读 · 2 评论 -
VS2010新建CMFCToolbar
新建 CMFCToolbar 发现位置往中间偏移,原因是照抄其自带的创建方法。正确的使用方法应该是:if (!m_wndToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP | CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_原创 2013-05-15 16:01:50 · 684 阅读 · 0 评论 -
C++中const用法总结
1. const修饰普通变量和指针const修饰变量,一般有两种写法:const TYPE value;TYPE const value;这两种写法在本质上是一样的。它的含义是:const修饰的类型为TYPE的变量value是不可变的。对于一个非指针的类型TYPE,无论怎么写,都是一个含义,即value只不可变。例如:const int nVal转载 2010-11-10 21:27:00 · 484 阅读 · 0 评论 -
设置picture control 背景颜色
添加关联控件变量为:m_picColor CRect rect ;m_picColor.GetClientRect(&rect);//获取空间区域FillRect(m_picColor.GetDC()->GetSafeHdc(),&rect,CBrush(RGB(m_iColorRed,m_iColorGreen,m_iColorBlue)));//填充该区域颜色原创 2012-07-16 16:32:58 · 3030 阅读 · 0 评论 -
MFC中CFileDialog打开和保存文件对话框
首先我先写一段在VC6.0上打开/保存文件对话框的程序: CString FilePathName;//文件名参数定义 CFileDialog Dlg(TRUE,NULL,NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,"TXT Files(*.txt)|*.txt|All Files(*.*)|*.*");转载 2011-04-04 14:07:00 · 24159 阅读 · 0 评论 -
DLL的创建与加载
testDLL:BOOL APIENTRY DllMain( HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved ){ switch (ul_reason_for_c原创 2011-11-10 15:42:18 · 651 阅读 · 0 评论 -
面向过程与面向对象中的static关键字
一、在面向过程设计中的static关键字1、静态全局变量定义:在全局变量前,加上关键字 static 该变量就被定义成为了一个静态全局变量。特点: A、该变量在全局数据区分配内存。 B、初始化:如果不显式初始化,那么将被隐式初始化为0。 C、访变量只在本源文件可见,严格的讲应该为定义之处开始到本文件结束。 D、文件作用域下声明的const的常量默认为转载 2012-05-04 16:36:54 · 541 阅读 · 0 评论 -
区别: vector list deque set map(转)
在STL中基本容器有: vector、list、deque、set、mapset 和map都是无序的保存元素,只能通过它提供的接口对里面的元素进行访问set:集合, 用来判断某一个元素是不是在一个组里面,使用的比较少map:映射,相当于字典,把一个值映射成另一个值,如果想创建字典的话使用它好了底层采用的是树型结构,多数使用平衡二叉树实现,查找某一值是常数时间,遍历起来效果也不错转载 2012-03-28 15:13:56 · 708 阅读 · 0 评论 -
按时间命名文件
#include #include void main(){ time_t timep; struct tm *p; char filename[100]; for (int count=1;count<13;count++) { time(&原创 2011-07-27 14:11:59 · 738 阅读 · 0 评论 -
VC使用MSXML.dll读取XML文件
XML最近被吹的神乎其神,很多数据的交换,包括很多中间件系统,WebService,软件的配置文件,都是在用XML这个技术,的确是个好东西,下面写了个读取XML的代码片段,用的是MSXML的一些接口。读的是BT软件的配置文件,XML内容如下:转载 2011-07-27 16:55:09 · 2355 阅读 · 0 评论 -
MFC实现为窗体添加的背景图片
MFC实现为窗体添加的背景图片 前提将一个bmp图片添加到资源中在资源视图中更改位图资源的ID为IDB_BITMAP_BACKGROUND。 第一种方法:在Dialog中添加一个Picture Control控件,将Picture Control控件的Type属性更改为Bitma转载 2011-07-07 19:28:22 · 950 阅读 · 0 评论 -
创建进程
<br /> <br />我们使用CreateProcess来创建进程.<br /> <br />我们先看一下函数原形:<br /> <br /> <br />BOOL CreateProcess(LPCTSTR LPApplicationName, //可执行模块名 LPTSTR lpCommandLine, //命令字符串 LPSECURITY_ATTRIBUTES lp转载 2010-12-24 21:55:00 · 420 阅读 · 0 评论 -
链表的常用操作C语言实现
<br />llist.h 文件内容:<br /> <br />#ifndef _LLIST_H_#define _LLIST_H_typedef struct _List List;struct _List{ void *data; List *next; List *prev;};List *list_erase (List *l);List *list_erased (List *l);void转载 2010-11-01 08:50:00 · 496 阅读 · 0 评论 -
常用运算的宏定义
<br />/**************************************//**** GENERAL MACRO DEFINITIONS *******//**************************************/# ifndef MAX# define MAX(a,b) (((a) > (b)) ? (a) : (b))# endif# ifndef MIN# define MI原创 2010-10-29 20:03:00 · 575 阅读 · 0 评论 -
为IDC_STATIC静态文本设置超级链接
假设在关于对话框中进行操作:在“常规选卡”将默认的IDC_STATIC 名称改为:IDC_STATIC_BLOG在“样式选卡”选中“通知”CTRL +W 建立类向导,为IDC_STATOC_BLOG 在CAbout类下面添加COMMAND(单击)函数:void CAboutDlg::OnStaticBlog() { ShellExecute(m_hWnd, NULL, _T("http://blog.csdn.net/wangjiannuaa"),NULL, NULL, SW_SHOWMAXIMIZ原创 2010-10-25 20:19:00 · 1488 阅读 · 0 评论 -
创建.lib文件及其使用
.lib文件可以让别人来调用你的工程,但是只能允许C++调用,而且需要同时提供所要使用类的头文件以及该工程的.lib文件。有两个工程 project A & project B,project A 中有类class a。现在想要在project B中使用类a的行为。方法一:step1: 右键单击project A工程名->configuration properties->General->Configuration Type中,选择Static Library(.lib)。这样,在外层Debug文件夹中会转载 2010-12-15 21:19:00 · 880 阅读 · 0 评论 -
VC++抓取网页解析数据
//////////////////////////////////////////////////////////////////////////// 链接并获取网页数据//////////////////////////////////////////////////////////////////////////BOOL GetData(CString URL,CString filename){ HINTERNET hInternet ; HINT原创 2010-10-22 16:52:00 · 8138 阅读 · 8 评论 -
VC++内执行.VBS脚本程序
<br />SHELLEXECUTEINFO shei;<br /> <br /> shei.cbSize=sizeof(shei);<br /> <br /> shei.fMask = SEE_MASK_INVOKEIDLIST;<br /> <br /> shei.lpFile = _T("explore.vbs");//假设这个VB脚本程序名字叫explore.vbs<br /> <br /> shei.lpVerb = _T("open");<br /> <br /> ShellExecute(N原创 2010-10-24 14:09:00 · 1613 阅读 · 0 评论 -
C语言读文件中的TXT数据
读文件中的TXT数据:#include #include void main(){ FILE* EMFile = fopen("D://EMFile.TXT","r"); if (!EMFile) { cout return; } int XN=2;//假设文件有两行,三列 int YN=3; float** Ef; Ef = new float*[XN]; for(int idx=0;idx { Ef[idx] = new float [YN]; } for(int i=0;i { for(int原创 2010-10-22 16:45:00 · 3088 阅读 · 0 评论 -
精确计算程序运行的时间
<br />#include <iostream.h>#include <windows.h>void main(){ LARGE_INTEGER Freq; LARGE_INTEGER Count1, Count2; QueryPerformanceFrequency(&Freq); //调用API函数, 这个API函数可是优先级0的函数啊. QueryPerformanceCounter(&Count1); //获取时间1 //测试程序; Sl原创 2010-12-06 14:36:00 · 666 阅读 · 0 评论 -
用栈对表达式求值
<br />#include<string.h>#include<stdio.h>#include<malloc.h>#include<conio.h>#define ERROR 0#define TRUE 1#define FALSE 0#define OK 1#define EQUAL 1#define OVERFLOW -1#define STACK_INIT_SIZE 100#define STACKINCREMENT 10typedef int St转载 2010-12-26 23:14:00 · 677 阅读 · 0 评论 -
C语言位操作
<br />#include <stdio.h>#include <stdlib.h>//len个字节,返回begin到end 位的值char* bitstream(void *s,int len ,int begin, int end) { char *t,*p; int i,j,k=0; p=(char *)s; t=(char*)calloc(len*8+1,sizeof(char));//长度 (end-begin+1)转载 2011-01-08 22:22:00 · 488 阅读 · 0 评论 -
MFC中ListControl控件的使用
<br /><br />以下未经说明,listctrl默认view 风格为report1. CListCtrl 风格<br /> LVS_ICON: 为每个item显示大图标<br /> LVS_SMALLICON: 为每个item显示小图标<br /> LVS_LIST: 显示一列带有小图标的item<br /> LVS_REPORT: 显示item详细资料<br /> 直观的理解:windows资源管理器,“查看”标签下的“大图标,小图标,列表,详细资料转载 2011-04-07 09:06:00 · 32698 阅读 · 6 评论 -
MFC中IPADDRESS控件的使用
<br />void CMyDlg::OnIPAddress() { // 此段代码:独立的获取本机IP地址和计算机名 WORD wVersionRequested; WSADATA wsaData; char name[255]; CString ip; PHOSTENT hostinfo; wVersionRequested = MAKEWORD(2, 0); if (WSAStartup(wVersionRequested, &wsaData转载 2011-04-04 14:20:00 · 12031 阅读 · 0 评论 -
MFC中CString.Format的详细用法
<br /><br />在MFC程序中,使用CString来处理字符串是一个很不错的选择。 CString既可以处理Unicode标准的字符串,也可以处理ANSI标准的字符串。CString的Format方法给我们进行字符串的转换带来了 很大的方便,比如常见的int、float和double这些数字类型转换为CString字符串只需一行代码就可以实现。<br /> 先看看Format用于转换的格式字符:<br /> %c 单个字符<br /> %d转载 2011-04-03 15:22:00 · 824 阅读 · 0 评论 -
MFC中Radio Button使用方法
<br />先为对话框加上2个radio button,分别是Radio1和Radio2。<br />问题1:如何让Radio1或者Radio2默认选上?如何知道哪个被选上了?<br /><br />关键是选上,“默认”只要放在OnInitDialog()即可。三种方法可以让它选上,<br />第一种:<br />((CButton *)GetDlgItem(IDC_RADIO1))->SetCheck(TRUE);//选上<br />((CButton *)GetDlgItem(IDC_RADIO1))-转载 2011-04-03 12:52:00 · 512 阅读 · 0 评论 -
fcanf与变量初始化
这是一段读文本文件的程序,内部存放的是模型尺寸信息: #include void main() { int i,row,col,total; float x(0),y(0),z(0); FILE *fp=fopen("CLUB.OST","r+"); if(!fp) /*打开你所需要读取的文件*/ { printf("/n Can not open file !/n");原创 2011-03-26 09:28:00 · 603 阅读 · 0 评论