Windows C++编程
文章平均质量分 52
uoyevoli
这个作者很懒,什么都没留下…
展开
-
刚栽了两个跟头,大家吸取教训啊......
近日用VC写一个GDI相关的程序时,一不小心栽了跟头,害得我浪费了整整一天的时间来debug!!跟头1:COLORREF的high-order byte我在处理图片的透明色是,用到了如下代码:COLORREF color1 = ....;COLORREF color2 = ....;if (color1 = = color2){ ......}可是很奇怪的是,两种颜色明明是一样的,可if的判原创 2005-06-27 09:59:00 · 1260 阅读 · 0 评论 -
唉……原来是VC++8的STL有内存泄漏……
发现内存泄漏,没有办法,只好逐模块试验。最终发现有个类一旦被实例化然后再析构(比如在栈上创建的局部变量)就会产生内存泄漏。看了这个类的构造函数和析构函数,发现根本没有代码(除了构造函数的初始化列表中为几个int型变量赋了初始值)。再看这个类的成员,除了几个int外还有一个std::wstringstream类型的,也就是说我的类包含了一个std::wstringstream的实例。难道st原创 2006-12-14 22:03:00 · 3190 阅读 · 0 评论 -
vc编写全局钩子需要注意的一个地方
写全局钩子的dll时要在不同进程间共享数据通常用到共享数据段#pragma data_seg("XYdata")HHOOK glhHook=NULL;#pragma data_seg()光这样还是不够的,还要加上#pragma comment(linker,"/section:XYdata,rws")关键就在这个s上,Shared。既然是“共享”数据段,当然要Shared了 ;)还有指定linke原创 2006-05-10 22:08:00 · 2498 阅读 · 0 评论 -
重拾Delphi
空格用VC++这么久了还没有编写过像样的GUI窗口程序呢。最近终于下决心编写一个。但是我发现自己错了。以前也听说过VC编写窗口界面怎么怎么麻烦,怎么怎么地“非 visual”,而我一直没有把它当回事,认为只要懂了windows的GDI绘图,不就是多写些代码吗,底层一些可以有更多的控制,底层有底层的好处嘛。然而经过了这几天的折腾,我不得不承认我太“小看”VC的,VC下的窗口界面真TMD难整! ;)原创 2006-02-28 13:09:00 · 1432 阅读 · 2 评论 -
《Windows核心编程》第6章 笔记
1、线程和Object一个线程拥有两个用户对象,即窗口和挂钩。当线程终止运行时,系统会自动撤消任何窗口,并且卸载线程创建的或安装的任何挂钩。其他对象只有在拥有线程的进程终止运行时才被撤消。2、创建在C++中,若要创建一个新线程,绝对不要调用操作系统的CreateThread函数,必须调用C/C++运行期库函数_beginthreadex。注意,_beginthreadex函数只存在于C/C++运行原创 2006-02-10 00:31:00 · 1828 阅读 · 0 评论 -
《Windows核心编程》第4章 笔记
1、应用程序的进入点应用程序类型 进入点 嵌入可执行文件的启动函数-------------------------------------------------------------------------------需要ANSI字符和字符串的GUI应用程序 WinMain WinMainCRTStartup需要Unic原创 2006-02-09 17:40:00 · 1626 阅读 · 0 评论 -
好文章要收藏
Unicode是什么? url2 VC++6实现简单的代理服务器 代理服务器工作原理的研究 函数对象替代函数指针作回调函数原创 2006-03-15 09:29:00 · 1344 阅读 · 2 评论 -
C++事件(Event)机制的实现一例[源代码下载链接已修复]
作者:袁晓辉(farproc@gmail.com) 声明:1、 本文为作者原创,如需转载请保持本文的完整性并注明出自 www.farproc.com 和 http://blog.csdn.net/uoyevoli. 2、 本文附件中的源代码你可以免费使用并无需注明出处。 用C++实现事件机制我以前写过一个小例子,但不是很完善,比如Event只能接受全局函数作为原创 2005-11-22 20:21:00 · 11602 阅读 · 18 评论 -
[翻译]抓屏的各种方法
本文章翻译自P.GopalaKrishna的Various methods for capturing the screen一文,原版地址见下面。本文章版权归原作者所有。 如果转载该译文,请保证文章的完整性,并注明来自www.farproc.com袁晓辉 2005/6/12原版地址:http://www.codeproject.com/dialog/screencap.asp#Windo翻译 2005-06-12 22:25:00 · 9121 阅读 · 0 评论 -
[zt]在2000和xp下,隐藏进程,VC6.0测试通过!!!
在2000和xp下,隐藏进程,VC6.0测试通过转载 2005-06-02 10:12:00 · 4177 阅读 · 21 评论 -
说说安全子类
作者:袁晓辉 文章来源:www.farproc.com 更新时间:2005-5-25说说安全子类说起“窗口子类化”(Subclass Window),估计大家都不陌生吧?不就是SetWindowLong (hwnd, GWL_WNDPROC, NewProc)嘛,如果还有什么要说的话,那就是为了兼容32和64位Windows,换用SetWindowLongPtr吧。就这么简单吗?其实越是原创 2005-05-27 14:30:00 · 2035 阅读 · 1 评论 -
VC中的Unicode编程
VC中的Unicode编程 在windows下编程还是支持unicode吧,大势所趋啊,window 2k以后的系统底层都是基于Unicode的,就算你调用ANSI的API(以A结尾比如SetWidowsTextA),系统也会在你的进程默认堆上动态分配一块内存,存放转换后的Unicode字符串,然后把转换后的字符串传递给API,如果调用了返回值为ANSI字符串的API,Windows会在后台原创 2005-04-20 19:48:00 · 2165 阅读 · 0 评论 -
md5算法研究(1)
MD5算法研究 2004-04-05 作者: 王可 综述 MD5的全称是Message-Digest Algorithm 5(信息-摘要算法),在90年代初由MIT Laboratory for Computer Science和RSA Data Security Inc的Ronald L. Rivest开发出来,经MD2、MD3和MD4发展而来。它的作用是让大容量信息在用数字签名软件签署私人密原创 2005-04-16 12:51:00 · 1751 阅读 · 0 评论 -
如何把一个char重复若干次生产std::string
在使用std::string时如果要得到一个类似 "**********" 的字符串可以用循环:string s;for(int n =0; n { s = s + *;}但是看起来不是那么简便与"专业",有更好的办法: string s;s.resize(10,*);string的resize()可以扩充(或缩减)s到一定长度,并用指定的字符填充新扩充的空间.还可以这么用:s = "ab原创 2005-04-15 21:14:00 · 2396 阅读 · 4 评论 -
[原创&译]向其他进程注入代码的三种方法
向其他进程注入代码的三种方法原版地址:http://www.codeproject.com/threads/winspy.asp?df=100&forumid=16291&select=1025152&msg=1025152下载整个压缩包下载WinSpy 作者:Robert Kuster翻译:袁晓辉(hyzs@sina.com)摘要:如何向其他线程的地址空间中注入代码并在这个线程的上下文中执行之。原创 2005-04-15 08:58:00 · 12805 阅读 · 6 评论 -
[原创]用C++模拟C#的event机制
本文章为farproc.com站长袁晓辉(海洋)的原创文章,作者保留所有权利。如果转载,请务必注明来自www.farproc.com!! 作为一个C++程序员,学习C#应该不是一件很困难的事情,因为C#的许多特性都是从C++“继承”(不精确的说法)来的。但是C#作为一门全新的编程语言,它必然有自己的新特性,而这些C++中并不存在的新特性正是我们从C++转向C#的过程中必须认真重新学原创 2005-08-02 18:08:00 · 8022 阅读 · 16 评论 -
iterator的陷阱
比如某个std::vector,我们对它的一个实例对象进行遍历,找到一个元素,删除之:std::vector some_vector;for(std::vector::iterator it = some_vector.begin(); it != some_vector.end(); ++it){ if(...) { some_vector.erase(it); //原创 2007-03-19 01:59:00 · 1405 阅读 · 4 评论