VC++
文章平均质量分 82
昵称不能为空?
学无止境
展开
-
VC-终止线程,ExitThread函数,Te r m i n a t e T h r e a d函数,撤消线程,详解
VC-终止线程,ExitThread函数,Te r m i n a t e T h r e a d函数,撤消线程,详解6.5 终止线程的运行若要终止线程的运行,可以使用下面的方法:• 线程函数返回(最好使用这种方法)。• 通过调用E x i t T h r e a d函数,线程将自行撤消(最好不要使用这种方法)。• 同一个进程或另一个进程中的线程调用Te r m i n a t e T转载 2008-01-28 15:30:00 · 6708 阅读 · 0 评论 -
取得系统中网卡MAC地址的三种方法
网卡地址这个概念有点混淆不清。因为实际上有两个地址,mac地址和物理地址,一般说网卡地址我是指物理地址,不知道别人怎么看?物理地址指的是网卡上的存放地址的ROM里的地址,mac地址是这块卡工作的时候用的地址,一般情况下这两个地址是一样的,所以很多人都混用了,甚至不知道有区别 -_-# 网卡工作的时候,一个以太网帧60到1514(不包括crc),帧的crc是网卡自动加的,前导码转载 2008-07-29 17:08:00 · 7650 阅读 · 1 评论 -
VC开发小技巧
//一、打开CD-ROMmciSendString("Set cdAudio door open wait",NULL,0,NULL);//二、关闭CD_ROMmciSendString("Set cdAudio door closed wait",NULL,0,NULL);//三、关闭计算机OSVERSIONINFO OsVersionInfo; //包含操作系统版本信息的数转载 2008-05-12 18:33:00 · 547 阅读 · 0 评论 -
MFC程序逆向 – 消息篇(上)
标 题: 【原创】MFC程序逆向 – 消息篇(上)+(下) 11楼作 者: szdbg时 间: 2007-10-31,06:26链 接: http://bbs.pediy.com/showthread.php?t=54150前言:记得前一段时间,我刚接触软件破解和逆向这一行时,对于一些软件不知从何处跟踪按钮消息,试了好多方法,就是断不下来,在系统模块中经常转得晕头转向,而一无所获。MFC程转载 2008-05-12 18:38:00 · 1262 阅读 · 0 评论 -
MFC程序逆向 – 消息篇(下)
上篇啰里啰嗦地说了一大堆,其实所说的消息都是PostMessage方式的。MFC中还有另外一种很常见的消息发送方式,就是SendMessage函数。这个消息起始路径和上篇所讲的完全不一样。这种方式下,前面的7个站点均不执行,而是直接进入第8站点:User32内核,从第8站点出来后,这两种消息方式走上了同一条道路,进入第9个站点或第10个站点了,真是殊道同归。对于MFC窗口程序,所有窗口都使用同一窗原创 2008-05-12 18:39:00 · 1678 阅读 · 0 评论 -
消息钩子函数初步掌握篇
Windows系统是建立在事件驱动的机制上的,说穿了就是整个系统都是通过消息的传递来实现的。而钩子是Windows系统中非常重要的系统接口,用它可以截获并处理送给其他应用程序的消息,来完成普通应用程序难以实现的功能。钩子可以监视系统或进程中的各种事件消息,截获发往目标窗口的消息并进行处理。这样,我们就可以在系统中安装自定义的钩子,监视系统中特定事件的发生,完成特定的功能,比如截获键盘、鼠标的输入,转载 2008-08-04 20:00:00 · 721 阅读 · 0 评论 -
使用CDC的四个派生类CClientDC,CPaintDC,CWindowDC,CMetaFileD
使用CDC的四个派生类CClientDC,CPaintDC,CWindowDC,CMetaFileD1.首先介绍一下什么是DC(设备描述表) Windows应用程序通过为指定设备(屏幕,打印机等)创建一个设备描述表(Device Context, DC)在DC表示的逻辑意义的“画布”上进行图形的绘制。DC是一种包含设备信息的数据结构,它包含了物理设备所需的各种状态信息。Win32程序在绘制原创 2008-06-21 11:10:00 · 1351 阅读 · 1 评论 -
打印CListCtrl内容
使用VC的朋友都感觉到打印是VC中比较难掌握的,这里涉及到坐标系的一系列转换,下面的代码只要你能获取到列表的指针,它就能帮你完成打印过程,非常简单。代码如下:typedef struct tagColAtt{ int nColIndex; CString strColText; int nPrintX; int nSubItemIndex;}COLATT;BOO原创 2008-07-01 11:10:00 · 1961 阅读 · 1 评论 -
extern "C"深入详解
时常在cpp的代码之中看到这样的代码: #ifdef __cplusplus extern "C" { #endif //一段代码 #ifdef __cplusplus } #endif 这样的代码到底是什么意思呢?首先,__cplusplus是cpp中的自定义宏,那么定义了这个宏的话表示这是一段cpp的代码,也就是说,上面的代码的含义是:如果这是一段cpp的代码,那么加入extern转载 2008-11-27 10:23:00 · 608 阅读 · 0 评论 -
vc 控制台退出
#include #include BOOL CtrlHandler( DWORD fdwCtrlType ) { switch( fdwCtrlType ) { // Handle the CTRL-C signal. case CTRL_C_EVENT: printf( "Ctrl-C event/n/n" ); Beep( 750, 300原创 2009-02-09 23:29:00 · 1860 阅读 · 0 评论 -
用VC++5.0播放AVI文件的两种方法
用Visual C++开发的面向对象的多媒体应用软件可编译成 真正的EXE可执行文件,无需附加动态库和控件,如VBX和OCX 等。有两种方法可以实现这个功能,一种方法是使用底层AVI 文件函数,从AVI视频文件中读取视频流;另一种是使用现有的 Video forin dows SDK的窗口类MCIWnd(媒体控制界面窗)。 本文将介绍基于VC++5.0环境下,开发播放AVI文件的两种方 法,这两种转载 2009-06-03 14:00:00 · 1563 阅读 · 0 评论 -
OGREODE基础教程
既然用了Ogre,那么一定是要有一个物理引擎的。最后选择了ODE,因为ODE在持续更新,文档稍微要多一些。但是中文文档基本没有,为了以后能快速阅读,只好自己先翻一下了。这只是一个介绍性的文档,其中的代码并不能形成一个完整的可执行程序。如果结合着OgreODE的Demo的代转载 2011-09-27 15:08:24 · 798 阅读 · 0 评论 -
vc 6.0下打开dsw文件非常慢的解决方法
总结以下在出现打开dsw文件很慢时的解决方法,希望对大家能有所帮助。1、看是否是打开文件太多,Close All 所有窗口看能否解决。2、看.ncb文件是否过于巨大所致,可以将其文件删除。3、ctrl+shift+F9,去掉所有定义的断点。原创 2012-06-30 09:12:15 · 843 阅读 · 0 评论 -
error C3121: 无法更改“IFilter”类的 GUID
error C3121: 无法更改“IFilter”类的 GUID参见“IFilter”的声明error C2371: “FontPtr”: 重定义;不同的基类型解决方法:注释掉头文件 中的路径 如:\\#import "E:\\Program Files (x86)\\Microsoft Office\\Office12\\EXCEL.EXE" no_namespac原创 2013-12-31 10:24:24 · 5839 阅读 · 0 评论 -
WebBrowser嵌入对话框中,回车键不响应
问题:在对话框中有个CWebBrowser2控件,其中网页信息中有输入框,需要lwty原创 2014-05-08 17:28:11 · 2700 阅读 · 1 评论 -
GBK转UTF8 C++实现代码
string GBKToUTF8(const std::string& strGBK, int& nLen) { string strOutUTF8 = ""; WCHAR * str1; int n = MultiByteToWideChar(CP_ACP, 0, strGBK.c_str(), -1, NULL, 0); str1 = new WCHAR[n];原创 2014-12-25 16:27:59 · 1208 阅读 · 0 评论 -
VC++6.0 中用 ADO 存取 Access 数据库的一点总结
(1)、引入ADO类#import "c:/program files/common files/system/ado/msado15.dll" no_namespace rename ("EOF", "adoEOF")(2)、初始化COM在MFC中可以用AfxOleInit();非MFC环境中用:CoInitialize(NULL);CoUnInitialize();(3)#impor转载 2008-07-25 12:05:00 · 676 阅读 · 0 评论 -
利用OpenGL实现三维绘图
在三维绘图蓬勃发展的过程中,计算机公司推出了大量的三维绘图软件包。其中SGI公司推出的OpenGL,作为一个性能优越的图形应用程序设计界面(API)异军突起,取得了很大的成就。它以高性能的交互式三维图形建模能力和易于编程开发,得到了Microsoft、IBM、DEC、Sun、HP等大公司的认同。因此,OpenGL已经成为一种三维图形开发标准,是从事三维图形开发工作的必要工具。1、初始化Ope转载 2008-05-12 18:29:00 · 3361 阅读 · 0 评论 -
无法打开预编译头文件的解决方法及预编译头原理
1。用VC.NET编辑程序,按Ctrl+F7,出现下列错误:fatal error C1083: 无法打开预编译头文件:“Debug/UGFace.pch”: No such file or directory 解决方法:修改:项目->属性->C/C++ ->预编译头->不使用预编译头 即可。2。先打开一个以前做了一下的工程,编译通过,能运行。我就稍微修改了一下代码(只是修原创 2008-07-15 15:23:00 · 6246 阅读 · 0 评论 -
最常见的20种VC++编译错误信息
1、fatal error C1010: unexpected end of file while looking for precompiled header directive。 寻找预编译头文件路径时遇到了不该遇到的文件尾。(一般是没有#include "stdafx.h") 2、fatal error C1083: Cannot open include file: R…….h转载 2008-01-27 16:51:00 · 944 阅读 · 0 评论 -
链接错误LNK2001的常见原因
学习VC++时经常会遇到链接错误LNK2001,该错误非常讨厌,因为对于 编程者来说,最好改的错误莫过于编译错误,而一般说来发生连接错误时, 编译都已通过。产生连接错误的原因非常多,尤其LNK2001错误,常常使人不 明其所以然。如果不深入地学习和理解VC++,要想改正连接错误LNK2001非 常困难。 初学者在学习VC++的过程中,遇到的LNK2001错误的错误原创 2008-03-14 12:08:00 · 1105 阅读 · 0 评论 -
wxWidgets学习日记
运行一个wxWidgets应用程序,需要派生一个wxApp类,并覆盖它的wxApp::OnInit方法。一个应用程序必须有一个顶层wxFrame或一个wxDialog窗体,任一个frame可能包含一个或多个如wxPanel和wxSplitterWindow的实例,也可能是其他的窗体或控件。一个frame可以包含一个wxMenuBar、一个wxToolBar,一个状态条、一个wxIc转载 2008-03-11 20:17:00 · 4404 阅读 · 0 评论 -
Windows应用程序中几种特殊鼠标事件的识别
鼠标作为计算机输入设备随着Windows的流行而逐渐成为计算机的标准配置。在 Windows中鼠标的操作可以产生二十多个消息,主要分为客户区鼠标消息和非客户区 鼠标消息两大类,包括鼠标的移动,左中右键的按下、释放、双击等。事实上,实 际的应用程序中往往会用到一些特殊的鼠标事件,如鼠标三击、左右鼠标同时按下 、鼠标单击双击三击的独立识别或依次处理等。下面结合转载 2008-03-19 19:25:00 · 1610 阅读 · 0 评论 -
wxTreeCtrl详解
树状控件以层的形式展示信息,它的子项可以展开也可以合并.下图演示了wxWidgets的树状控件例子,它正以不同的字体和风格以及颜色进行展 示.每一个树状控件的子项都代表一个wxtreeItemId对象,它拥有一个文本标签和一个可选图标,并且文本和图标的内容都可以动态修改.树状控件可 以以单选或者多选的形式创建.如果你希望在wxtreeItemId上绑定一些数据,你需要实现自己的wxTreeItem原创 2008-03-15 18:24:00 · 7950 阅读 · 1 评论 -
正确显示透明位图
网上已经有了不少地关于如果透明显示位图的文档,但是这些文章中有一个非常大的缺陷,如果当一个位图并不是24位色彩的位图时,换句话说,当一个位图是2位或4位或8位的位图时,由于这些位图使用调色板信息,使用一般的透明显示位图的方法,将会出现色彩错乱的现象,不能正确地显示一个透明的位图。我在前人文档的基础上,对他们的显示方法做了一些修正,则可以正确地显示任何位数色彩的透明位图。下面的DrawTranspa转载 2007-12-25 17:20:00 · 978 阅读 · 4 评论 -
VC之美化界面
本文专题讨论VC中的界面美化,适用于具有中等VC水平的读者。读者最好具有以下VC基础: 1. 大致了解MFC框架的基本运作原理; 2. 熟悉Windows消息机制,熟悉MFC的消息映射和反射机制; 3. 熟悉OOP理论和技术; 本文根据笔者多年的开发经验,并结合简单的例子一一展开,希望对读者有所帮助。 1. 美化界面之开题篇相信使用过《金山毒霸》、《瑞星杀毒》转载 2007-12-26 14:33:00 · 1276 阅读 · 0 评论 -
各种流行的界面换肤控件库比较
用VC做程序的时候,如果对界面样式不满意怎么办?自己从各种控件基类继承,然后自绘么?对高手来说,这虽然不能算是难题,但是仍旧比较麻烦,对新手来说,连看什么书都不好说。那就没有更好的方法么?当然有!这就要用到一类称作“界面换肤”的工具包了。且看这些工具包有什么作用。当你使用一个界面换肤工具包的后,在不改变代码的基础上(除了使用库函数),你的程序将变成另外一个样子,当然这个样子可以很cool,转载 2007-12-26 14:48:00 · 992 阅读 · 0 评论 -
VC下打印机的使用
VC 5.0是开发Windows 95下应用程序的强大工具。本文将通过一个具体实例讨论用VC打印文字和图形的一些技术。在Windows 95下,显示器和打印机、绘图仪都被视为输出设备。系统默认的输出设备是显示器。要使用打印机,首先需要创建一个指向打印机的设备环境句柄,然后通过该句柄调用相关的绘图函数把所需的文字和图形输出至打印机上。当打印结束后,删除这个设备环境句柄即可。一转载 2007-12-28 15:20:00 · 734 阅读 · 0 评论 -
如何在VC++中使用API直接打印
(说明:)这一段代码,用以演示《如何在VC++中使用API直接打印》。并且该段代码可以直接嵌入各种工程中,有实际使用的价值。(用途:)在Visual C++中,应用程序通常是使用CView中提供的打印功能,在OnPrint()或OnDraw()中向打印机输出。但是对于对话框中的数据,或基于对话框的程序,打印成了一件繁琐的工作。该 段代码向用户提供了PrintListCtrl()函数,用于打印用户在转载 2007-12-28 15:09:00 · 744 阅读 · 0 评论 -
窗口使终置前 vc
函数功能:该函数改变一个子窗口,弹出式窗口式顶层窗口的尺寸,位置和Z序。子窗口,弹出式窗口,及顶层窗口根据它们在屏幕上出现的顺序排序、顶层窗口设 置的级别最高,并且被设置为Z序的第一个窗口。 函数原型:BOOL SetWindowPos(HWN hWnd,HWND hWndlnsertAfter,int X,int Y,int cx,int原创 2008-03-21 18:48:00 · 3264 阅读 · 0 评论 -
得到当前程序的路径 vc
方法一: CString appPath; GetModuleFileName(NULL, appPath.GetBuffer(MAX_PATH), MAX_PATH); //注:使用该API函数得到的是程序文件完整路径文件名,去掉文件名后才是路径。 appPath.ReleaseBuffer(); int n = appPath.Reve原创 2008-03-21 18:52:00 · 1145 阅读 · 0 评论 -
对于Windows的进程间通信的方式
1 文件映射 文件映射(Memory-Mapped Files)能使进程把文件内容当作进程地址区间一块内存那样来对待。因此,进程不必使用文件I/O操作,只需简单的指针操作就可读取和修改文件的内容。 Win32 API允许多个进程访问同一文件映射对象,各个进程在它自己的地址空间里接收内存的指针。通过使用这些指针,不同进程就可以读或修改文件的内容,实现了对文件中数据的共享。 应用程序有三种方法来原创 2007-12-28 14:29:00 · 588 阅读 · 0 评论 -
Api函数列表--与打印相关
Api函数名 函数说明 适用范围转载 2007-12-28 14:38:00 · 747 阅读 · 0 评论 -
强制终止程序的5种方法
1. exit(0);2. PostQuitMessage(0);3. ::AfxGetApp()->m_pMainWnd->PostMessage(WM_QUIT,0,0);4.ExitProcess(0);5.HWND h; DWORD id; HANDLE h2; h = AfxGetApp()->m_pMainWnd->m_hWnd; GetWindowThreadProcessId原创 2008-03-24 18:09:00 · 6476 阅读 · 0 评论 -
预编译头文件来自编译器的早期版本,或者预编译头为 C++ 而在 C 中使用它(或相反)
用VC++ 2008 编写C语言程序,编译出现错误:预编译头文件来自编译器的早期版本,或者预编译头为 C++ 而在 C 中使用它(或相反)解决方法:建工程时 建立空项目 或者在项目设置里关闭预编译头的选项!当 Visual C++ 项目启用了预编译头 (Precompiled header) 功能时,如果项目中同时混合有 .c 和 .cpp 源文件,则可能收到 C1853转载 2018-01-24 16:47:08 · 1053 阅读 · 0 评论