- 博客(62)
- 资源 (7)
- 收藏
- 关注
转载 delete指针出现_CrtIsValidHeapPointer(pUserData)错误
_CrtIsValidHeapPointer(pUserData)_CrtIsValidHeapPointer(pUserData) in dbghelp.c2006-10-14 18:19When I execute my program (it's multithread and has COM and dll),there is an error message as follows:Program D:/dongle_1/TestAP/bin/Debug/TestAP.exeFile: dbghea
2011-03-11 12:54:00
1883
原创 调整屏幕分辨率
界面在不同分辨率下的显示确实是一个比较头疼的问题。下面贴一个完整的代码,作用是首先罗列系统支持的所有分辨率模式,如果不支持1024*768给出提示,如果支持但当前设置不是1024*768则给出是否更改的提示。C/C++ code //---------------罗列系统支持的分辨率---------------------------- DEVMODE *lpDevMode; lpDevMode=new DEVMODE; int i=0; CString Str[500
2011-03-03 11:08:00
785
转载 关于"#ifdef __cplusplus extern "C" "
Microsoft-Specific Predefined Macros __cplusplus Defined for C++ programs only. 意思是说,如果是C++程序,就使用extern "C"{ ,而这个东东,是指在下面的函数不使用的C++的名字修饰,而是用C的The following code shows a header file which can be used by C and C++ client applications:// MyCFuncs.h#ifdef __cp
2011-02-18 09:32:00
741
转载 CCommandLineInfo
在我们用向导创建MFC应用程序时,在App::InitInstance()中总会出现下面这样的代码到底是什么意思呢,我差了很多资料终于使其漏出庐山真面目。<br /><br />CCommandLineInfo cmdInfo;//定义命令行<br />ParseCommandLine(cmdInfo);//解析命令行<br /><br />// 调度在命令行中指定的命令。如果<br />// 用 /RegServer、/Register、/Unregserver 或 /Unregister 启动应用程序,
2011-02-15 10:55:00
726
原创 delphi动态数组越界
<br />先看段程序: Delphi(Pascal) code <br />procedure TForm1.Button1Click(Sender: TObject);<br />var P:arrayof integer;<br />begin<br /> setlength(P,2);<br /> setlength(P,1);<br /> P[0]:=12;<br /> P[1]:=34;<br /> P[2]:=56;<br /> showmessage(inttostr(P[2])
2010-12-21 18:57:00
714
1
原创 delphi的取整函数round、trunc、ceil和floor
<br /> <br />1.Round(四舍六入五留双)功能说明:对一个实数进行四舍五入。(按照银行家算法) <br />例:<br />var<br /> i, j: Integer;<br />begin<br /> i := Round(1.5); // i等于2<br /> j := Round(2.5); // j等于2<br />end;<br />在Delphi中使用Round函数得到的答案有时与我们所预期的会不太一样:采用的是四舍六入五留双。即当舍或入位大于或小于五时按四
2010-12-20 18:41:00
499
原创 Delphi 中的属性property
Delphi 中的属性property Propery In Delphi 前言:适合delphi初学者,有面向对象知识和java或者vc编程经验人士阅读。 一普通属性 我们在delphi的类中常常能看到这样的代码:propert property 属性名类型名 read 字符串1 write 字符串2 这里属性的名字可能不同。都是这样的格式:property 属性名 read 字符串1 write 字符串2 我以property Left: Integer read FLeft write Set
2010-12-02 21:02:00
440
原创 open/read/write和fopen/fread/fwrite的区别
<br />open/read/write和fopen/fread/fwrite的区别<br /> <br />open:系统调用,返回的是文件描述符,即文件句柄,是文件在文件描述副表里的索引。<br />fopen:C语言库函数,返回的是一个指向文件结构的指针。fopen是ANSI C标准中的C语言库函数,在不同的操作系统中应该调用不同的内核API,UNIX环境下,fopen是对open的封装。<br />文件描述符是UNIX/Linux下的一个概念,Linux环境下,一切设备皆是文件,一切设备皆是以文件
2010-10-28 11:30:00
712
转载 Vector作为形参
<br />通常,函数不应该有vector或其他容器类的形参。调用vector形参的函数将会复制vector的每一个元素。为避免复制,应将其声明为引用类型。然而,C++程序员更倾向于使用传递迭代器,如下:<br />#include "Head.h"<br />void print(vector<int>::const_iterator beg,<br /> vector<int>::const_iterator end)<br />{<br /> while (beg != end)<br />
2010-10-27 20:14:00
3367
原创 Button按钮响应鼠标按下与弹起消息
<br />对话框上的按钮本身只能添加单击双击时间,不能响应鼠标按下与弹起消息,可以通过两种方法实现:<br />1.重载CButton类,将该类子类化<br /> 在工程中添加一个新类CMyButton,基类为CButton。<br /> 在对话框MyDlg中为IDC_BUTTON添加变量,在变量类型里选择CMyButton,变量名自定义,如m_myButton。添加函数OnDown与OnUp函数响应按钮按下与弹起消息<br /> 在Class name中选择CMyButton,然后添加
2010-10-20 09:12:00
2876
6
原创 非模态对话框使用ON_UPDATE_COMMAND_UI
ON_UPDATE_COMMAND_UI for Modeless DialogsModeless dialogs can't automatically use the WM_KICKIDLE message to start idle processing. This is because MFC uses it's own model dialog message loop that sends WM_KICKIDLE messages. But modeless dialogs use the st
2010-10-12 11:43:00
483
原创 对话框内控件更新
<br />afxpriv.h has a message, WM_KICKIDLE, that is sent during idle processing. To get dialogs to work with the ON_UPDATE_COMMAND_UI message maps, you need to trap the kick idle message and call UpdateDialogControls. <br />In a dalog class header, add the
2010-10-12 11:41:00
355
转载 CDialogBar使用
<br />用对话框创建CDialogBar派生的类并在CReBar上添加<br /><br /> <br />摘要:本文详细解说了CDialogBar的具体使用过程,可以做为VC++和MFC新手学习总结用。<br /><br /> <br />一、创建DialogBar的派生类<br />首先,创建对话框资源:在对话框资源编辑器内生成一个Dialog资源,并将其风格(Style)属性必须设置为Child,不能设置为Overlapped或Popup,否则运行肯定出错;至于边界属性则随用户自己喜欢,一般都是选
2010-10-11 22:00:00
461
原创 一组按钮的消息响应
<br /> 当子窗口控件的状态发生改变时,控件通过向其父窗口发送WM_COMMAND消息进行通信,在该消息的wParam中含有通知消息和控件的ID,在lParam中则包含了控件的句柄。例如,当用户在按钮上单击鼠标时,按钮控件会向父窗口发送BN_CLICKED消息。 <br /> 利用ClassWizard可以很容易地为控件通知消息加入消息映射和消息处理函数。例如,某按钮的BN_CLICKED消息的消息映射及其处理函数的声明如下所示:<br /> ON_BN_CLICKED(IDC_ADD
2010-10-09 17:34:00
1341
转载 OBJ文件格式
<br /> OBJ文件格式是非常简单的。这种文件以纯文本的形式存储了模型的顶点、法线和纹理坐标和材质使用信息。OBJ文件的每一行,都有极其相似的格式。在OBJ文件中,每行的格式如下:<br />前缀 参数1 参数2 参数3 ...<br /> 其中,前缀标识了这一行所存储的信息类型。参数则是具体的数据。OBJ文件的前缀可以有:表7.2-1 OBJ文件中的前缀前缀<br />说明v表示本行指定一个顶点。<br />此前缀后跟着3个单精度浮点数,分别表示该定点的X、Y、Z坐标值vt表示本行指定一个
2010-09-02 13:45:00
860
原创 C++导入模型
1.什么是模型,以及常见的建模工具Reference:Wiki,model<br />2.Wavefront的obj文件格式详解Reference:http://www.cppblog.com/lovedday/archive/2008/06/13/53153.html<br />3.使用C++读取3ds max的obj文件Reference:http://zhidao.baidu.com/question/78839329.html3ds MAX 模型有很多种导出格式,如max、obj等,是不同的标准。一
2010-09-02 09:16:00
1156
转载 char*和CString转换
<br />(1) char*转换成CString<br /> 若将char*转换成CString,除了直接赋值外,还可使用CString::Format进行。例如:<br /> char chArray[] = "Char test";<br /> TCHAR * p = _T("Char test");( 或LPTSTR p = _T("Char test");)<br /> CString theString = chArray;<br />
2010-07-13 17:24:00
501
原创 MFC移植到QT
<br />MFC移植到Qt<br />Qt/MFC Migration Framework <br />http://qt.nokia.com/products/appdev/add-on-products/catalog/4/Windows/qtwinmigrate/
2010-06-28 20:12:00
1717
转载 关于模式与非模式对话框
<br /> 对话框有两种创建方式:DoModal和Creat。 其中DoModal创建的是模态的对话框,而Creat创建的是非模态的对话框下面总结下他们的不同。<br /> 对于模态的对话框,在该对话框被关闭前,用户将不能在同一应用程序的其他地方进行工作(例如open file对话框),而对于非模态的对话框,在它留在屏幕上的同时可以在其他的地方进行工作,(例如find file对话框)<br /><br /> Create的Dialog一般是modalless,如果你的程序本
2010-06-23 16:28:00
508
原创 有关GetDlgItem
CWnd::GetDlgItem(int nID) 这个是一个类成员函数 而HWND GetDlgItem( HWND hDlg, // handle of dialog box int nIDDlgItem // identifier of control ); 是一个sdk的函数 两个的主要区别是用的地方不一样 一个参数的是在窗口中调用的函数,两个参数的是在平台SDK中调用的 你在对话框累里面调用GetD
2010-06-13 11:33:00
5167
原创 创建选择目录对话框
<br />void CTestCamDlg::SelectDirDlg(char Dir[])<br />{<br /> BROWSEINFO bi; <br /> ITEMIDLIST *pidl; <br /> <br /> bi.hwndOwner = NULL; <br /> bi.pidlRoot = NULL; <br /> bi.pszDisplayName = Dir; <br /> bi.lpszTitle = "Please Choose a
2010-06-12 10:28:00
375
原创 How to Initialize Child Controls in a Derived CDialogBar
DialogBar相比Dialog有很多优势。因CDialogBar继承于CControlBar,因此其可以Docking在窗口一边,而把CView挤压开,但是 CDialogBar 的使用并不是很容易,因为 MFC 里面并没有提供直接可以使用的CDialogBar,我们需要自己动手,打造自己的完美的 DialogBar。 首先,你需要建立一个CDialog的子类(比CMyDlgBar)。然后,我们来把他一步步转换成CDialogBar的子类。 1、改变基类和消息映射 我们头文件中把CMyDlgBar的基类
2010-06-11 14:08:00
368
原创 CDialogBar上的按钮为灰色
vs2008 添加控件变量关联右击控件添加变量是灰色的 见 http://support.microsoft.com/default.aspx?scid=kb;en-us;98198
2010-06-11 13:58:00
461
原创 OpenDocumentFile与OnOpenDocument区别
<br />CWinApp::OnFileOpen调用CDocManager::OnFileOpen。 <br />CDocManager::OnFileOpen首先显示文件打开对话框(AFX_IDS_OPENFILE),然后调用CWinApp:: OpenDocumentFile(FileName)。 <br />CWinApp::OpenDocumentFile(FileName)调用CDocManager::OpenDocumentFile。 <br />CDocManager::OpenDo
2010-06-07 19:22:00
2517
原创 导入配置参数注册表并立马生效
<br />void CMainFrame::OnImportRegedit()<br />{<br /> // TODO: Add your command handler code here<br /> CFileDialog dlg(TRUE,NULL,NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,<br /> "Register File(*.reg)|*.reg||");<br /> if(dlg.DoModal() == IDOK)<br /> {<b
2010-06-07 19:09:00
362
原创 去掉文件名的后缀
<br />CString strFile = "file1.txt "; <br />int pos = strFile.ReverseFind( '. ')); <br />if ( pos > 0 ) <br /> CString strRet = strFile.Left(pos); <br /><br />// Now, strRet == "file1 "
2010-06-01 19:10:00
507
原创 include 'stdafx.h' before including this file for PCH
预编译头文件(一般扩展名为.PCH),是把一个工程中较稳定的代码预先编译好放在一个文件(.PCH)里.这些预先编译好的代码可以是任何的C/C++代码--甚至可以是inline函数,只它们在整个工程中是较为稳定的,即在工程开发过程中不会经常被修改的代码. 为什么需要预编译头文件?一言以蔽之:提高编译速度.一般地,编译器以文件为单位编译,如果修改了一工程中的一个文件则所有文件都要重新编译,包括头文件里
2010-05-28 15:05:00
2872
转载 MFC数组类CArray的使用的操作详解
MFC的数组类支持的数组类似于常规数组,可以存放任何数据类型。常规数组在使用前必须将其定义成能够容纳所有可能需要的元素,即先确定大小,而MFC数组类创建的对象可以根据需要动态地增大或减小,数组的起始下标是0,而上限可以是固定的,也可以随着元素的增加而增加,数组在内存中的地址仍然是连续分配的。 MFC定义了数组模板类CArray,并针对各种常用变量类型定义了CByteArray,CArray,CU
2010-05-22 10:39:00
310
原创 指向vector的指针
有时需要使用指向vector的一个指针,我们可以这样来做。 vector v; 表达式v[0]生产一个指向vector中第一个元素的引用,所以,&v[0]是指向那个首元素的指针。vector中的元素被C++标准限定为存储在连续内存中,就像是一个数组,所以,如果我们想要传递v给这样的C风格的API: void doSomething(const int* p
2010-05-22 10:27:00
8098
原创 C++中线程函数中方访问成员变量
创建线程时,线程函数如果要设置成类的成员函数,则必须是静态成员函数,在此函数中不能使用非静态成员变量,如果要使用非静态成员变量的话,比如在MFC中,最好不要将MFC类的指针传递给线程函数,最好是传句柄给线程,创建线程用AfxBeginThread,把this作为第二个参数传递。 线程函数是回调函数,因此它必须是静态成员函数或者是类外部声明的全局函数。全局线程函数:UINT Thread(p
2010-05-20 20:34:00
2273
转载 使用MFC 发送消息模拟按钮按下事件
有时我们需要这么做, 手动模拟按钮按下的事件, 让程序做出与按钮真的按下时一样的响应. 设按钮ID为ID_BTN_OK, 当前Dialog窗口. 实际上系统并不能区分按钮是真的按下了(如用鼠标点击), 还是一个我们自己用代码模拟出的一种"假象".它所需要知道的只是哪个窗口(按钮也是一种窗口)发生了哪一种事件, 然后在消息循环中处理它. 系统怎么才能知道这些呢? 当然靠的是消息(mes
2010-05-19 20:26:00
1891
2
转载 CFileDialog使用
CFileDialog文件选择对话框的使用:首先构造一个对象并提供相应的参数,构造函数原型如下:CFileDialog::CFileDialog( BOOL bOpenFileDialog, LPCTSTR lpszDefExt = NULL, LPCTSTR lpszFileName = NULL, DWORD dwFlags = OFN_HIDEREADONLY | OFN_OVERWRITE
2010-05-12 13:28:00
575
原创 strtok读取以逗号分开的字符串
strtok 原型:extern char *strtok(char *s, char *delim); 用法:#include 功能:分解字符串为一组标记串。s为要分解的字符串,delim为分隔符字符串。 说明:首次调用时,s必须指向要分解的字
2010-05-12 13:05:00
832
转载 .dll .lib使用
1、调用DLL的概述。 应用程序导入函数与DLL文件中的导出函数进行链接有两种方式:隐式链接和显式链接。所谓的隐式链接是指在应用程序中不需指明DLL文件的实际存储路径,程序员不需关心DLL文件的实际装载。而显式链接与此相反。 采用隐式链接方式,所有被应用程序调用的DLL文件都会在应用程序EXE文件加载时被加载在到内存中,程序员在建立一个DLL文件时,链接程序 (1.注意,链接
2010-04-19 19:12:00
335
转载 VC实现生产者-消费者问题
利用信号量和VC++程序设计环境实现生产者/消费者问题。 ///////////////////////////////////////////////////////////////////////! 定义信号量 HANDLE m_S_Producer; // Semaphore HANDLE m_S_Consumer; // Semaphore
2010-04-14 12:31:00
601
转载 MFC工程中,各个类之间相互获取指针
初学MFC,很多人都会有个疑惑:为什么SDI中有五个基础类,他们之间是否有联系,如何互相调用指针和句柄?其实,在VC中编程中,对于刚刚开始学习的同学,最大的障碍和问题就是消息机制和指针获取与操作。这些内容基本上是每本VC学习工具书上必讲的内容,而且通过MSDN很多问题都能解决。为了方便,本文从网上东拼西凑解释一下。 SDI中有五个类分别为:A、CAboutDlg “
2010-03-31 08:35:00
285
原创 vc6.0出现应用程序错误
在VC6.0(With SP6)中点击File-Open无效,点击工具栏上的Open按钮则程序直接崩溃,Project-Add File To Project也不行,于是上网搜索,结果是VC6.0会与Visio冲突,解决办法是卸载Visio就OK了。
2010-03-30 08:51:00
390
原创 VC中加载LIB文件
MFC编写程序,都要用到动态链接库,MFC相关的动态库有MFCD42和MFC42等,MFC框架程序已经自动加载,那么如何引入第三方的动态链接库到工程中呢? 静态链接库是要先把程序中所需要使用的函数编译成机器码,保存在*.lib文件中。编译器会去*.lib中找出所需要的函数,并把这些函数的机器码复制一份,放在可执行文件中。将lib库引入工程,有下面3种方法。第一种方法,lib文件直接加入
2010-03-29 18:35:00
2069
转载 sort()和stable_sort()
sort()和stable_sort()都對container做sort的動作,但對於相等的值,sort()和stable_sort()處理的方式不一樣,stable_sort()會保證不更改原先的順序,但sort()則不保證,有可能更改順序,但也有可能不改,這樣講還是很籠統我們想先依年齡排序,若年齡相同,則依姓名的字母排序在STL我們該怎麼寫呢?我們必須先對姓名排序,使用sort(),然
2010-03-23 12:23:00
563
视频中背景建模目标检测综述(北京大学)
2012-11-13
OpenGL 高级编程与可视化系统开发-高级编程篇.part2
2010-09-02
OpenGL 高级编程与可视化系统开发-高级编程篇.part1
2010-09-02
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人