2011年7月23日

手动编译和链接 程序

摘要: 现在每天的开发都是使用vs 2005, 这个IDE为我们做了很多的事情,包括项目文件的管理和编译生成可执行文件等。为了对其背后的原理做一下了解,我用手动的方式来编写和生成简单的dll和exe,希望能对整个流程有个了解。创建一个dll文件先是dll文件部分,我定义了一个头文件和2个cpp文件,分别的代码如下//mydll.h#ifndef MyDllAPIHeader#define MyDllAPIHeader#ifdef MyDllAPI#else#define MyDllAPI extern "C" _declspec(dllimport)#endifMyDllAPI i 阅读全文

posted @ 2011-07-23 12:53 一颗麦粒 阅读(501) 评论(0) 推荐(0) 编辑

2011年7月15日

VC中BSTR和CString的使用

摘要: BSTR在头文件中的定义如下:typedef WCHAR OLECHAR;typedef OLECHAR*BSTR;所以BSTR的实际类型其实就是WCHAR*。在MSDN中的Allocating and ReleasingMemory for a BSTR一文中,强调了在使用这个类型时,要在内存上小心对待,以避免发生内存泄露。对于从函数中传出的BSTR,接受的对象要负责对这个BSTR的内存进行管理。在该文中列举了三种情况:当在一个函数中使用BSTR时,你要负责分配和销毁它,代码如下:// shows using the Win32 function// to allocate memory f 阅读全文

posted @ 2011-07-15 21:05 一颗麦粒 阅读(25203) 评论(0) 推荐(0) 编辑

2011年7月10日

IE中Can't move focus to the control because it is invisible, not enabled, or of a type 。。。的解决方案

摘要: 我们通过IHTMLDocument获取到一个元素之后进行focus,如果这个元素不可见时,会报出上面的这个错误,网上的例子很少在http://www.webdeveloper.com/forum/showthread.php?t=103574中给出了一个解决方案。这个只是一个民间的方案吧,IE官方好像米有办法来获取到一个element是否能够focus。if(element.style.visibility=="hidden" || element.style.display=="none" || element.disabled==true) { // 阅读全文

posted @ 2011-07-10 12:35 一颗麦粒 阅读(1096) 评论(0) 推荐(0) 编辑

2011年6月13日

wtlExplorer研究

摘要: wtlExplorer研究一直都想写个类似于window浏览器那样的程序。以前的想法就是手动的将几个磁盘加到根节点,然后通过FindFile来进行目录的列表和文件的列表。感觉还是没有找到真正正确的方法,昨天看wtlExplorer这个wtl库自带的例子时,发现他使用SHGetDesktopFolder等Shell函数来进行的,这个应该正儿八经的标准的做法了。因此,决定对这个例子进行仔细研究,希望通过这个例子能够将Shell的一些用法熟悉,特别是目录和文件处理相关的,第二点就是熟悉treeview和listview控件。最后将wtl进一步熟悉。第一天,IShellFolder接口先从IShell 阅读全文

posted @ 2011-06-13 19:37 一颗麦粒 阅读(1613) 评论(0) 推荐(1) 编辑

2011年6月2日

理解SSL-Secure Socket Layer

摘要: 主要讨论了ssl技术如何在http浏览中起作用,起什么做用 阅读全文

posted @ 2011-06-02 11:13 一颗麦粒 阅读(2911) 评论(0) 推荐(0) 编辑

2011年2月12日

C++中多继承和类型转换

摘要: Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->#include"stdafx.h"structIX{virtualvoidFX()=0;};structIY{virtualvoidFY()=0;};classCA:publicIX,publicIY{virtualvoidFX(){printf("CA->FX()\n");}virtualvoidFY(){printf("CA-> 阅读全文

posted @ 2011-02-12 10:43 一颗麦粒 阅读(400) 评论(0) 推荐(0) 编辑

2011年1月21日

The difference between static_cast and dynamic_cast

摘要: Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->//static_cast_Operator_2.cpp//compilewith:/LD/GRclassB{public:virtualvoidTest(){}};classD:publicB{};voidf(B*pb){D*pd1=dynamic_cast<D*>(pb);D*pd2=static_cast<D*>(pb);}if pb really points t 阅读全文

posted @ 2011-01-21 19:57 一颗麦粒 阅读(244) 评论(0) 推荐(0) 编辑

2011年1月14日

用到的开发工具

摘要: process explorer:查看进程之间关系,系统当前的进程XueTr0.37.zip: hookeXeScope :查看二进制程序中的资源,结构之类的debugview :用于查看程序的日志输出信息,很好用 Fiddler:http调试firebug : 用于网页调试,js调试IE8 下按 F 12 ,可以调试网页。NSIS 用于制作安装程序 阅读全文

posted @ 2011-01-14 12:18 一颗麦粒 阅读(158) 评论(0) 推荐(0) 编辑

2010年12月29日

《Win32多线程程序设计》学习笔记 第17章 OLE ActiveX COM

摘要: Apartment Model在该模型中,一个对象和一个特定的线程有关联,只有在该线程的context之中才能够调用该对象。 COM的“apartment”是一个对象产生,运作和毁灭的地方。当client要求一个指向interface的指针,它是从一个特定的线程(也就是apartment)中发出请求。这个client可能只在该apartment中使用该interface指针。当然也有可能产生一个interface指针给其他的apartment使用,这种情况你必须使用COM函数 CoMarshalInterThreadInterfaceInStream() 和CoGetInterfaceAnd. 阅读全文

posted @ 2010-12-29 11:07 一颗麦粒 阅读(269) 评论(0) 推荐(0) 编辑

2010年12月28日

《Win32多线程程序设计》学习笔记 第14章 建造DLL

摘要: DLL的通告消息Notifications任何时候,当一个进程载入或卸载一个dll时,dllmain会被调用。线程也是一样的。当一个进程开始执行时,它所用到的每个dll的dllmain都会被系统调用之,并获得一个DLL_PROCESS_ATTACH消息。如果是线程开始执行,进程所用到的每一个dll的dllmain也都会被系统调用之,并获得DLL_THREAD_ATTACH消息。Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->BOOLWINAP 阅读全文

posted @ 2010-12-28 22:17 一颗麦粒 阅读(266) 评论(0) 推荐(0) 编辑

导航