
VC
小大小丑
小丑
展开
-
VC++6.0调试篇:远程调试
VC++6.0调试篇:远程调试 转自:http://blog.youkuaiyun.com/coding_hello/archive/2008/11/23/3357384.aspx 下面来说一下具体的做法。先明确下概念,远程调试嘛,自然是两个机器之间调试。程序运行在目标机器上,调试器运行在本机。当然,目标机器上还是要有少许辅助程序才能跟本机的调试器connect上,以便通讯。转载 2008-11-26 19:37:00 · 1054 阅读 · 0 评论 -
ATL编程初级教程
http://www.vckbase.com/document/viewdoc/?id=211 介绍 本教程的目的是告诉你如何使用ATL创建一个COM服务器,并使用Visual C++和Visual Basic程序来分别调用这个服务器。我并不想深入探讨COM的细节,也不想让你深陷于IDL之中。这一教程只是为VC++的新手程序员设计的,告诉他们利用ATL来创建一个COM对象有多么简单,并让转载 2009-07-29 12:55:00 · 1187 阅读 · 0 评论 -
WM_COPYDATA 消息实现进程间通信
// WM_COPYDATA 使用的结构/* * lParam of WM_COPYDATA message points to... */typedef struct tagCOPYDATASTRUCT { ULONG_PTR dwData; DWORD cbData; PVOID lpData;} COPYDATASTRUCT, *PCOPYDATASTRUCT;// 自原创 2009-08-27 11:27:00 · 7952 阅读 · 2 评论 -
枚举Windows窗口
BOOL EnumWindows( WNDENUMPROC lpEnumFunc, // callback function LPARAM lParam // application-defined value );执行EnumWindows时,User32.dll会把传递进来的lpEnumFunc和lParam记录下来,然后开始遍历所有顶层窗口。每找到一个转载 2009-09-01 11:46:00 · 1719 阅读 · 0 评论 -
进程创建
DWORD WINAPI CEXE1Dlg::StartMeeting(LPVOID param){ CEXE1Dlg* pDlg = (CEXE1Dlg*)(param); pDlg->m_bStop = false; while(1) { if(!pDlg->m_bStop) { STARTUPINFO si; PROCESS_INFORMATION pi;原创 2009-09-01 12:00:00 · 805 阅读 · 0 评论 -
Window中获得命令行参数的方法和通用的命令行分析方法
Window中获得命令行参数的方法和通用的命令行分析方法 MFC中获取命令行参数的几种方法 在MFC程序中,可以用以下几种方法来获取命令行参数。为方便说明,我们假设执行了命令:C:/test/app.exe -1 -2 方法一::GetCommandLine();将获取到 "C:/test/app.exe" -1 -2 方法二for (int i=0原创 2009-09-03 11:57:00 · 1726 阅读 · 0 评论 -
VC中定时器的使用(SETTIMER,KILLTIMER,WM_TIMER消息)
VC中定时器的使用(SETTIMER,KILLTIMER,WM_TIMER消息)//启动定时器 ::SetTimer(xHWND,1,1000,NULL); //取消定时器 ::KillTimer(xHWND,1);void CAutoExeDlg::OnTimer(UINT nIDEvent) { //定时器消息 MessageBox("OK!"); CDialog::OnTime转载 2009-09-04 12:01:00 · 2345 阅读 · 0 评论 -
对话框最前面显示
一句话解决问题: SetWindowPos(&wndTopMost,0,0,0,0,SWP_NOSIZE|SWP_NOMOVE); 如果想取消总是处在最上边的风格,则: SetWindowPos(&wndNoTopMost,0,0,0,0,SWP_NOSIZE|SWP_NOMOVE);原创 2009-09-04 11:49:00 · 1215 阅读 · 0 评论 -
修改Windows注册的类名
用MFC写的对话框程序的默认的类名是#32770,最近有个优快云上有个朋友问我将这个类名改成自定义的类名(如 :BlackFox的对话框)。玩过SDK的朋友可能知道,在调用CreateWindow之前一般都进行RegisterClass的操作, 就是说建立一个窗口实例前,得先将这个窗口类注册。其实MFC只是将这些操作封装在里面去了而以,原理上我 们只要将Registe原创 2009-09-07 21:11:00 · 1093 阅读 · 0 评论 -
线程同步方法一: CRITICAL_SECTION (临界区)
使用方法: // 临界区CRITICAL_SECTION m_cs; // 线程函数1ThreadFunction1(){ EnterCriticalSection(&m_cs); // do something LeaveCriticalSection(&m_cs);} // 线程函数1Threa原创 2009-09-10 20:41:00 · 2614 阅读 · 0 评论 -
对话框最小化消息 的发送与接收
// 发送SendMessage(WM_SYSCOMMAND, SC_MINIMIZE); // 接收看VC 如何捕捉窗口的最大化、最小化消息三种方法: 1.在WM_SIZE的响应函数中添加: void CMyFrameWnd::OnSize(UINT nType, int cx, int cy) { CFrameWnd::OnSize(nType, cx转载 2009-09-07 21:12:00 · 3466 阅读 · 0 评论 -
绘制圆角对话框的边框
void CDlg::InitUI(){ CRect rect, rectTemp, rectItem; CRgn rgnTemp; GetClientRect(rect); m_rgn.CreateRoundRectRgn(0, 0,rect.Width(),rect.Height(), 20, 20); m_rgnFrame.CreateRoundRectRgn(0原创 2009-09-17 20:38:00 · 1774 阅读 · 0 评论 -
有UI界面的程序输出数据到控制台
AllocConsole(); HANDLE hOutput=GetStdHandle(STD_OUTPUT_HANDLE); unsigned long lgsize; WriteFile(hOutput,strbuf,strlen(strbuf),&lgsize,0); FreeConsole();原创 2009-09-17 20:40:00 · 1249 阅读 · 0 评论 -
VC++中启用XP主题外观
.NET Winform中,启用XP主题外观执行以下语句即可:Application.EnableVisualStyles();VC Win32项目,默认是不启用XP主题外观的,并不是每个人都喜欢简洁的Windows经典主题外观。启用XP主题外观,需要用资源文件。有种更简单的方式:头文件里加入以下语句:#include CommCtrl.h> #pragma comment(lib,转载 2009-09-18 09:21:00 · 1104 阅读 · 0 评论 -
MessageBox对话框
MessageBox对话框是比较常用的一个信息对话框,其不仅能够定义显示的信息内容、信息提示图标,而且可以定义按钮组合及对话框的标题,是一个功能齐全的信息对话框信息提示图标,而且可以定义按钮组合及对话框的标题,是一个功能齐全的信息对框。 1、函数原型及参数 function MessageBox(hWnd: HWND; Text, Caption: PChar; Type: Word): In转载 2009-09-23 10:52:00 · 690 阅读 · 0 评论 -
ModifyMenu 改变菜单项属性的API函数
ModifyMenu 函数功能:该参数修改已存在的菜单项,并指定菜单项的内容、外观和性能。 函数原型:BOOL ModifyMenu(HMENU hMnu,UINT uPosition,UINT uFlags,UINT uIDNewltem,LPCTSTR IpNewltem); 参数: hMnu:将被修改的菜单的句柄。 uPosition:指定将被修改的菜单原创 2009-10-12 13:33:00 · 6094 阅读 · 0 评论 -
VC中取消cpp文件味stdafx.h文件的依赖的方法
当把cpp文件加到VC工程时, cpp文件默认是需要包含"stdafx.h"文件的, 否则会报如下的错误fatal error C1010: unexpected end of file while lookingfor precompiled header directive 如果不想包含stdafx.h文件, 可以在workspace下右键该cpp文件setting菜单项原创 2009-10-12 14:45:00 · 1992 阅读 · 0 评论 -
VC2005 的"正在更新IntelliSense” 搞到占用CPU过大解决方法
将/Microsoft Visual Studio 9.0/VC/vcpackages/feacp.dll改名,或者直接删除, 最好改名, 方便还原。原创 2009-10-19 21:09:00 · 1529 阅读 · 0 评论 -
VC中添加快捷键代码实现
http://blog.youkuaiyun.com/luhuillll/archive/2009/07/30/4393289.aspx 方法一:(缺点:菜单改变了, 代码就要随之改变)主菜单快捷键BOOL CExampleDlg::PreTranslateMessage(MSG* pMsg){// TODO: 在此添加专用代码和/或调用基类if (pMsg->message == WM_KE转载 2009-10-21 15:31:00 · 1413 阅读 · 0 评论 -
键盘,鼠标的模拟API
keybd_event(VK_LCONTROL,0,0,0);//按下左ctrl键 keybd_event(S,0,0,0);//再按下s键 keybd_event(S,0,KEYEVENTF_KEYUP,0);//先放开s键 keybd_event(VK_LCONTROL,0,KEYEVENTF_KEYUP,0);//再放开ctrl键 POINT lpPoint原创 2009-10-20 09:30:00 · 1010 阅读 · 0 评论 -
VC中的#import
ms-help://MS.MSDNQTR.v80.chs/MS.MSDN.v80/MS.VisualStudio.v80.chs/dv_vclang/html/e0fc4564-b6cf-4a36-bf51-6ccd7abd0a94.htmms-help://MS.MSDNQTR.v80.chs/MS.MSDN.v80/MS.VisualStudio.v80.chs/dv_vclang/html原创 2009-11-03 17:46:00 · 2927 阅读 · 0 评论 -
WinMM.dll 函数汇总
Windows 多媒体函数(winmm.dll 中的函数)汇总 函数简介auxGetDevCaps查询指定的辅助输出设备以确定其性能auxGetNumDevs检取系统中存在的辅助输出设备的数量auxGetVolume返回指定的辅助输出设备的当前卷设备auxOutMessage向指定的辅助输出设备发送一条消息转载 2009-10-29 21:13:00 · 1815 阅读 · 0 评论 -
查看VC6.0安装了SP x的补丁方法
在vc菜单的project->compoents and controls gallery选registered activex controls里找括号内的说明有没有sp x 如果由 sp6就说明已经安装了sp6补丁。原创 2009-11-12 21:37:00 · 2478 阅读 · 1 评论 -
DLL 的DllMain函数
BOOL APIENTRY DllMain( HANDLE hModule, DWORD ul_reason_for_call, LPVOID lpReserved ){ switch (ul_reason_for_call) { case DLL_PROCESS_ATTACH: break; case DLL_PROCES原创 2009-11-17 09:45:00 · 1161 阅读 · 0 评论 -
VC 开源项目
http://www.codeproject.com/KB/cpp/OpenSource_VC_MFC.aspx IntroductionThis article lists of some of the best Open Source projects written in VC++/MFC. BackgroundCodeProject has the best sourc转载 2010-01-14 19:30:00 · 1882 阅读 · 0 评论 -
Windows 临界区CRITICAL_SECTION,内核事件Event,互斥量Mutex,信号量Semaphore
http://www.cnblogs.com/vieri122/archive/2009/09/10/1564104.html Windows 临界区,内核事件,互斥量,信号量。 临界区,内核事件,互斥量,信号量,都能完成线程的同步,在这里把他们各自的函数调用,结构定义,以及适用情况做一个总结。 一. 临界区 CRITICAL_SECTION:适用范围:它转载 2009-11-24 18:58:00 · 3436 阅读 · 1 评论 -
获得CPU序列号, 获得硬盘序列号, 监听硬盘大小的源码工程
20100128_获得CPU序列号, 获得硬盘序列号, 监听硬盘大小的源码工程cay22_document原创 2010-01-28 18:54:00 · 1723 阅读 · 1 评论 -
关于VC60中创建MFC工程时, 使用了UNICODE选项后编译报错的解决方法
在使用VC60创建MFC工程时, 在工程选项中添加 UNICODE 选项后编译报错.msvcrtd.lib(crtexew.obj) : error LNK2001: unresolved external symbol _WinMain@16解决方法: 1.改语言定义: 在Project Settings的"C++"页中的"Preprocessor Definitions"中原创 2009-12-18 13:36:00 · 1537 阅读 · 0 评论 -
MultiByteToWideChar与WideCharToMultiByte的使用
MultiByteToWideChar与WideCharToMultiByte的使用http://www.cppblog.com/sunraiing9/archive/2007/03/21/20281.html1. char -> wchar_tchar sText[20] = {"多字节字符串!OK!"};// 我们只需要将MultiByteToWideChar()的第四个形参设为-1,//转载 2010-03-02 17:50:00 · 2328 阅读 · 0 评论 -
程序运行调试日志的简单方法
程序运行调试日志的简单方法1. 添加下面的宏 // 在调试状态下, 才会产生日志#ifdef _DEBUG#define WRITE_LOG(strLog) WriteLog(strLog, __FILE__, __LINE__, __FUNCTION__)#define WRITE_DATA(strData, nDataLen) WriteData(strData,原创 2009-12-25 21:06:00 · 1492 阅读 · 0 评论 -
'CoInitializeEx' : undeclared identifier 问题
红色字为验证过的:如果出现CoInitializeEx : undeclared identifier错误,只在Project->Setting->C/C++标签页的Preprocessor definition中加入_WIN32_DCOM或者加入_WIN32_WINNT=0x400就可以解决 ////////////////////////////////////////////原创 2009-12-31 14:30:00 · 3705 阅读 · 0 评论 -
__declspec关键字详细用法
http://hi.baidu.com/baiyw920/blog/item/a06ddb986314fd0f6e068c0c.html __declspec关键字详细用法 __declspec用于指定所给定类型的实例的与Microsoft相关的存储方式。其它的有关存储方式的修饰符如static与extern等是C和C++语言的ANSI规范,而__declspec是一种扩展属性的定转载 2009-12-31 16:19:00 · 1177 阅读 · 0 评论 -
VS2005例子中编译时出现"已跳过生成: 项目", 不编译, 也不报错
编译msdn2005的示例程序总是会出现:编译1> ------ 已跳过生成: 项目: **** ------ 1> ========== 生成: 0 成功或最新,0 失败,1 被跳过 ==========右键盘项目属性:提示示能完成操作,未指定的错误. 最好的解决办法:查下“生成”-> “配置管理器”-> “活动解决方案平台”是否选原创 2010-01-04 11:55:00 · 6560 阅读 · 3 评论 -
VS2005工具上面生成时选择Debug和Release 这个怎么没了
你说的这个选择叫"解决方案配置":可以用"自定义工具栏"的方法把你要的东西添上,"解决方案配置"命令在"生成"菜单里..拖放到工具栏上就可以了原创 2010-03-16 12:02:00 · 2747 阅读 · 0 评论 -
MSDN2005 MFC 示例地址
ms-help://MS.MSDNQTR.v80.chs/MS.MSDN.v80/MS.VisualStudio.v80.chs/dv_vcsample/html/e2ea80a5-1674-4c81-8cb2-93e7d8aeb2fa.htm原创 2010-01-05 09:28:00 · 1012 阅读 · 0 评论 -
VC 程序自删除功能的实现
http://jackaldire.com/201004/exe-self-delete-and-self-modify/其实真正的删除自己肯定是做不到的,至少用户态不行。windows下只要一个文件被某个进程打开就不能被删掉(Linux下可以删除任何打开的文件,只要有权限,而且一般不会影响程序的执行,因为文件系统会等到所有的打开的fd都释放后会才回收inode和data),所以一个windo转载 2010-03-31 10:06:00 · 2497 阅读 · 0 评论 -
获取硬盘的大小
////////////////////////////////////////////////////////////////////////////// // 获取硬盘的大小, 已使用等信息void CGetHarkdiskSizeDlg::OnGetHarddiskSize() { // TODO: Add your control notification han原创 2010-04-02 11:54:00 · 1419 阅读 · 0 评论 -
使标题栏的关闭按钮无效
::EnableMenuItem(::GetSystemMenu(m_hWnd, FALSE), SC_CLOSE, MF_BYCOMMAND | MF_DISABLED |MF_GRAYED); 如此类推。。。原创 2010-04-01 14:46:00 · 863 阅读 · 0 评论 -
非模态对话框的使用
1. 创建CTestDlg *pDlg=new CTestDlg;pDlg->Create(IDD_TESTDLG,this);pDlg->ShowWindow(SW_SHOW);2. 不使用时要销毁 if(pDlg != 0) { pDlg->DestroyWindow(); delete pDlg; pDl原创 2010-04-01 14:52:00 · 736 阅读 · 0 评论 -
推荐一个免费的HTTP抓包分析工具 Fiddler Web Debugger
http://www.turbozv.com/read.php/830.htm HTTP抓包工具有很多,比如 HTTP Debugger Pro, EffeTech HTTP Sniffer,但是都不是免费的。现在推荐一个免费的HTTP抓包工具,功能比那些商业化的一点都不弱。 // 下载地址Fiddler Web Debugger: http://www.fiddl转载 2010-04-16 18:12:00 · 5489 阅读 · 0 评论