
VC-Custom
花熊
毕业于西安交通大学
展开
-
53.VC(Custom)-vs项目依赖项
用了这么久项目依赖项,居然没注意到这个小细节:如果项目依赖项是lib库,你不需要在工程配置指明lib名字,或直在代码中包含lib名字,直接就可以用了原创 2016-03-07 20:53:42 · 901 阅读 · 1 评论 -
34.VC(custom)-互斥对象详记
互斥对象的行为特性与关键代码段相同,但是互斥对象属于内核对象,而关键代码段则属于用户方式对象。这意味着互斥对象的运行速度比关键代码段要慢。但是这也意味着不同进程中的多个线程能够访问单个互斥对象,并且这意味着线程在等待访问资源时可以设定一个超时值I D用于标识系统中的哪个线程当前拥原创 2011-07-12 17:21:33 · 847 阅读 · 0 评论 -
32.VC(custom)-生成后事件命令行
在“生成事件-->生成后事件”属性的命令行属性中设置“copy "$(TargetPath)" \TDM3000-DEV\Bin”,该命令表示在生成该工程后,把该工程生成的可执行文件或dll等拷贝到该工程所在磁盘(今设为F:盘)的Bin目录下(即F:\TDM3原创 2011-07-06 10:15:04 · 4031 阅读 · 1 评论 -
30.VC(custom)-伪句柄
DWORD WINAPI ParentThread(PVOID pvParam){ HANDLE hThreadParent = GetCurrentThread(); CreateThread(NULL, 0 , ChildThread,原创 2011-07-04 10:00:33 · 638 阅读 · 0 评论 -
28.VC(custom)-控制一个程序只能有一个进程(单例随手代码)
EnumWindows的使用BOOL EnumWindows( WNDENUMPROC lpEnumFunc, LPARAMlParam );该函数枚举所有屏幕上的顶层窗口,并将窗口句柄传送给应用程序定义的回调函数,其中lParam是传递给lpEnumFunc的参数。回调函数返回FALSE将停止枚举,否则EnumWindows函数继续到所有顶层窗口枚举完为止。例如获取所有的桌面原创 2011-06-14 15:49:00 · 1943 阅读 · 0 评论 -
24.VC(custom)-辅助线程安全退出( 双Event)
在日常中,我们经常需要用到辅助线程,那么在程序退出时一定要先保证辅助线程已安全退出,因为在程序销毁时很多资源也被销毁掉了,那么如果这时辅助线程要用到某些资源已不存在了,就可能发生不可预料的后果(一般是程序崩溃)。怎么让辅助线程安全退出呢?原创 2011-05-06 08:53:00 · 1283 阅读 · 0 评论 -
20.VC(custom)-CFile详解
用了无数次CFile,最近突然发现自己对CFile却不是太熟悉,真是杯具!!!!!,所以做了个Demo验证了部分疑惑modeCreate:文件不存在就创建文件,若存在而无modeNoTruncate标志则清空文件,有modeNoTruncate标志则不清空原创 2011-01-26 09:32:00 · 3820 阅读 · 0 评论 -
19.VC(custom)-CreateProcess函数详解
CreateProcess说明:WIN32API函数CreateProcess用来创建一个新的进程和它的主线程,这个新进程运行指定的可执行文件。函数原型:BOOL CreateProcess( LPCTSTR lpApplicationName, LPTSTR lpCommandLine, LPSECURITY_ATTRIBUTES lpProcessAttributes。 LPSECURITY_ATTRIBUT原创 2011-02-22 21:27:00 · 26753 阅读 · 1 评论 -
2.VC(custom)-两种解析EDIT控件上文本的方式
研究了那么久,在EDIT控件上解析一行一行文本的方式整理了一下:设EDIT控件关联的变量为m_WriteEdit一行一行的解析方法:第一种:int nLen=m_WriteEdit.GetLineCount();int nStart=0; for (int i=0;i { CString strBuf; CString szText; m_WriteEd原创 2010-05-16 14:36:00 · 683 阅读 · 0 评论 -
33.VC(custom)-线程同步和循环锁
先介绍几个概念:原子访问:是指线程在访问资源时能够确保所有其他线程都不在同一时间内访问相同的资源循环锁:是指在线程1中如果要对变量进行操作,要先查看这个变量(或资源)有没有被其它线程用到,如果是,则一直循环(循环次数自定),直到其它线程放弃对该变量(或资源)的控制,如果否,直接可原创 2011-07-07 11:01:39 · 2733 阅读 · 0 评论 -
14.VC(custom)-原码、补码、反码、INFINITE解释和怎么WaitForSingleObject超时大于0x7FFFFFFF
INFINITE 原码 反码 补码 WaitForSingleObject 0x7FFFFFFF原创 2010-12-07 15:44:00 · 2821 阅读 · 0 评论 -
12.VC(custom)-MFC应用程序配置不正确解决方案
[现象]对这个问题的研究是起源于这么一个现象:当你用VC++2005(或者其它.NET)写程序后,在自己的计算机上能毫无问题地运行,但是当把此exe文件拷贝到别人电脑上时,便不能运行了,大致的错误提示如下:应用程序配置不正确,请重新安装程序……或者是MSVCR80D.dll 没有找到什么的(我记得不是很清楚,不过大致是这样的) [分析]看到这样的提示,当然不会傻到重装咯。第一反应应该是什么配置有问题、或者是缺少了什么依赖的库文件;于是我就根据以前Windows缺少库文件的经验,把所有库文件(××.DLL)统原创 2010-11-30 10:59:00 · 3254 阅读 · 0 评论 -
7.VC(custom)-解决DLL和主调程序的资源冲突及如何使用Dll的资源
DLL资源冲突 如何使用DLL的资源原创 2010-11-18 17:08:00 · 5582 阅读 · 0 评论 -
3.VC(custom)-WM_PAINT和WM_ERASEBKGND
MFC背景,WM_ERASEBKGND原创 2010-07-13 21:37:00 · 1239 阅读 · 0 评论 -
38.VC(custom)-调用临时Fonts(随手代码)
系统Windows\Fonts找不到,没法了,自己在EXE目录下建一个Fonts目录,直接临时调用: 1.int XXX::InstallTempFont(){ wchar_t path[MAX_PATH]; GetModuleFileName(NU原创 2011-09-16 14:44:39 · 1648 阅读 · 0 评论 -
45.VC(custom)-相对路径和绝对路径相到转换
相对路径到绝对路径PathCombinehttp://msdn2.microsoft.com/en-us/library/ms628544.aspx 绝对路径到相对路径PathRelativePathTohttp://msdn2.microsoft.com/en-us/library/ms628614.aspx #include "stdafx.h"#inclu原创 2012-07-31 21:53:38 · 2494 阅读 · 0 评论 -
9.VC(custom)-windows消息机制(消息循环)
一 Windows中有一个系统消息队列,对于每一个正在执行的Windows应用程序,系统为其建立一个“消息队列”,即应用程序队列,用来存放该程序可能创建的各种窗口的消息。应用程序中含有一段称作“消息循环”的代码,用来从消息队列中检索这些消息并把它们分发到相应的窗口函数中。二 Windows为当前执行的每个Windows程序维护一个「消息队列」。在发生输入事件之后,Windows将事原创 2010-11-18 17:21:00 · 1496 阅读 · 0 评论 -
0.VC(Custom)-DisableThreadLibraryCalls
DisableThreadLibraryCalls 的MSDN解释是这样的:The DisableThreadLibraryCalls function lets a DLL disable the DLL_THREAD_ATTACH and DLL_THREAD_DETACH notification calls.就是不接收这两个消息,his can be a useful op原创 2011-12-02 12:45:54 · 2526 阅读 · 0 评论 -
0.VC(Custom)-Visual Studio默认使用原始编译版本打开(小技巧)
比如vs2008版本生成的工程 ,如果电脑中装了更高的vs2013版本,那么就会默认使用vs2013关联打开解决方案:VS-工具-选项-环境-常规-点击“还原文件关联”-确定原创 2012-02-18 09:50:38 · 791 阅读 · 0 评论 -
52.VC(Custom)-vc助手–支持预生成宏、注释
1.打开Vistual Assist X options2.在Advanced–>Suggestions页面选中Edit VA Snippets3.右键任一选项,New一个,在左边编缉如下:之后,在VC中使用#pra就会自动弹出头文件保护生成#ifndef __$FILE_BASE_UPPER$_H__#define __$FILE_BASE_UPPER$_H__原创 2015-10-30 15:49:59 · 1856 阅读 · 0 评论 -
0.VC(Custom)-创建和解析桌面快捷方式(示例源码)
RT:创建:void CreateShortcut(LPCTSTR lpszExe, LPCTSTR lpszLnk){ ::CoInitialize(NULL); IShellLink *psl = NULL; IPersistFile *ppf = NULL; HRESULT hr = ::CoCreateInstance( CLSID_ShellLi原创 2012-06-04 10:15:37 · 992 阅读 · 0 评论 -
51.VC(Custom)-__super简介
http://msdn.microsoft.com/zh-cn/library/94dw1w7x.aspx__super允许您显式说明要为正在重写的函数调用基类实现。如__super::member_function();备注在重载阶段将考虑所有可访问的基类方法,可提供最佳匹配项的函数就是调用的函数。 1.__super 只能在成员函数体内显示。2.__super原创 2015-10-30 15:41:19 · 594 阅读 · 0 评论 -
50.VC(custom)-解决VS启动时activityLog.xml文件报错
在运行破解版的VisualGDB时,因为原来安装过更新的试用版本,所以activityLog.xml文件报错解决方案:1.搜索到devenv.exe所在路径2.cmd切换到对应路径3.运行devenv /resetuserdata ,4.运行devenv /log5.如果还报错,就在tools里把插件清掉 //----------------------------原创 2015-10-11 11:53:34 · 1499 阅读 · 0 评论 -
35.VC(custom)-VS2008下编的程序生成的EXE 在没有安装VS2008的计算机上能运行
我的系统是VISTA 用VS2008编的一个程序RELEASE生成的EXE文件 传给别人的XP系统用VC6的电脑就不能打开 为什么?我能够打开XP下VC6编的程序 解决办法:修改你VC项目的属性:常规选项中“MFC的使用”这里不要选择“在共享DLL中使原创 2011-08-05 22:20:23 · 2757 阅读 · 0 评论 -
17.VC(custom)-在Unicode环境下让Trace打印出中文字体出来
在Unicode环境下让Trace打印出中文字体出来?实现条件,重新配置地域化信息为中文,再调用Trace,再恢复原来地域化信息即可函数:setlocale原型: char * setlocale ( int category, const char * locale );原创 2011-01-06 21:02:00 · 1756 阅读 · 2 评论 -
16.VC(custom)-回调函数(callback function)
1. 回调函数(callback function)?回调,就是两个程序A和C,程序A中含有函数b,程序C中含有函数d,当A要调用C的某个功能时,C需要反过来调用A中的函数b,而且是A不得不为C提供函数b,而C不知道A提供的b叫什么,有什么参数,所以C会规定b有什么参数,然后由A通过C中的函数d传入函数b的名字(也就函数d的一个参数和b的函数原型一致),这时b就是回调函数,而d就是注册函数.举个例子HHOOK SetWindowsHookEx( int idHo原创 2011-01-06 17:26:00 · 1234 阅读 · 0 评论 -
11.VC(custom)-结束已知应用程序名的进程
从优快云好友博客上挖掘的知识,自己学习兼测试了下,笔记于下:vs2005,unicode环境下#include #include void KillProcess(LPTSTR sProcessName){ TCHAR cTemp[256]; //判该程序是否运行 HANDLE hProcessSnap = NULL; PROCESSENTRY32 pe32={0}; PROCESS_INFORMATION ProcessInfo; STARTUPINFO St原创 2010-11-24 20:15:00 · 1027 阅读 · 0 评论 -
8.VC(custom)-搜索汉字返回拼音首字母
MFC VC 汉字 返回拼音首字母原创 2010-11-16 15:41:00 · 964 阅读 · 0 评论 -
5.VC(Custom)-进程间共享内存映射FileMapping
简明扼要:1.创建:HANDLE hFileMapping = CreateFileMapping(INVALID_HANDLE_VALUE, NULL, PAGE_READWRITE, 0, 1024, _T("XXXX"));//1024是文件大小,自定义2.写入:HANDLE hFileMapping1 = OpenFileMapping(FILE_MAP_WRITE, FALSE, _T("XXXX"));void *pMapView = MapViewOfFile(hFileMapping1原创 2010-11-15 15:45:00 · 1012 阅读 · 0 评论 -
1.VC(custom)-DirectShow9.0在vs2005中存在的问题解决
解决了半天,搜了些相关资料,终于搞定,记录一下,以防意外:首先,就是编译baseclasses,什么是baseclasses?打开你的dx的sdk安装目录,例如:D:/DX90SDK/Samples/C++/DirectShow/这里就有一个叫baseclasses的工程,为安全起见,请先备份此工程。1,双击baseclasses.sln打开,提示我们需要转换工程,按提示转换就是了,编译提原创 2010-05-16 13:15:00 · 1055 阅读 · 1 评论 -
39.VC(custom)-CTooltip简单用法
1.父窗口中一定要调用EnableToolTips(TRUE);2.在oncreate中初始化:m_Tip.Create(this); m_Tip.AddTool(this, m_szTipText);3.需要显示时:if (m_Tip.GetSafeHwnd原创 2011-09-27 12:19:44 · 2304 阅读 · 0 评论 -
36.VC(custom)-SetWindowRgn注意点
Rgn每次只能被SetWindowRgn设置一次,比如A窗口SetWindowRgn调用了Rgn1,那B窗口的SetWindowRgn就不能再调用Rgn1,另比如A窗口本来就很小,Rgn1的外包RECT要是大于A的实际大小,那么A有一部分是显示不出来的,不会说A就会自动扩大,要扩原创 2011-08-16 22:08:47 · 1560 阅读 · 0 评论 -
41.VC(custom)-统一编码命名规则
1. #define 保护所有头文件都应该使用 #define 防止头文件被多重包含, 命名格式当是:___H_项目 SkinTK中的头文件 SkinTK/SkinTK/targetver.h 可按如下方式保护:#ifndef SKINTK_SKINTK_TARGETVER_H_#define SKINTK_SKINTK_TARGETVER_H_#endif//SKIN原创 2011-10-09 13:12:34 · 955 阅读 · 0 评论 -
40.VC(custom)-tinyxml小记
1.声明:TiXmlDocument *m_pXml; //m_pXml = new TiXmlDocument;最好用动态生成.2.加载xml文件:1.xml: text is hgy child text is h原创 2011-10-09 09:42:48 · 8874 阅读 · 0 评论 -
37.VC(custom)-CListCTrl控件排序
列表控件(CListCtrl)的排序功能不像其它直接调用API就可以完成的功能一样.它比较复杂.今天将我的一点体会简单地谈一下. 列表控件的顶部有一排按钮,用户可以通过选择不同的列来对记录进行排序。但是 CListCtrl并没有自动排序的功能,我们需要自己添加一个用于排序的回调函原创 2011-08-25 22:03:18 · 2880 阅读 · 0 评论 -
31.VC(custom)=怎么得到执行复杂的算法时需要的时间量
class CStopwatch {public: CStopwatch() { QueryPerformanceFrequency(&m_liPerfFreq); Start(); }原创 2011-07-04 16:55:05 · 759 阅读 · 0 评论 -
27.VC(custom)-VC编译过程
首先是预编译(当然是编译之前做点准备工作了!) 常见的预编译指令有:(1)#include 指令,该指令指示编译器将xxx.xxx文件(.h或.cpp都可以,不要以为只有.h能#include)的全部内容插入此处,(2)#define指令 也就是宏展开了(3)#if、#else和#endif指令 在头文件中主要是避免重复调用 (比如说两个头文件互相包含对方)当然也可以用原创 2011-05-24 11:33:00 · 3032 阅读 · 1 评论 -
22.VC(custom)-radio button的用法
先为对话框加上2个radio button,分别是Radio1和Radio2。问题1:如何让Radio1或者Radio2默认选上?如何知道哪个被选上了?关键是选上,“默认”只要放在OnInitDialog()即可。三种方法可以让它选上,第一种:((CButton *)GetDlgItem(IDC_RADIO1))->SetCheck(TRUE);//选上((CButton *)GetDlgItem(IDC_RADIO1))->SetCheck(FALSE);//不选上((CButton *)GetDlgIt原创 2011-04-17 21:11:00 · 912 阅读 · 0 评论 -
21.VC(custom)-注册窗口类
在WNDCLASS结构中最重要的两个字段是第二个和最后一个,第二个字段(lpfnWndProc) 是依据这个类别来建立的所有窗口所使用的窗口消息处理程序的地址,最后一个字段是窗口类别的文字名称。程序写作者可以随意定义其名称。在只建立一个窗口的程序中,窗口类别名称通常设定为程序名称。原创 2011-04-17 20:11:00 · 2737 阅读 · 0 评论 -
15.VC(custom)- 在Vista Win7 下提高管理员权限问题
以下程序集清单(Assembly Manifest)示例使你的程序在VISTA和WIN7下需要管理员权限,即在程序运行时弹出UAC提升权限对话框。原创 2011-01-05 16:06:00 · 1713 阅读 · 0 评论