win32 SDK
文章平均质量分 73
Gary@Tokyo
努力生活!
爱好:登山、游泳
If you dont aim high, you will never hit high.
展开
-
在vc中实现获取汉字拼音的首字母(转载)
/* * Syntax * void FirstLetter(int nCode, CString& strLetter) * Remarks: * Get the first letter of pinyin according to specified Chinese character code. * Parameters:转载 2008-08-22 10:17:00 · 927 阅读 · 0 评论 -
从 ANSI 到 Unicode & Unicode 到 ANSI 用于 OLE 如何转换
概要loadTOCNode(1, summary);所有字符串传递到和接收从 32 位 OLE API 和接口方法使用 Unicode。 这需要使用 ANSI 字符串要传递给 OLE 它们之前它们转换为 Unicode 和将 Unicode 字符串从 OLE 接收到 ANSI 应用程序。 本文演示如何进行这些转换。 更多信息loadTOCNode(1, morei原创 2008-08-22 10:25:00 · 1431 阅读 · 0 评论 -
字符UNICODE的各种转换(转载)
第一个就是宽字符到多字节字符转换函数,函数原型如下:int WideCharToMultiByte(UINT CodePage,DWORD dwFlags,LPCWSTR lpWideCharStr,int cchWideChar,LPSTR lpMultiByteStr,int cbMultiByte,LPCSTR lpDefaultChar,LPBOOL lpUsedDefaultChar转载 2008-08-22 10:15:00 · 1930 阅读 · 0 评论 -
详细解说STL hash_map系列
0 为什么需要hash_map 用过map吧?map提供一个很常用的功能,那就是提供key-value的存储和查找功能。例如,我要记录一个人名和相应的存储,而且随时增加,要快速查找和修改: 岳不群-华山派掌门人,人称君子剑张三丰-武当掌门人,太极拳创始人东方不败-第一高手,葵花宝典...这些信息如果保存下来并不复杂,但是找起来比较麻烦。例如我要找"张三丰"的信息,最傻的方法就是取得所有的记录,然后转载 2008-09-03 08:51:00 · 713 阅读 · 0 评论 -
详细解说 STL 排序(Sort)
* 详细解说 STL 排序(Sort) o 0 前言: STL,为什么你必须掌握 o 1 STL提供的Sort 算法 + 1.1 所有sort算法介绍 + 1.2 sort 中的比较函数 + 1.3 sort 的稳定性 + 1.4原创 2008-09-03 08:53:00 · 1217 阅读 · 0 评论 -
c++中 string与string.h 的作用和区别
#include void main() { string aaa= "abcsd d"; printf("looking for abc from abcdecd %s/n", (strcmp(aaa,"abc")) ? "Found" : "Not Found");} 不能正确执行,提示说是stri转载 2008-09-03 10:38:00 · 997 阅读 · 0 评论 -
VC 6.0 “fatal error LNK1104: cannot open file "mfc42u.lib"”问题解决
在公司运行成功的示例代码,放到自己电脑VC 6.0中编译,竟然得到了一个fatal error LNK1104: cannot open file "mfc42u.lib"错误。于是在网上搜索了一下,问题是默认的VC缺少对Unicode的支持,而这个代码恰恰就是按照Unicode发布,要使用Unicode编译。解决方案很简单,从VC的安装盘中“盘符/VC98/MFC/LIB”拷贝文件“MFC42U原创 2009-01-02 11:11:00 · 4811 阅读 · 0 评论 -
关于#pragma warning
1. #pragma warning只对当前文件有效(对于.h,对包含它的cpp也是有效的),而不是对整个工程的所有文件有效。当该文件编译结束,设置也就失去作用。2. #pragma warning(push)存储当前报警设置。#pragma warning(push, n)存储当前报警设置,并设置报警级别为n。n为从1到4的自然数。3.转载 2009-01-02 22:30:00 · 1002 阅读 · 0 评论 -
模态对话框和非模态对话框的区别1
模态对话框就是指那种“显示出来就不可以点选位于其下面的对话框”的对话框;反之的就是非模态对话框。 两者的区别:一. 非模态对话框的模板必须具有Visible风格(Visible=True),否则对话框将不可见,而模态对话框则无需设置该项风格。在实际编程中更加保险的办法是调用CWnd::ShowWindow(SW_SHOW)来显示对话框,而不管对话框是否具有Visible风格。二. 非模态对话框转载 2009-01-06 09:24:00 · 8983 阅读 · 1 评论 -
【转帖】c++经典书藉
这是本人总结的一些认为C++比较经典的书籍,希望对大家有用下面链接好像失效了,新发一个:www.it689.net/Webs/Books/List.aspxThinking in C++ C++编程思想 C++入门书籍,不多介绍 http://www.laixp.cn/soft/sort01/sort02/down-12215.html C++ Primer 3 th 也是一本入门书转载 2009-01-18 20:43:00 · 4262 阅读 · 3 评论 -
【转】标准C++的类型转换符:static_cast、dynamic_cast、reinterpret_cast和const_cast
C 风格(C-style)强制转型如下:(T) exdivssion // cast exdivssion to be of type T函数风格(Function-style)强制转型使用这样的语法:T(exdivssion) // cast exdivssion to be of type T这两种形式之间没有本质上的不同,它纯粹就是一个把括号放在哪的问题。我把这两种形式称为旧转载 2009-01-20 12:43:00 · 1552 阅读 · 0 评论 -
Windows 内存泄漏检测工具——LeakDiag
对于内存泄漏的检查,本质上在于定位内存泄漏。这种定位包含两层含义:一是定位模块,即哪个模块出了问题。二是定位代码,即找到造成内存泄漏的代码。对此,在分工合作完成一个系统的背景下,我们检查内存泄漏的工作流程就应该是:第一,定位模块;第二,如果是我们的模块出现问题,就要定位代码。 对于内存泄漏的检查工作,感觉更像一个侦探工作。只有找到足够的线索,才能找到真正的原因。要想成为一个优秀转载 2009-02-02 10:38:00 · 10226 阅读 · 0 评论 -
堆和栈的区别
一、预备知识—程序的内存分配一个由C/C++编译的程序占用的内存分为以下几个部分:1. 栈区(stack)——由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。栈区(stack)—— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 2. 堆区(heap)—— 一般由程序员分配释放,若程序员不转载 2009-02-06 12:07:00 · 1026 阅读 · 0 评论 -
【转】有关句柄和指针的常用函数
1. 如何获取应用程序的 实例句柄? AfxGetInstanceHandle() 应用程序的 实例句柄保存在CWinAppIm_hInstance 中,可以这么调用 AfxGetInstancdHandle获得句柄. Example: HANDLE hInstance=AfxGetInstanceHandle();2. 如何通过代码获得应用程序主窗口的 指针? AfxGe转载 2008-12-02 14:18:00 · 1015 阅读 · 0 评论 -
c++五种内存分配、堆与栈区别
在C++中,内存分成5个区,他们分别是堆、栈、自由存储区、全局/静态存储区和常量存储区。 栈,就是那些由编译器在需要的时候分配,在不需要的时候自动清楚的变量的存储区。里面的变量通常是局部变量、函数参数等。 堆,就是那些由new分配的内存块,他们的释放编译器不去管,由我们的应用程序去控制,一般一个new就要对应一个delete。如果程序员没有释放掉,那么在程序结束后,操作系统会自动回收。转载 2009-02-06 12:19:00 · 3238 阅读 · 3 评论 -
GDI+ 和MFC内存泄露检测
原文地址:http://www.codeproject.com/KB/GDI-plus/gdiplush.aspx绪论当我开始使用VC++6.0进行GDI+和MFC编程后,我遇到了一些麻烦的问题:不移除DEBUG_NEW 宏就不能编译有MFC的GDI代码不少许修改代码就不能编译有STL的GDI+代码不能探测到内存泄露以下是解决方案怎样使用翻译 2009-02-13 18:50:00 · 3877 阅读 · 0 评论 -
关于GDI+的复式抛光技术
Double Buffering With GDI+http://www.codeproject.com/KB/GDI-plus/gdiplus.aspx绪论这是一个简单的关于GDI+的例子,我在我的第一个GDI+工程中使用过。本文关注复式抛光。首先你应当为你的工程添加GDI+支持,具体你可以参考Christian Graus的《Starting with GDI+》。翻译 2009-02-16 10:50:00 · 1230 阅读 · 0 评论 -
怎样创建和读写共享内存?
读写的时候怎样锁定? --------------------------------------------------------------- 在16位Windows中,有好几种方法可以共享数据。可能最普通的方法是使用属于另一个进程的窗口来调用SendMessage或者PostMessage。在16位Windows中,这样只能传递一个16位值和一个32位值,。也可以使用GMEM_S转载 2009-02-19 18:06:00 · 2393 阅读 · 0 评论 -
Shared memory
http://www.codeproject.com/KB/threads/sm.aspx等有时间了过来翻译一下。MotivationSometimes you need to share some values across several processes. There are some ways, provided by system, but there is no simp转载 2009-02-19 18:17:00 · 1984 阅读 · 1 评论 -
GDI+入门(Starting with GDI+)
http://www.codeproject.com/KB/GDI-plus/startinggdiplus.aspx 绪论我现在已经使用GDI+大概一周了,并且我不得不说GDI+是一个受欢迎的改良产品。我在写一个画图程序,很多我考虑的事情我都必须得自己写下来确认,这就意味着我可以“免费”得到它们。 很多我考虑过的事情,我都要确认自己写下来了,这就意味着我可以“免费”得到它们。我猜这样翻译 2009-02-22 18:01:00 · 2106 阅读 · 2 评论 -
什么是ColorMatrix
ColorMatrix(色彩矩阵),是GDI+里用来调整图片色彩的矩阵。 什么是矩阵,说白了就是C#里的二维数组。 那么这个矩阵调整色彩的原理是什么,他是怎么来调整色彩的呢?这个要从线性代数里的矩阵相乘说起。 以下段落学过线性代数的读者可以跳过,这里我用自己的理解来描述下矩阵相乘的算法和结果。在线性代数里,两个矩阵相乘,是这样计算的: A矩阵乘以B矩阵,那么新生成一个矩阵C,C的第N行M列的元转载 2008-12-22 17:36:00 · 1061 阅读 · 0 评论 -
链接错误LNK2001
学习VC++时经常会遇到链接错误LNK2001,该错误非常讨厌,因为对于编程者来说,最好改的错误莫过于编译错误,而一般说来发生连接错误时,编译都已通过。产生连接错误的原因非常多,尤其LNK2001错误,常常使人不明其所以然。如果不深入地学习和理解VC++,要想改正连接错误LNK2001非常困难。 初学者在学习VC++的过程中,遇到的LNK2001错误的错误消息主要为:转载 2009-03-04 16:07:00 · 1658 阅读 · 0 评论 -
在VC6.0下设置Unicode编译环境
VC++ 6.0支持Unicode编程,但默认的是ANSI,所以开发人员只需要稍微改变一下编写代码的习惯便可以轻松编写支持UNICODE的应用程序。 使用VC++ 6.0进行Unicode编程主要做以下几项工作: 1、为工程添加UNICODE和_UNICODE预处理选项。 具体步骤:打开[工程]->[设置…]对话框,在C/C++标签对话框的“预处理程序定义”中去除_MBCS,加上_UN转载 2008-12-23 15:42:00 · 1204 阅读 · 2 评论 -
为vc工程添加Unicode Debug和Unicode Release
通过使用unicode编译,可以使软件国际化,如何在自己的工程中添加这两种编译方式呢?下面是一个简单的步骤 1、新建一个工程; 2、选择“Build->Configurations”菜单 3、点击“Add”按钮,添加“Unicode Debug”-copy setting form 选择“win32 Debug”; 添加“原创 2008-12-23 15:43:00 · 3086 阅读 · 0 评论 -
XPCOM开发简介
1.首先安装GECKO SDK开发包,并解压到本地目录 例如:/home/user/sdk/gecko-sdk/2.为主接口类创建GUID uuidgen2.编写接口文件***.idl 3.分别生成***.h和***.xpt文件(xpidl -m header/typelib -w -o /输出路径/输出文件名 -I /Gecko/IDL所在路径 将要编译的***.idl文件)4.修改生成的组件转载 2009-03-19 15:34:00 · 1535 阅读 · 0 评论 -
多线程进程间通讯共享内存(Shared Memory with IPC with threads)
绪论本文关注使用共享内存在多线程和进程之间共享内存的设计和通信。我将把本文分成两个部分:共享内存编码关于共享内存当一个程序加载进内存后,它就被分成叫作页的块。通信将存在内存的两个页之间或者两个独立的进程之间。总之,当一个程序想和另外一个程序通信的时候,那内存将会为这两个程序生成一块公共的内存区域。这块被两个进程分享的内存区域叫做共享内存。如果没有共享内存的概念,那一个进翻译 2009-03-25 19:17:00 · 6246 阅读 · 0 评论 -
TightVNC分析文档
System Shell :1.1 IActiveDesktop Allows a client program to manage the desktop items and wallpaper on a local computer. #include IActiveDesktop* active_desktop = 0;CoCreateInstance(CLSID_ActiveDe转载 2009-04-10 16:54:00 · 4130 阅读 · 1 评论 -
STL中map 和vector嵌套使用示例
暂且只有添加和循环输出,后期再加以改进。 #pragma warning(disable : 4786 ) #include #include #include #include #include using namespace std;typedef map STRING2STRING;typedef std::map > STRING2VE原创 2009-04-18 13:32:00 · 15842 阅读 · 0 评论 -
A sample for map
map::insert, map::find, and map::end (STL Sample)@import url(MS-ITS:dsmsdn.chm::/html/msdn_ie4.css);////////////////////////////////////////////////////////////////////////// Compile optio转载 2009-04-18 11:21:00 · 1163 阅读 · 0 评论 -
使用const
看到const 关键字,C++程序员首先想到的可能是const 常量。这可不是良好的条件反射。如果只知道用const 定义常量,那么相当于把火药仅用于制作鞭炮。const 更大的魅力是它可以修饰函数的参数、返回值,甚至函数的定义体。const 是constant 的缩写,“恒定不变”的意思。被const 修饰的东西都受到强制保护,可以预防意外的变动,能提高程序的健壮性。所以很多C++程序设计书籍原创 2009-04-22 15:59:00 · 853 阅读 · 0 评论 -
string库及其函数
WMLScript的String库包含了一系列的用于字符串处理的函数。前文述及,字符串可以看作是一个字符数组。在该数组中,每个字符都有一个下标序号,其中左起第1个字符的序号是0,其他字符的序号由左向右依次递增。使用String库函数处理字符串时,经常需要利用字符的序号实现对字符的操作。字符串也是有长度,其长度就是数组中字符的个数。另外,为了便于String库函数处理字符串,WMLScri转载 2009-04-23 16:13:00 · 2760 阅读 · 0 评论 -
ATL Com 如何用线程产生异步事件
http://topic.csdn.net/t/20010510/10/116466.html windowless的ActiveX, 请特别注意最后一段。 SAMPLE: Firing Events From a Second Thread ----------------------------原创 2009-04-29 11:06:00 · 2218 阅读 · 1 评论 -
正确运用stl map的erase方法
调试程序时候又遇见map中erase方法,以前也遇到相关问题,所以记录在blog中STL的map表里有一个erase方法用来从一个map中删除掉指令的节点eg:map mapTest;typedef map::iterator ITER;ITER iter=mapTest.find(key);mapTest.erase(iter);像上面这样只是删除单个节点,m原创 2009-04-29 16:15:00 · 10604 阅读 · 1 评论 -
STL关联式容器中删除元素的方法和陷阱
在STL(标准模板库)中经常会碰到要删除容器中部分元素的情况,本人在编程中就经常编写这方面的代码,在编码和测试过程中发现在STL中删除容器有很多陷阱,网上也有不少网友提到如何在STL中安全删除元素这些问题。 上一篇文章主要讨论序列式容器vector、list中安全删除元素的方法和可能会遇到的陷阱,这一次讨论在map(multimap)容器中如何安全的删除和插入元素。 map(mult转载 2009-04-29 16:26:00 · 1547 阅读 · 0 评论 -
ActiveX (.ocx)的写法,及在IE里调用
ActiveX组件编制与ASP接口应用ActiveX ActiveX是Microsoft为了使开发人员能够把计算机桌面环境与构成Internet及其大量资源的环境集成起来,同时保护在Windows中现有的开发投资。ActiveX包括对两个现有Microsoft技术的一系列扩充和增强,这两个技术是:Win32 API和组件对象模型(COM),对象链接和嵌入(OLE)应用是基于它构造的。 所谓转载 2009-05-05 20:05:00 · 2652 阅读 · 1 评论 -
STLport-4.5.3在Visual C++6.0环境中的编译和配置
参考:http://jjhou.csdn.net/myan-stlport.htm1.目录介绍本文解压缩STLport 在目录D:/STLport-4.5.3/下STLport-4.5.3文件夹里的内容: README - 自述文件 INSTALL - 安装说明 doc - STLPort的发行文档 etc - 杂七转载 2009-05-05 21:00:00 · 2366 阅读 · 0 评论 -
在 Visual C++ 中以错误的顺序链接 CRT 库和 MFC 库时出现 LNK2005 错误
当 C 运行时 (CRT) 库和 Microsoft 基础类 (MFC) 库的链接顺序有误时,可能会出现以下 LNK2005 错误之一:nafxcwd.lib(afxmem.obj) :error LNK2005:"void * __cdecl operator new(unsigned int)"(??2@YAPAXI@Z) alreadydefined in LIBCMTD.lib转载 2009-05-14 10:28:00 · 929 阅读 · 0 评论 -
C和C++的时间编程
unix时间相关,也是标准库的这些在1.timegm函数只是将struct tm结构转成time_t结构,不使用时区信息;time_t timegm(struct tm *tm);2.mktime使用时区信息time_t mktime(struct tm *tm);timelocal 函数是GNU扩展的与posix函数mktime相当time_t timelocal (struct tm转载 2009-05-18 17:33:00 · 1724 阅读 · 2 评论 -
一份不错的介绍“堆和栈的区别”的资料
原贴 http://topic.csdn.net/u/20090306/09/5EC55BDC-F2A9-4048-88B4-63616069DF31.html 堆和栈的区别(转贴,作者为一c++程序员,具体姓名不清楚) 一、预备知识—程序的内存分配 一个由c/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)—> 由编译器自动分配释放,存放函数的参数值,局部变量的值等。其转载 2009-05-14 17:20:00 · 615 阅读 · 0 评论 -
CString,int,string,char*之间的转换
《C++标准函数库》中说的 有三个函数可以将字符串的内容转换为字符数组和C—string 1.data(),返回没有”/0“的字符串数组 2,c_str(),返回有”/0“的字符串数组 3,copy() .................................................................int 转 CString:CString.Format(转载 2009-05-18 17:04:00 · 991 阅读 · 0 评论