摘要:
可能没有几个人能像我这样在Windows下编译Linux内核,甚至于同时进行内核调试。这种事情我不是第一个做到的,至少我们公司的原TKStudio部门已经做过。在TKStudio网站上,提供了一个Linux内核和ucLinux内核的编译和调试工程可供下载。正因为TKStudio证明这种想法是可行的,所以我才有可能尝试去做这件事情。我做的仅仅是交叉编译ARM平台下的内核,我也只对此平台熟悉。TKStudio也只支持ARM等嵌入式平台。在Windows下编译Linux内核步骤上周,已经成功使用TKStudio编译UBoot,这次将Linux内核移植到TKStudio下也是借鉴移植UBoot的做法。 阅读全文
摘要:
AbortDoc 取消一份文档的打印AbortPrinter 删除与一台打印机关联在一起的缓冲文件AddForm 为打印机的表单列表添加一个新表单AddJob 用于获取一个有效的路径名,以便用它为作业创建一个后台打印文件。它也会为作业分配一个作业编号AddMonitor 为系统添加一个打印机监视器AddPort 启动"添加端口"对话框,允许用户在系统可用端口列表中加入一个新端口AddPrinter 在系统中添加一台新打印机AddPrinterConnection 连接指定的打印机AddPrinterDriver 为指定的系统添加一个打印驱动程序AddPrintProcess 阅读全文
摘要:
消息机制windows是一个消息驱动的系统,会有一个总的系统消息的队列,鼠标、键盘等等都会流入到这个队列中,同时会为每个线程维护一个消息队列(注意默认是有GUI调用的线程才有,对于没有GUI或者窗口的线程,只有当在线程内调用get/peek message 才会自动创建一个消息队列),线程是容纳消息队列的基本单元,系统会把属于不同线程的消息投递到属于线程的消息队列中当线程调用get/peek message时会从系统的消息队列中取出一个本线程内的消息。(get方法是阻塞的会等到一个消息拿出来为止,取到后会从队列中移除,而peek方法只是快速的查看一下,有取出没有返回,并且可以选择取到后是否从队 阅读全文
摘要:
1. 什么是窗口 MSDN: In a graphical Win32-based application, a window is a rectangular area of the screen where the application displays output and receives input from the user. Therefore, one of the first tasks of a graphical Win32-based application is to create a window. 大意:窗口就是一个矩形区域,应用程序可以用它来显示输出,或... 阅读全文
摘要:
剖析Windows消息处理机制前一段,帮人写了个小控件,又温习了一遍Windows消息处理机制,现在把一些知识点总结出来,供大家参考.1.窗口 Windows程序是由一系列的窗口构成的,每个窗口都有自己的窗口过程,窗口过程就是一个拥有有固定 Signature 的 C函数,具体格式如下: LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam ); 窗口类型: 可重叠窗口(Overlapped Window), 弹出窗口(Pop-up Window), 子窗口(Child ... 阅读全文
摘要:
今天尝试写了一个简单的C++DLL,并且用另一个CPP调用它,啥都不说,先贴代码1.DLL(冒泡算法)extern "C" 必须最左 _declspec(dllexport)和void可以或左或右extern "C"_declspec(dllexport) void maopao(int *p,int count); void maopao(int *p,int count) { int temp=0; for(int i=1;i=i;j--) { if(p[j]>p[j-1]) {temp=p[j]; p[j]=p[j-1]; p[j-1]=te 阅读全文
摘要:
说明$(RemoteMachine)设置为“调试”属性页上“远程计算机”属性的值。有关更多信息,请参见更改用于 C/C++ 调试配置的项目设置。$(References)以分号分隔的引用列表被添加到项目中。$(ConfigurationName)当前项目配置的名称(例如“Debug”)。$(PlatformName)当前项目平台的名称(例如“Win32”)。$(Inherit)指定在由项目生成系统所撰写的命令行中,继承的属性出现的顺序。默认情况下,继承的属性出现在当前属性的末尾。$(NoInherit)使任何将被继承的属性不被继承。若还要避免同级级别的计算,请使用$(StopEvaluatin 阅读全文
摘要:
OLE(Object Linking and Embedding,对象连接与嵌入) 一、过去的OLE和今天的OLE 最初的OLE含义是指在程序之间链接和嵌入对象数据,它提供了建立混合文档的手段(资深Windows 3.X 用户可能记得当初在Word6.0中插入一个图形的新奇和喜悦),使得那些没有太多专业知识的用户能够很容易地协调多个应用程序完成混合文档的建立。1991年制定的OLE1.0规范主要解决多个应用程序之间的通信和消息传递问题,微软希望第三方开发商能够遵守这个规范,以使在当时的Windows平台上的应用程序能够相互协调工作,更大的提高工作效率。然而事与愿违,只有很少的软件开发商... 阅读全文
摘要:
一、STL即 Standard Template Library (标准模板库) STL是惠普实验室开发的一系列软件的统称。它是由Alexander Stepanov、Meng Lee和David R Musser在惠普实验室工作时所开发出来的。现在虽说它主要出现在C++中,但在被引入C++之前该技术就已经存在了很长的一段时间。STL的代码从广义上讲分为三类:algorithm(算法)、container(容器)和iterator(迭代器),几乎所有的代码都采用了模板类和模版函数的方式,这相比于传统的由函数和类组成的库来说提供了更好的代码重用机会。从根本上说,STL是一些“容器”的集合,这些“ 阅读全文
摘要:
最原始的COM组件调用过程(不使用注册表信息)最近因为项目的关系开始研究COM组件了,以前都认为COM过时了,所以也没怎么接触. 现在好好补补课了.一般调用COM都是通过注册表找到它的位置, 然后调用COM库的标准函数. 这些封装无疑使得我这个初学者无法了解里面到底做了什么, 而且注册表和COM库标准函数都是windows提供的, 但是COM这个思想是可以在Linux下实现的. 只要知道它的实现原理就行了. 因此我就试着用最基本的调用方法来使用COM组件, 以了解其调用过程和原理.首先,我用vs的ATL创建了一个简单的ATL项目test, 然后添加了一个简单对象Mytest, 该对象实现了一个 阅读全文