VC++初尝
文章平均质量分 81
JohnnyHu90
这个作者很懒,什么都没留下…
展开
-
解决VS2010运行Dumpbin命令出错的问题
DumpBin是一个很常用的命令,尤其在我们编写DLL文件的时候,那么,当我们首次运行Dumpbin命令时,往往会出错:如那么怎样解决呢?我们可以在我们安装的VS2010下的如:D:\Program Files\Microsoft Visual Studio 10.0\VC\bin找到dumpbin.exe和vcvars32.bat批处理文件,如果在vc6.0上,可能在出现上述问题时,我们原创 2013-04-04 17:21:20 · 1877 阅读 · 0 评论 -
VC中如何定义一个让所有源程序都能用的全局变量(对象)
如何定义一个变量(对象)让VC中所有源程序都能用。这里借助extern原创 2013-07-17 17:41:11 · 7870 阅读 · 2 评论 -
CObject:operator = 无法访问私成事员(在CObject类中声明)解决方案
在MFC里,CObject的拷贝构造为私有,所以凡是从CObject派生的类,都不能通过拷贝构造来创建新实例,这样做是为了防止浅拷贝,如果要传递一个参数,一般传引用或者指针。如在我的:class CNewTaskInfos : public CObject,CNewTaskInfos继承自 CObject类,而在另一个类中的一个函数需要传递CNewTaskInfos的对象,例如:原创 2013-07-23 20:14:58 · 1091 阅读 · 0 评论 -
VS2010下对话框添加菜单栏和工具栏及其启用,禁用同步
VS2010下对话框添加菜单栏和工具栏及其启用,禁用同步在对话框模式下,菜单栏和工具栏都需要我们自己手动添加。添加菜单栏1、菜单栏的添加比较简单,只需我们创建好“菜单”资源后(即:资源视图->右键单击”XXXDlg.rc”->”添加资源”->资源类型”Menu”->”新建”)创建我们想要的菜单。2、双击资源视图下的对话框ID->”属性”->找到”MENU”->单击下箭头找到创建好的原创 2013-07-29 22:44:16 · 12330 阅读 · 5 评论 -
通过主对话框向其他(子)对话框发送消息
承接上一篇,由于通常我们可能处理的菜单栏和工具栏不一定就是主对话框,有可能是子对话框和其他对话框,那么这是就有一个问题,对于,MSDN的DlgCbr32示例中有这样一句话:“如果对话框不是应用程序的主窗口,则还需要修改它的父框架窗口, 将 WM_IDLEUPDATECMDUI 消息传递给对话框的控制条。”同样,对于WM_KICKIDLE也是一样,只有主对话框是可以响应的,所以,要想要使原创 2013-07-30 13:57:16 · 3795 阅读 · 0 评论 -
SQLite判断表存在的方法——我的解决方案(MFC)
本文基于无幻写的VC连接SQLite3的方法(MFC封装类) 在此基础上增加对数据库中表是否存在的判断,自己愚见,仅供参考。阅读此为前最好先阅读VC连接SQLite3的方法(MFC封装类),不然会不知所以然。不说什么,直接上代码:网上说判断SQLite判断表存在的方法是使用sql语句:SELECT COUNT(*) as CNT FROM sqlite_master where type原创 2013-07-25 12:35:12 · 5648 阅读 · 1 评论 -
CreateThread和AfxBeginThread创建线程实例
CreateThread创建线程1.声明线程函数:1DWORD WINAPI DownloadThread(LPVOID); // 下载线程,2.创建线程:12345678910111213141516// 创建多线程void CMyDown原创 2013-07-30 19:29:49 · 13653 阅读 · 4 评论 -
用CFile类时,遇到“试图越过其尾端对一个未命名的文件进行读写”
一般问题是:已经没数据了,你还要读,或者试图读取并不存在的数据 就会出错;报这种错误!!!举个函数如: C++ Code 123456789101112131415161718192021222324// 数据成员序列化void原创 2013-07-26 22:12:22 · 6696 阅读 · 0 评论 -
5.1 队列的数组实现
队列数组实现的简单操作:12345678910111213141516171819202122232425262728293031323334353637383940414243444546原创 2013-08-23 16:52:15 · 3418 阅读 · 0 评论 -
VC中如何让子对话框响应最大化、最小化、关闭等系统消息
我们知道实现捕获最大化、最小化、关闭、大小变化等系统消息主要有如下两种方法:1、重写PreTranslateMessage函数12345678910111213141516171819202122BOOL CSuperSpeedDlg::PreTran原创 2013-09-05 20:43:01 · 13337 阅读 · 1 评论 -
在WebBrowser控件打开的网页链接后直接打开而不新弹出IE窗口来打开
1、选定控件->添加事件处理程序->添加事件NewWindow2和StatusTextChange2、在这两个事件函数中添加如下代码:12345678910111213141516171819202122void CMyPlatformDlg::NewWi原创 2013-05-13 12:23:45 · 2541 阅读 · 0 评论 -
VS2010给对话框上添加浏览器显示网页
一:显示网页1. 添加"Microsoft web浏览器"控件:工具->选择工具箱>COM组件->Microsoft Web Browser 选中,点“确定”2. 添加控件到对话框;3. 为控件添加变量: CExplorer1 m_webIE;在OninitDialog()函数中加入:m_webIE.Navigate(_T("http://www.2tu.cc/"), NU原创 2013-05-12 17:19:51 · 2449 阅读 · 0 评论 -
VC 如何在一个对话框中获得另一个对话框句柄()
VC 如何在一个对话框中获得另一个对话框句柄(一种方法)当我在编程时,遇到如何在一个对话框(CCommonTaskDlg)中获得另一个对话框(CMyDownloadDlg)的句柄时遇到了问题,那么对于两个联系不紧密,没有父—子关系的窗口时,怎样获得另一个的句柄。在这里我试了好多方法,FindWindow函数,FindWindowEx函数,GetDlgItem函数等很多,当最终的结果均失败了原创 2013-05-11 11:43:05 · 4750 阅读 · 0 评论 -
解决dumpbin无法打开输入文件
但我们执行dumpbin命令想要查看一个DLL提供的导出函数或导出类的时候,往往会出现这样一个问题:那么除了我们编写的DLL文件有问题之外,出现这种问题最重要的一个原因就是忘了给我们要查看的DLL文件加路径,所以,加上适当的路径往往就能解决这个简单的问题:好了,问题解决了!!!!原创 2013-04-05 16:12:58 · 2507 阅读 · 0 评论 -
Cstring转换小记
错误1:不能将参数 从“CString”转换为“const char *”一般方法:Cstring name;那么一般情况下可以这么转:const char * a = (LPCTSTR)name;但在Unicode编码下可能还会出现:不能将参数 从“LPCTSTR”转换为“const char *那么我们就可以再转:const char * a =原创 2013-04-10 18:20:37 · 920 阅读 · 0 评论 -
BROWSEINFO结构
SHBrowseForFolde函数包含的参数,并接收由用户选择的文件夹有关的信息 typedef struct _browseinfo { HWND hwndOwner; PCIDLIST_ABSOLUTE pidlRoot; LPTSTR pszDisplayName; LPCTSTR lpszTitle;翻译 2013-04-11 13:57:13 · 3671 阅读 · 0 评论 -
一场由字符数组char szvalue[30]引发的“血案“
错误原因:执行过程完全正常,但在退出一个线程函数时,出现异常:voidRelease() throw(){ ATLASSERT(nRefs != 0 ); // 卡在这个地方if( _AtlInterlockedDecrement(&nRefs ) pStringMgr->Free( this );}最初由于这个函数是释放CString变量有关的内容,所以认定肯定是原创 2013-04-19 12:22:29 · 1601 阅读 · 0 评论 -
SHGetFileInfo函数
SHGetFileInfo FunctionRetrieves information about an object in the file system, such as a file, folder, directory, or drive root.获得一个文件系统对象的信息,如一个文件、文件夹、目录或者根驱动器等的信息语法(Syntax)DWORD_PTR SHGet翻译 2013-04-10 21:07:02 · 1430 阅读 · 0 评论 -
VS2010 将CString转换成char* 或const char*
VS2010 将CString转换成char* 或const char*网上介绍了各种方法,令你眼花缭乱,但很多方法其实在vs2010下是不凑效的,他们说的大部分方法都是在VC6.0下的转换。而在VS2010的Unicode默认编程环境下,经过试了N回之后还是不成功之后,会令你心烦意乱。下面是网上列举的一些转换的方法:CString转char*,如:char * a = (LPSTR)原创 2013-04-15 17:17:21 · 5668 阅读 · 4 评论 -
最简单的创建多级目录文件夹
最简单的创建多级目录文件夹 ,莫过于使用SHCreateDirectoryEx,不用CreateDirectory一级一级创建文件夹,下面示例(在VS2010下):新建一个Wind32的windows程序,示例是WinTest;1.在#include "stdafx.h"里加入:#include //要加shlobj.h//#pragma comment (lib,"shel原创 2013-04-30 21:39:38 · 3281 阅读 · 0 评论 -
创建固定大小的临时空文件
这是网上的一个示例/* /* 创建指定大小的空文件,支持超大文件(16EB),小于4GB时, /* 参数dwHigh可传入0, /* 成功返回0, 失败返回错误代码 */ BOOL CreateNullFile(DWORD dwHigh, DWORD dwLow, LPCTSTR lpcszFileName) { BOOL bResult = FALSE; // 创建文件原创 2013-04-30 22:19:34 · 1383 阅读 · 0 评论 -
为什么我的GetClientRect()得到的全是0
当我创建一个CMFC控件时,第一次能够创建成功,但当我以原来的形式移植到另一个程序上时,却始终不能成功,换了很多时间找原因,在保持两个程序几乎完全一致的情况下,最终发现,当用到GetClientRect()函数时,他们的值是不同的,一个可以得到一个CRect的值,当另一个调用之后值为0,换句话说,就是根本没得到值。在这里用到的代码是:CRect rect;GetClientRect(re原创 2013-05-11 00:55:01 · 4427 阅读 · 1 评论 -
vs2012偷梁换柱法之改变一个没有m_hWnd的active控件窗口大小
在插入一个Axtivex控件之后,我们有时会需要改变其大小,有的控件可以轻松是使用GetDlgItem(IDC)来获取器矩形面积原创 2013-09-24 14:07:17 · 1985 阅读 · 0 评论