blog

枪手亨利

博客园 首页 新随笔 联系 订阅 管理

11 2005 档案

摘要:有关于字符串操作BSTR,CString,_bstr_t 相互转换操作的实际代码的讨论,高手真多啊 阅读全文
posted @ 2005-11-11 13:12 henry 阅读(3688) 评论(0) 推荐(0)

摘要:com组件中传入和传出字符串的说明和例子,可以看看 阅读全文
posted @ 2005-11-11 12:23 henry 阅读(2709) 评论(0) 推荐(0)

摘要:msdn:Chapter 6: Stringshttp://msdn.microsoft.com/library/en-us/dnw32dev/html/ora_apiprog6_topic1.asp Table of Contents The BSTRC-Style LPSTR and LPWSTR StringsString TerminologyTools for Exploring Str... 阅读全文
posted @ 2005-11-11 12:17 henry 阅读(304) 评论(0) 推荐(0)

摘要:不错,看看人家老外的文章,五星 Assumptions About the Reader This article assumes that you are familiar with the basics of what XML is and what it can be used for. If you are new to XML, I would suggest reading one of the many fine tutorials on the subject first and then returning to this document. Introducing the XML Document Object Model (DOM) The XML Document Object Model, or DOM, is a very powerful and robust programmatic interface that not only enables you to programatically load and parse 阅读全文
posted @ 2005-11-11 11:58 henry 阅读(500) 评论(0) 推荐(0)

摘要:关于Unicode的说明,还不错 阅读全文
posted @ 2005-11-11 11:49 henry 阅读(982) 评论(0) 推荐(0)

