C/C++
woyaowenzi
哥也是年薪过万的人啊!(我的MM头像哪里去了?)
展开
-
MFC中闪烁的处理
MFC 闪烁 绘制转载 2007-10-14 10:10:00 · 7217 阅读 · 5 评论 -
函数指针的用法
函数指针 返回函数指针的函数原创 2010-12-20 02:02:00 · 1424 阅读 · 0 评论 -
一些常见的笔试题(三)
类继承 将基类对象地址强转赋值给派生类指针原创 2010-08-26 14:05:00 · 888 阅读 · 0 评论 -
字对齐之 sizeof和pragma pack 的用法
字对齐 sizeof pragma pack 用法原创 2010-08-21 20:16:00 · 1056 阅读 · 0 评论 -
编写一个C程序对16位整数进行倒序排列.
编写一个C程序对16位整数进行倒序排列原创 2010-06-11 01:30:00 · 2561 阅读 · 0 评论 -
一些常见的笔试题(一)
简单算法的实现代码:// 求N以内的素数/*! * @brief: 求N以内的素数 * @param: __in int nNum 范围大小 <= nNum * @param: __inout vector& vecReturn 返回所有素数列表 * @return: void */void GetPrimeNumber(原创 2010-05-03 00:47:00 · 1134 阅读 · 0 评论 -
__stdcall,__cdecl,__fastcall的区别
http://msdn.microsoft.com/en-ca/library/46t77ak2(zh-cn).aspx关键字 __stdcall、__cdecl和__fastcall可以直接加在要输出的函数前,也可以在编译环境的Setting.../C/C++ /Code Generation项选择。当加在输出函数前的关键字与编译环境中的选择不同时,直接加在输出函数前的关键字有效。它们对应的转载 2010-03-28 21:16:00 · 712 阅读 · 0 评论 -
new的六种重载形式
原文链接:http://www.diybl.com/course/3_program/c++/cppjs/200827/99702.htmlnew的六种重载形式当写出:p = new P();这样的代码的时候, 实际上有两步操作, 首先分配内存,然后在分配好的内存之上初始化类成员.第二步是有构造函数完成的, 第一步就是new函数的工作.全局的new有六种重载形式,:void *oper转载 2009-12-02 23:42:00 · 839 阅读 · 0 评论 -
C++/CLI 导出接口和类
C++/CLI 导出接口和类:public ref class Base{ public: void SetMember(String^ str); private: String^ m_str;}使用的时候只需要加入reference, 不需要引用头文件. 加入头文件后出错.原创 2009-10-28 13:04:00 · 1757 阅读 · 0 评论 -
Windows界面设计标准
Windows界面设计标准C#.net 1.1. Windows界面设计标准1.1.1. 易用性 界面元素的名称、标签应该易懂,用词准确,避免使用模楞两可的字眼,要与同一界面上的其他元素易于区分,能望文知意最好。理想的情况是用户不用查阅帮助就能知道该界面的功能并进行相关的正确操作作。 disable而不是not visible。转载 2009-09-24 17:02:00 · 1407 阅读 · 0 评论 -
如何利用shell对.zip文件进行解压缩
shell, 解压缩, zip原创 2011-02-28 22:36:00 · 7125 阅读 · 0 评论 -
C++结构体初始化
今天在看MFC结构时,顺便看了看《深入浅出MFC》,发现有这么一行代码: m_pMainWnd = new CMyFrameWnd;乍一看,很正常啊,再仔细一看,貌似 new CMyFrameWnd 的时候少了一对括号。奇怪!之后又翻了翻书,发现好多处都是这样的。难道我弄错了,不可能啊,一般情况下在new一个新类的时候都会加上括号,里面放一些初始值。测试一下:win32中POINT结构体定义如下原创 2009-09-30 15:47:00 · 7238 阅读 · 0 评论 -
如何获取任务栏(taskbar)相关信息
任务栏 taskbar 信息原创 2011-02-28 22:49:00 · 5810 阅读 · 0 评论 -
递归反转一个字符串
给定一个字符串“ABCDEFGHI”,用递归的方式将其反转。思路:每次进行首尾字符交换, 第一次,将A和I交换,此时变成 IBCDEFGHA,此时递归的字符串应该变成其子串“BCDEFGH” 第二次,将B和H交换,此时变成 IHCDEFGBA,此时递归的字符串应该变成其子串“CDEFG”依次递归下去,直到只剩一个字符,无法进行其它交换为止。原创 2010-05-19 01:11:00 · 9995 阅读 · 4 评论 -
如何HOOK桌面窗口消息
本文通过一个DEMO来演示如何HOOK桌面消息。代码详见:http://download.csdn.net/source/3448133需求:截获桌面窗口鼠标单击事件,解析所选中的桌面 Item,并将解析后的 item信息发送给主调程序,并将信息显示在一个窗口上面。如下图: 思路:1. 确定HOOK的类型。很明显,这一个进程外的HOOK,我们原创 2011-07-17 01:32:46 · 9064 阅读 · 0 评论 -
一些常见的笔试题(二)
二叉树经常会在笔试和面试中遇到,因此,有必要对二叉树的一些常见操作进行一下系统的学习。二叉树的定义就不说了,数据结构里有,这里给出我自己写的一部分代码。当然,代码还相当不完善。以后将代码改进成类的形式,并用上模板。有位高手就写出了完善的代码:http://www.zhuxinquan.com/archives/2006/01/notes_of_introduction_to_alg原创 2010-05-03 23:28:00 · 1063 阅读 · 0 评论 -
不常用的Windows API及小功能收集中...
判断当前OS默认的是单击还是双击 获取当前桌面的窗口句柄原创 2011-07-10 21:10:01 · 1599 阅读 · 0 评论 -
消息HOOK
HOOK消息HOOKSetWindowsHookEx原创 2011-07-15 20:09:16 · 4766 阅读 · 0 评论 -
正确运用stl map的erase方法
原文地址:http://my.donews.com/wucr/2007/07/01/post-070701-172017-974/ and http://www.sofee.cn/blog/2007/11/14/128/STL的map表里有一个erase方法用来从一个map中删除掉指令的节点eg:map mapTest;typedef map::iterator ITER;ITER iter转载 2010-04-12 23:53:00 · 1161 阅读 · 0 评论 -
面试的一些技术点
三种DLL类型区别原创 2010-06-13 21:18:00 · 928 阅读 · 0 评论 -
#pragma once与 #ifndef的区别
原文URL:http://www.cppblog.com/szhoftuncun/archive/2007/10/28/35356.html#pragma once与 #ifndef的区别为了避免同一个文件被include多次1 #ifndef方式2 #pragma once方式在能够支持这两种方式的编译器上,二者并没有太大的区别,但是两者仍然还是有一些细微的区别。 方式一:原创 2009-09-19 12:15:00 · 783 阅读 · 0 评论 -
manifest与控件风格
如果我们想要windows XP或XP以上操作系统的风格的系统控件,请使用下面的宏.如果你在XP下编译Windows程序,控件默认的的风格是win 2K的,默认使用的comctl32.dll的版本默认是5.8,即win 2K的所使用的库.而windows XP或XP以上操作系统的风格的系统控件则使用的是6.0版本的。#ifdef _UNICODE#if defined _M_IX86 #原创 2009-09-21 10:46:00 · 1491 阅读 · 0 评论 -
如何阅读代码(转)
如何阅读代码(转) 第一章: 导论++++++++++++1.要养成一个习惯, 经常花时间阅读别人编写的高品质代码.2.要有选择地阅读代码, 同时, 还要有自己的目标. 您是想学习新的模式|编码风格|还是满足某些需求的方法.3.要注意并重视代码中特殊的非功能性需求, 这些需求也许会导致特殊的实现风格.转载 2009-09-13 21:35:00 · 709 阅读 · 0 评论 -
Strsafe.h:更安全的C语言字符串处理函数
原文:http://www.kuqin.com/language/20090322/41765.html原文出处:Strsafe.h: Safer String Handling in C 作者:Michael Howard 编译:王凌峰 在微软公司举行的Microsoft Windows Security Push 活动期间,一批测试者、程序管理经理和普通程序员共同决定要为 C 语言量转载 2009-07-10 14:33:00 · 2050 阅读 · 0 评论 -
回调函数原理以及自定义回调函数
回调函数原理声明CALLBACK 调用(calling)机制从汇编时代起已经大量使用:准备一段现成的代码,调用者可以随时跳转至此段代码的起始地址,执行完后再返回跳转时的后续地址。CPU为此准备了现成的调用指令,调用时可以压栈保护现场,调用结束后从堆栈中弹出现场地址,以便自动返回。借堆栈保护现场,它使调用者和被调者可以互不相识,于是才有了后来的函数和构件. 此调用机制并非完美。回转载 2009-03-02 16:32:00 · 12797 阅读 · 5 评论 -
用递归写Win32的文件夹遍历
用递归写Win32的文件夹遍历 文件夹遍历技术是一种非常有用的技术,在文件的搜索以及杀毒软件中都使用了这种技术。以下我将讨论如何在Win32下实现这种技术。 文件夹遍历技术的核心就是使用递归算法,关于递归算法我这里就不多介绍了,不明白的朋友请参阅相关内容。以下是我的算法伪代码:void function(LPCTSTR lpszPath){ 开始查找; if (没有找到转载 2008-12-16 19:25:00 · 713 阅读 · 0 评论 -
多线程模型真的能够提高效率吗?
多线程模型真的能够提高效率吗? 原文地址http://blog.csai.cn/user1/16236/archives/2007/11679.html Post by acqy 发表于 2007-1-15 21:51:00早段时间在网上看到一篇文章,其中就写了使用多线程模型实现文件的转载 2009-02-23 15:13:00 · 2834 阅读 · 2 评论 -
VC++递归删除注册表子键
转载:VC++递归删除注册表子键文章出处:http://www.diybl.com/course/3_program/c++/cppxl/20081119/152041.html VC6中没有提供删除带有子键的注册表键,而最新的.net则提供了这个函数。不过很多程序还是用VC6写的。我就发个自己弄出来的代码: 测试绝对能用! /****DeleteSubKeyTree(HK转载 2009-02-03 21:02:00 · 6096 阅读 · 0 评论 -
基于COM接口的Shell扩展技术应用
基于COM接口的Shell扩展技术应用 前言 随着技术的不断完善,微软Windows操作系统已成为当前个人计算机应用领域的主流操作系统。Windows操作系统提供了颇受用户喜爱的图形用户界面(GUI),微软为Windows的这个户界面保留了可扩充性,它使得基于32位的Windows应用程序可以通过多种方式来增强系统所提供的操作环境(也称为外壳,英文名称:Shel转载 2009-01-19 18:32:00 · 1623 阅读 · 0 评论 -
VC中一个关于宏的使用问题
原文地址:http://liubin.itpub.net/post/325/23417再次感谢作者!VC中一个关于宏的使用问题 作者 liubin 这儿是个关于宏的问题,我曾用过ATL的串转换宏,包括W2A,开始有些东西我还不太明白。为了使用这些宏,必须在函数的开始处用USES_CONVERSION来初始化某些局部变量。用就用吧,但是看看这个宏的定义,它有类似下面的代码:// 在a转载 2009-01-13 23:17:00 · 781 阅读 · 0 评论 -
#include 带“.h” 和 不带“.h” 有什么区别
#include 带“.h” 和 不带“.h” 有什么区别 #include void main() { string aaa= "abcsd d"; printf("looking for abc from abcdecd %s/n", (strcmp(aaa,"abc"))转载 2008-09-11 19:19:00 · 8016 阅读 · 2 评论 -
SHORT GetAyncKeystate(int vKey)函数
函数功能:该函数用于确定函数被调用时,相应按键是处于按下状态,还是处于弹起状态;并且按下此键前否调用过GetAsyncKeystate函数。 函数原型:SHORT GetAyncKeystate(int vKey); 参数: vKey:定义虚拟键码(若有256个虚拟键码)。欲获得更多信息,参看Virtual_Key Codes。在Windows NT中可以使用左右键区分常量来定义某些键。欲获得原创 2008-06-08 14:20:00 · 2258 阅读 · 0 评论 -
VC++中MFC窗口对象的清除
对于vc++初学者来说,总觉得窗口对象的清除过程有些莫名其妙.在程序中看不到对delete的显式调用,这似乎违反了c++中有关初始化和清除的规则.那么,程序是怎样取消一个窗口对象? 要消除窗口对象,必须清楚窗口对象的构成.在一个通常的程序中,先创建c++窗口对象,然后由Windows创建实际的窗口结构,并返回句柄与c++对象连接.也就是说,窗口对象包含c++窗口对象和Windows窗口对象,转载 2008-05-22 10:43:00 · 996 阅读 · 0 评论 -
请问如何提高文件的读写速度
摘抄某个位置的帖子.URL忘记了. 在提取游戏资源的时候,我编程用的是C++中的 ifstream , ofstream, 可是在读写文件的时候速度很慢,硬盘狂转,请问一下有人知道如何提高速度么?多谢!悠久扬笛2007-05-15 11:22用内存映射方式可能会好点 Asakur转载 2009-03-08 22:45:00 · 10209 阅读 · 3 评论 -
wprintf 和 wcout
原文地址:http://blog.vckbase.com/bruceteen/archive/2005/11/15/14924.htmlhttp://www.cnblogs.com/shanzy/archive/2006/08/10/473729.html wprintf 和 wcout这篇文章应该是[netsin]的成果,我勤快,记下来。注:wprintf是C的标准库函数,但wc转载 2009-03-08 20:34:00 · 1276 阅读 · 0 评论 -
GDI+在VS2008 编译不过的解决方法
今天写程序的时候用到GDI+,不过编译不通过。出现的错误为:1>------ Build started: Project: Label, Configuration: Debug Win32 ------1>Compiling...1>stdafx.cpp1>c:/program files/microsoft sdks/windows/v6.0a/include/gdiplusimagin原创 2009-09-13 22:53:00 · 3168 阅读 · 0 评论 -
C语言深入浅出可变参数函数的使用技巧(转)
C语言深入浅出可变参数函数的使用技巧(转)2006-11-24 09:15深入浅出可变参数函数的使用技巧本文主要介绍可变参数的函数使用,然后分析它的原理,程序员自己如何对它们实现和封装,最后是可能会出现的问题和避免措施。VA函数(variable argument function),参数个数可变函数,又称可变参数函数。C/C++编程中,系统提供给编程人员的va函数转载 2009-07-10 16:39:00 · 1884 阅读 · 0 评论 -
跨dll访问STL的map的问题
(转)跨dll访问STL的map的问题 问题:跨dll,针对Vector引用的传递没有问题,但是Map就出现问题了。原因分析:一句话-----如果任何STL类使用了静态变量(无论是直接还是间接使用),那么就不要再写出跨执行单元访问它的代码。 除非你能够确定两个动态库使用 的都是同样的STL实现,比如都使用VC同一版本的STL,编译选项也一样。强烈建议,不要在动态库接口中传递STL容器!!S转载 2009-07-08 19:29:00 · 1491 阅读 · 0 评论 -
LoadLibrary失败
LoadLibrary失败 今天同事遇到一个问题,经高手指点,完美解决。不过解决方法总是感觉有点不妥,不知道有没有其它方法。 正常情况,在一个exe中LoadLibrary(DLL1)可以获得正常的结果; 但是,当我们需要load的DLL1如果调用了其它的DLL2, 那么我们就会得到一个结果:The program cant start because ****原创 2009-07-08 19:24:00 · 24356 阅读 · 9 评论 -
用WriteFile写文件时乱码
今天写一个小程序,向文件中写中文,但是始终是乱码,不知道为什么,google了一下,说是由于某些编辑器会往utf8文件中添加utf8标记而导致的结果。原文如下: 〓〓〓〓〓〓〓〓 URL:http://xuliduo.javaeye.com/blog/199299〓〓〓〓〓〓〓〓 众所周知,在跨程序的工程中,统一编码是至关重要的,而目前最普遍的则是统一采用“utf8”编码方案。原创 2009-07-06 00:06:00 · 4579 阅读 · 0 评论