摘要:我可以给你例子,是关于_variant_t和BSTR的,大部分的数据类型已经被包括。暂时贴一点给你看:如何互相转换 BSTR 和 标准C字符串以下代码是用在我的一个Com组件中的,原理可以借鉴:STDMETHODIMP CCStr::Upper(BSTR inStr ,BSTR *outStr){/* 要 求: com接口传入的参数除了... 阅读全文
posted @ 2005-11-11 11:44 henry 阅读(1553) 评论(0) 推荐(0)

摘要:Q:How to read attribute from a tag-------------------------------------------------------------------------------- 2000 Convertible 60,000 420 18.5 test mod... 阅读全文
posted @ 2005-11-11 11:31 henry 阅读(373) 评论(0) 推荐(0)

摘要:如何建立一个BSTR的字符串,以及该字符串转换到char*,最后删除BSTR的空间 阅读全文
posted @ 2005-11-11 11:24 henry 阅读(1915) 评论(0) 推荐(0)

摘要:具体可以参考:// XMLNodeExerciser.cpp//// Locates a specific XML node in an XML document and inserts// a new child node, with an attribute, therein.//#include #include #include void main(){ // Start COM CoI... 阅读全文
posted @ 2005-11-11 10:51 henry 阅读(1586) 评论(0) 推荐(0)

摘要:CoInitialize(NULL); IXMLDOMDocumentPtr domPtr; IXMLDOMNodePtr nodePtr; IXMLDOMNodeList listPtr; 阅读全文
posted @ 2005-11-11 10:49 henry 阅读(2260) 评论(0) 推荐(0)

摘要:这里是操作xml的具体例程。第一个是一个操作xml的类,第二个是另外一段代码 阅读全文
posted @ 2005-11-10 19:38 henry 阅读(9057) 评论(2) 推荐(0)

摘要:描述了操作xml文档的方法,这里面有msxml的具体例程 阅读全文
posted @ 2005-11-10 19:33 henry 阅读(1697) 评论(0) 推荐(0)

摘要:进程间共享数据的四种方式,1、CreateFileMapping;2、Dll;3、WM_COPYDATA;4、直接调用ReadProcessMemory和WriteProcessMemory函数实现进程间通讯; 最后说了一下进程间发送消息的方法 阅读全文
posted @ 2005-11-08 23:37 henry 阅读(9997) 评论(1) 推荐(0)

摘要:我们知道,在NT/2K/XP中,操作系统利用虚拟内存管理技术来维护地址空间映像,每个进程分配一个4GB的虚拟地址空间。运行在用户态的应用程序,不能直接访问物理内存地址;而运行在核心态的驱动程序,能将虚拟地址空间映射为物理地址空间,从而访问物理内存地址。 如果要在应用程序中以物理地址方式访问内存,自然而然的办法,是编写一个专用的驱动程序(如大家熟悉的WinIO),里面设置一定的IOCTL码,应用程序... 阅读全文
posted @ 2005-11-08 23:22 henry 阅读(898) 评论(0) 推荐(0)

摘要:Q 前几次我们讨论的都是设备名比较清楚的情况,有了设备名(路径),就可以直接调用CreateFile打开设备,进行它所支持的I/O操作了。如果事先并不能确切知道设备名,如何去访问设备呢? A 访问设备必须用设备句柄,而得到设备句柄必须知道设备路径,这个套路以你我之力是改变不了的。每个设备都有它所属类型的GUID,我们顺着这个GUID就能获得设备路径。 GUID是同类或同种设备的全球唯一识别码,... 阅读全文
posted @ 2005-11-08 23:17 henry 阅读(1108) 评论(0) 推荐(0)

摘要:Q 用IOCTL_DISK_GET_DRIVE_GEOMETRY或IOCTL_STORAGE_GET_MEDIA_TYPES_EX只能得到很少的磁盘参数,我想获得包括硬盘序列号在内的更加详细的信息,有什么办法呀? A 确实,用你所说的I/O控制码,只能得到最基本的磁盘参数。获取磁盘出厂信息的I/O控制码,微软在VC/MFC环境中没有开放,在DDK中可以发现一些线索。早先,Lynn McGuire... 阅读全文
posted @ 2005-11-08 23:16 henry 阅读(2197) 评论(0) 推荐(0)

摘要:Q DOS命令DISKCOPY给我很深的印象,现在也有许多“克隆”软件,可以对磁盘进行全盘复制。我想,要制作磁盘镜像文件,DeviceIoControl应该很有用武之地吧? A 是的。这里举一个制作软盘镜像文件,功能类似于“DISKCOPY”的例子。 本例实现其功能的核心代码如下: // 打开磁盘 HANDLE OpenDisk(LPCTSTR filename) { HANDLE h... 阅读全文
posted @ 2005-11-08 23:14 henry 阅读(936) 评论(0) 推荐(0)

摘要:Q 在MSDN的那个demo中,将设备名换成“A:”取A盘参数,先用资源管理器读一下盘,再运行这个程序可以成功,但换一张盘后就失败;换成“CDROM0”取CDROM参数,无论如何都不行。这个问题如何解决呢? A 取软盘参数是从软盘上读取格式化后的信息,也就是必须执行读操作,这一点与硬盘不同。将CreateFile中的访问方式改为GENERIC_READ就行了。 IOCTL_DISK_GET_D... 阅读全文
posted @ 2005-11-08 23:13 henry 阅读(1279) 评论(0) 推荐(0)

摘要:Q 在NT/2000/XP中,我想用VC编写应用程序访问硬件设备,如获取磁盘参数、读写绝对扇区数据、测试光驱实际速度等,该从哪里入手呢? A 在NT/2000/XP中,应用程序可以通过API函数DeviceIoControl来实现对设备的访问—获取信息,发送命令,交换数据等。利用该接口函数向指定的设备驱动发送正确的控制码及数据,然后分析它的响应,就可以达到我们的目的。 DeviceIoCont... 阅读全文
posted @ 2005-11-08 23:09 henry 阅读(1341) 评论(0) 推荐(0)

摘要:给应用程序加装“看门狗” 相信大多数的程序员或用户,在Windows中见到类似于下面的亲切而又温馨的提示信息,都不会感到陌生: “XXX执行了非法操作,将被关闭。要终止程序,请单击;要调试程序,请单击。”或者,“是否向Microsoft发送错误报告?,。” 如果这个程序运行在无人值守、需要保持连续工作状态的场合,而其中的bug又一时难以排除,就需要采取应急措施,消除或减少程序出错造成的影响。本... 阅读全文
posted @ 2005-11-08 23:05 henry 阅读(1031) 评论(2) 推荐(0)

摘要:在Windows NT/2K/XP中,直接用CreateFile打开名称类似于"\\.\A:"的”文件”,就可以与设备驱动打交道,通过ReadFile/WriteFile以绝对地址方式访问磁盘了。但Windows 9X不支持这样的简单方法。本文介绍一种在Windows 9X中实现磁盘直接访问的方法:利用系统的vwin32.vxd,通过DeviceIoControl调用DOS INT21 7305H... 阅读全文
posted @ 2005-11-08 23:01 henry 阅读(522) 评论(0) 推荐(0)

摘要:分组密码算法分析,改进 东方龙马公司 孙琳(2000.11) 序:这是我花了近2周的时间写的,可以说比较全面地介绍了各种分组密码、如DES算法、IDEA算法,其中最为宝贵的一部分是最后AES新推荐的算法Rijndael,它是今年10月份美国国家标准和技术研究所刚刚推出的分组密码算法,目前美国官方还没有正式发布此标准,但基本上已有定夺。 前言 数据加密作为一项基本技术是所有通信安全的基石。数据加... 阅读全文
posted @ 2005-11-08 22:35 henry 阅读(3724) 评论(0) 推荐(0)

摘要:http://fp.gladman.plus.com/cryptography_technology/rijndael20051108 阅读全文
posted @ 2005-11-08 22:27 henry 阅读(1445) 评论(0) 推荐(0)

摘要:1 AES加密算法主要步骤1.1 AES算法整体描述l 给定一个明文x,将State初始化为x,并进行AddRoundKey操作,将RoundKey与State异或。l 对前Nr-1轮中的每一轮,用S盒对进行一次代换操作,称为SubBytes;对State做一置换ShiftRows;再对State做一次操作MixColumns;然后进行AddRoundKey操作。l 依次进行SubBytes、Sh... 阅读全文
posted @ 2005-11-08 22:13 henry 阅读(23917) 评论(46) 推荐(0)

摘要:http://blog.joycode.com/moslem/archive/2003/12/29/10108.aspx目前企业面临的计算环境和过去有很大的变化,许多数据资源能够依靠网络来远程存取,而且越来越多的通讯依赖于公共网络公共网络(如 Internet),而这些环境并不保证实体间的安全通信,数据在传输过程可能被其它人读取或篡改。 加密将防止数据被查看或修改,并在原本不安全的信道上提供安全的... 阅读全文
posted @ 2005-11-08 21:59 henry 阅读(1388) 评论(0) 推荐(0)

摘要:摘要:本文主要介绍了在Windows 2000下对磁盘扇区数据的直接读写访问方法,并在此基础上实现了对磁盘扇区内容的查看、基于扇区的数据备份与恢复、对磁盘信息的彻底擦除等一些有着实际意义的应用。 关键字:磁盘访问;扇区;Windows 2000;VC++ 引言 由于Windows 操作系统在很大程度上采取了访问安全保护机制(例如,在Windows操作系统下不能直接访问物理内存、不能使用... 阅读全文
posted @ 2005-11-08 19:39 henry 阅读(1759) 评论(0) 推荐(0)

摘要:---- 因为过于复杂的加密算法实现起来非常困难,所以在过去,许多应用程序只能使用非常简单的加密技术,这样做的结果就是加密的数据很容易就可以被人破译。而使用Microsoft提供的加密应用程序接口(即Cryptography API),或称CryptoAPI,就可以方便地在应用程序中加入强大的加密功能,而不必考虑基本的算法。本文将对CryptoAPI及其使用的数据加密原理作一简单的介绍,然后给出... 阅读全文
posted @ 2005-11-08 16:49 henry 阅读(2263) 评论(0) 推荐(0)

摘要:在程序开发过程中,经常遇到需要保护用户信息和私有数据不被他人窃取的情况,也就是要对数据进行加密。在Win2000以前,要对数据进行加密和解密操作,一般要使用CryptAPI函数,相当烦琐。幸运的是,从Win2000开始,操作系统从内核的级别上提供了对文件进行加密和解密的函数,而且使用起来相当简单。 加密的函数是 BOOL EncryptFile( LPC... 阅读全文
posted @ 2005-11-08 16:46 henry 阅读(896) 评论(0) 推荐(0)

摘要:ShortCurBarDemo20051108 阅读全文
posted @ 2005-11-08 15:19 henry 阅读(564) 评论(1) 推荐(0)

摘要:Win2000的共享内存是同机进程间通信的一个省事的办法。虽然只能在同一台机器上起作用,但使用起来很方便。现在下面开始介绍一下函数: 1. CreateFileMappingHANDLE CreateFileMapping( HANDLE hFile, //... 阅读全文
posted @ 2005-11-08 14:19 henry 阅读(2457) 评论(0) 推荐(0)

摘要:获取内存和Drive信息- - http://hanyu1980.blogchina.com/3329322.html 今天写了一个获取硬盘和内存信息的值的程序,总结一下如下: 1. GlobalMemoryStatus VOID GlobalMemoryStatus( LPMEMORYST... 阅读全文
posted @ 2005-11-08 13:57 henry 阅读(565) 评论(0) 推荐(0)

摘要:boost是一个准标准库,相当于STL的延续和扩充,它的设计理念和STL比较接近,都是利用泛型让复用达到最大化。不过对比STL,boost更加实用。STL集中在算法部分,而boost包含了不少工具类,可以完成比较具体的工作。 boost主要包含一下几个大类:字符串及文本处理、容器、迭代子(Iterator)、算法、函数对象和高阶编程、泛型编程、模板元编程、预处理元编程、并发... 阅读全文
posted @ 2005-11-08 12:40 henry 阅读(1055) 评论(1) 推荐(1)

摘要:ReBar、工具条、菜单条(maxthon浏览器)、背景贴图 阅读全文
posted @ 2005-11-08 12:04 henry 阅读(371) 评论(0) 推荐(0)

摘要:在工具栏中使用真彩色图标 实现带下拉菜单的工具栏按钮 20050916 阅读全文
posted @ 2005-11-08 11:14 henry 阅读(1107) 评论(6) 推荐(0)

摘要:http://www.allaboutprogram.com 开了一个新的版面:类库讨论,希望能够对流行的类库进行探讨,不仅可以从中获得使用经验,也可以为自己今后设计类库指明方向。ATL(Active Template Library,活动模板库) 也是这个版面讨论的对象之一,它是微软开发的一套 COM(Component Object Model,组件对象模型) 支持库。通常,脱离所支持的对象而... 阅读全文
posted @ 2005-11-08 10:32 henry 阅读(1288) 评论(0) 推荐(1)

摘要:http://www.cppblog.com/TechLab/archive/2005/10/20/757.html这是MSDN的例子,纪录于此,便于查找。有的时候需要让TOOLBAR呈多列显示,TBSTATE_WRAP表示让工具栏换行,而TBBS_WRAPPED是MFC中定义的一个宏MAKELONG(0, TBSTATE_WRAP),下面的代码是MFC例子CTRLBARS中的。说明了如何设置多列... 阅读全文
posted @ 2005-11-08 10:23 henry 阅读(535) 评论(0) 推荐(0)

摘要:IPicture接口管理一个图片对象和它的属性。图片对象提供对Bitmap Icon Metafile的语言不相关的抽象支持。图像对象的主要接口是IPicture和IPictureDisp。IPictureDisp从IDispatch继承,提供了通过自动化访问图片属性的能力。图片对象可通过OleCreatePictureIndirect创建。关于IPicture支持的其他接口和方法可以看MSDN... 阅读全文
posted @ 2005-11-08 10:18 henry 阅读(830) 评论(1) 推荐(0)

摘要:http://www.cppblog.com/TechLab/articles/862.html 多页图像是指图像中包含有多个图形页。每页可以看作图像帧。这些图像帧通过连续的显示就形成了一副动画。比如GIF文件。 GDI+的Image对象提供了直接的对GIF、TIF文件格式的支持。调用Image对象的成员函数GetFrameDimensionsCount可以得到Image对象的Dime... 阅读全文
posted @ 2005-11-08 10:14 henry 阅读(3300) 评论(0) 推荐(1)

摘要:归纳能力和演绎能力 通过MindManager进行需求分析的演示 阅读全文
posted @ 2005-11-08 10:03 henry 阅读(1162) 评论(0) 推荐(0)

摘要:修改标题栏的高度 阅读全文
posted @ 2005-11-07 20:31 henry 阅读(1523) 评论(0) 推荐(0)

摘要:MFC提供了一个框架性的打印和打印预览功能代码,它的基本思想是将实际显示和打印文档的代码合二为一,即都由此文档关联的CView中的OnDraw(CDC *pDC)来处理,由MFC框架根据用户的操作来决定传进来的pDC是指向屏幕还是打印机,当pDC指向屏幕设备,就在屏幕上显示文档,当指向打印机设备时就打印文档。这些都很好理解,但是,当我们要打印预览时,传进来的pDC就有些特别了。因为打印预览是在屏幕... 阅读全文
posted @ 2005-11-06 17:51 henry 阅读(665) 评论(1) 推荐(0)

摘要:转载一下,呵呵WMI类--所有可用的WMI的类封装 public class WMIClasses { private Hashtable _ClassHash=new Hashtable(); public WMIClasses() { LoadWMIClasses(); } pri... 阅读全文
posted @ 2005-11-06 12:43 henry 阅读(1642) 评论(0) 推荐(0)

摘要:表示键/值对的集合,这些键/值对根据键的哈希代码进行组织。 有关此类型所有成员的列表,请参阅 Hashtable 成员。 System.Object System.Collections.Hashtable System.Data.PropertyCollection[Visual Basic] Public Class Hashtable Implements IDicti... 阅读全文
posted @ 2005-11-06 09:41 henry 阅读(906) 评论(0) 推荐(0)

摘要:20050712 阅读全文
posted @ 2005-11-05 18:23 henry 阅读(604) 评论(0) 推荐(0)

摘要:基本上都是hook或SetWindowLog,自己处理窗口消息中相应的代码,如果有必要就调用原来的处理过程,否则就直接返回,不用原来的过程来处理20051105 阅读全文
posted @ 2005-11-05 18:06 henry 阅读(606) 评论(0) 推荐(0)

摘要:为什么要用COM 软件工程发展到今天,从一开始的结构化编程,到面向对象编程,再到现在的COM编程,目标只有一个,就是希望软件能象积方块一样是累起来的,是组装起来的,而不是一点点编出来的。结构化编程是函数块的形式,通过把一个软件划分成许多模块,每个模块完成各自不同的功能,尽量做到高内聚低藕合,这已经是一个很好的开始,我们可以把不同的模块分给不同的人去做,然后合到一块,这已经有了组装的概念了。软件... 阅读全文
posted @ 2005-11-05 17:41 henry 阅读(701) 评论(0) 推荐(0)

摘要:下面是Windows重画非客户区的过程。在处理WM-NCPAINT、WM-NCACTIVE、WM-SYSCOMMAND、WM-SETTEXT消息之后,Windows调用缺省处理消息函数DefWindowProc,在此函数中将对非客户区进行重画操作,故而在CWnd的虚函数DefWindowProc中,重画Title Bar,就可以达到我们的目的,但是若不对消息进行一定的过滤,势必引起过多的重画,我们... 阅读全文
posted @ 2005-11-05 17:36 henry 阅读(343) 评论(0) 推荐(0)

摘要:反转文件,20051105 阅读全文
posted @ 2005-11-05 17:25 henry 阅读(339) 评论(0) 推荐(0)

摘要:XML越来越热20051105 阅读全文
posted @ 2005-11-05 13:13 henry 阅读(317) 评论(0) 推荐(0)

摘要:这个例子是用来进程间共享数据用的 //创建一内存映射文件,设定共享内存区域 m_hSharedMemoryFile = ::CreateFileMapping( (HANDLE)0xFFFFFFFF, // 文件句柄 NULL, // 安全属性(WIN95忽略) PAGE_READWRITE, // 文件的保护属性 0, // 使用页面文件 1 m_strShareMemName.GetBuffer(0));// 共享内存名称 阅读全文
posted @ 2005-11-05 09:58 henry 阅读(783) 评论(0) 推荐(0)

摘要:CreateFileMapping(...,name)MapViewOfFilehandle=OpenFileMapping(...,name)WriteFile(handle...)注意文件存取的类型要一致,下面代码是可以的:HANDLE hf=CreateFile("out.txt",GENERIC_WRITE|GENERIC_READ,FILE_SHARE_WRITE,NULL,OPEN_A... 阅读全文
posted @ 2005-11-05 09:50 henry 阅读(1868) 评论(1) 推荐(0)

摘要:想用内存映射文件加、解密大文件,但是对这个内存映射文件实在了解的不多,请指教!原来采用的方法是每次从原文件中读出固定字节的数据,加密,把加密后的数据写入到新建的文件中(也就是加密后的文件),现在改用内存映射文件不知道怎么做,是不是也应该一块一块地加密文件呀?可怎样把文件的一部份读出来?怎样控制读出的位置?操作方式和一般的文件读、写有什么区别吗? 只知道开始用这两个函数: ... 阅读全文
posted @ 2005-11-05 09:46 henry 阅读(787) 评论(0) 推荐(0)

摘要:Windows利用页交换文件来扩充应用程序实际可用的内存,而不仅限于实际的32兆或64兆物理内存。但是Windows的页交换文件是所有程序共用的,所以我们的程序要想获得更大的内存还是比较困难,比如600兆或者更多。难道就没有办法了吗? Windows提供的内存映射文件为我们提供解决问题的途径。在硬盘上建立一个600兆的文件,然后将它映射到我们进程的地址空间,Windows会返... 阅读全文
posted @ 2005-11-05 09:38 henry 阅读(364) 评论(0) 推荐(0)

摘要:VC++中使用内存映射文件处理大文件 2003-01-17· ·中国电波传播研究所青岛分所 郎锐··yesky 摘要: 本文给出了一种方便实用的解决大文件的读取、存储等处理的方法,并结合相关程序代码对具体的实现过程进行了介绍。 引言 文件操作是应用程序最为基本的功能之一,Win32 API和MFC均提供有支持文件处理的函数和类,常用的有Win32 API的CreateFile()、Wr... 阅读全文
posted @ 2005-11-05 09:32 henry 阅读(396) 评论(0) 推荐(0)

摘要:<P>VOID CopyMemory(<BR>  PVOID Destination,   // copy destination<BR>  CONST VOID* Source,  // memory block<BR>  SIZE_T Le... 阅读全文
posted @ 2005-11-05 09:28 henry 阅读(611) 评论(0) 推荐(0)

摘要:©2005 黄友生。本文由原作者发布于MSN Space、CSDN。你可以保存、在非商业软件中使用、在非盈利性文章中引用本文中的部分或全部文字,但请注明作者及原文地址。要用于其它用途,请先联系作者(<A href="mailto:eien@eyou.com">eien@eyou.com</A>)。作者不保证本文完全正确无误、不对因本文中的理论或... 阅读全文
posted @ 2005-11-05 09:21 henry 阅读(1041) 评论(0) 推荐(0)

摘要:向IE 收藏夹中加入地址 阅读全文
posted @ 2005-11-01 13:21 henry 阅读(271) 评论(0) 推荐(0)