李sir_Blog

博客园 首页 联系 订阅 管理
  705 随笔 :: 58 文章 :: 134 评论 :: 193万 阅读

06 2010 档案

摘要:export prototype DefaultFeature_Installed(); function DefaultFeature_Installed() string szInfPath,szApp,szCmd,szKey,szKeyValue; begin// TARGETDIR = "<PROGRAMFILES>\EeePC\" in this projectif (CMD... 阅读全文
posted @ 2010-06-28 15:31 李sir 阅读(1754) 评论(0) 推荐(1) 编辑

摘要:http://www.owlei.com/DancingWind/Course/Tutorial_01.htm这个网址是个牛人翻译的教程。很值得学习opengl编程指南——好书1:openGL开发环境配置OpenGL(全写Open Graphics Library)是个定义了一个跨编程语言、跨平台的编程接口的规格,它用于三维图象(二维的亦可)。OpenGL是个专业的图形程序... 阅读全文
posted @ 2010-06-24 10:26 李sir 阅读(1725) 评论(0) 推荐(0) 编辑

摘要:1:添加头文件:  #include <GdiPlus.h>  加载库文件:  #pragma comment(lib,"gdiplus.lib") //也可以在设置中添加  使用名字空间(可无):  using namespace Gdiplus;  定义用到的两变量:  GdiplusStartupInput m_gdiplusStartupInput;//gdi+版本信息、调试的... 阅读全文
posted @ 2010-06-24 09:24 李sir 阅读(3449) 评论(0) 推荐(0) 编辑

摘要:1:窗口的显示与更新CMyWinApp theApp___AfxWinInit___pApp->Initapplication____pApp->InitInstance____m_pMainWnd=new CMyFramWnd()____CMyFramewnd中Create(NULL,"fds",....);____m_pMainWnd->showWindow(m_nCmdSh... 阅读全文
posted @ 2010-06-21 09:22 李sir 阅读(273) 评论(0) 推荐(0) 编辑

摘要:1:在D/v结构中, 数据都放在一份document中。我们只要把其中的成员变量依次写进文件即可。成员变量很可能是一个对象。而面向对象,我们首先应该记载其类名称,然后才是对象中的数据。读档就有点麻烦了。档程序从文件中读到一个类名称时,它如何实现一个对象,这需要动态创建技术。mfc有一套Serialize机制。目的在于把文件名的选择。文件的开关。缓存区的建立。数据的读写,提取运算符,插入运算符的重载... 阅读全文
posted @ 2010-06-18 16:55 李sir 阅读(934) 评论(0) 推荐(0) 编辑

摘要:1:PS88:MFC的类层次结构<1>CObject<2>CCmdTarget,CDocument<3>CCmdTarget_CWinThread_CWinAppCCmdTarget_CWnd_CViewCCmdTarget_CWnd_CFrameWndC++规定,全局对象的构建将比程序进入点更早。所以theApp的构造函数将更早与main。2:RTTI(运行时... 阅读全文
posted @ 2010-06-18 11:49 李sir 阅读(816) 评论(0) 推荐(0) 编辑

摘要:1:pg17图1-2windows程序的本体与操作系统间的关系2:_stdcall,_pascal,_cdecl,参数进入堆栈的次序。处理堆栈的责任归属3:PG27":对话框函数。通过只处理wm_initdialog和wm_command两个消息。对话框的各个控件也都是小小窗口,各有自己的窗口函数。它们以消息与其管理者(父窗口)沟通。而所有的控件传来的消息都是wm_command,再由其参数分辨哪... 阅读全文
posted @ 2010-06-17 11:47 李sir 阅读(483) 评论(0) 推荐(0) 编辑

摘要:“信号量内核对象”用于对资源进行计数。   在信号量内核对象内部,和其他内核对象一样,有一个使用计数,该使用计数表示信号量内核对象被打开的次数。  信号量内核对象中还有两个比较重要的数据,分别表示最大资源数和当前资源数。最大资源数表示能够管理的资源的总数,当前资源数表示目前可以被使用的资源数量。  可以使用CreateSeamphore函数来创建一个信号量内核对象,该函数成... 阅读全文
posted @ 2010-06-12 16:54 李sir 阅读(1392) 评论(0) 推荐(0) 编辑

摘要:NOTE0在以下两种基本情况下,线程之间需要相互通信: 需要让多个线程同时访问一个共享资源,同时不能破坏资源的完整性; 一个线程需要通知其它线程某项任务已经完成1.原子访问:Interlocked系列函数 http://hi.baidu.com/microsoftxiao/blog/item/a6411546296bc90c6a63e561.html该文章不错。 所谓原子访问,指的是一个线程在访问... 阅读全文
posted @ 2010-06-07 11:10 李sir 阅读(1827) 评论(0) 推荐(0) 编辑

摘要:NOTE0——何为上下文切换每一个线程都有一个上下文。后者保存在线程的内核对象中。这个上下文反映了线程上一次执行时cpu寄存器的状态。大约每隔20ms(GetSystemTimeAdjustMent函数第二个参数的返回值),windows都会查看所有当前存在的线程内核对象,这些对象中只有一些是认为可以调度的。window在可调度的线程内核对象中选择一个,并将上次保存在线程上... 阅读全文
posted @ 2010-06-07 10:19 李sir 阅读(1704) 评论(0) 推荐(0) 编辑

摘要:Note 0:了进程实际是由两个组件组成的:一个进程内核对象和一个地址空间.类似地,线程也由两个组件组成:一个是线程的内核对象,操作系统用它管理线程.内核对象还是系统用来存放线程统计信息的地方.一个线程堆栈,用于维护线程执行时所需的所有函数参数和局部变量.Note 1:进程是有惰性的.进程从来不执行任何东西,它只是一个线程的容器.线程必然是在某个进程的上下文中创建的,而且会在这个进程内部"终其一生... 阅读全文
posted @ 2010-06-04 20:27 李sir 阅读(689) 评论(0) 推荐(0) 编辑

摘要:Note 0:Windows提供了一个作业(job)内核对象,它允许你将进程组合在一起并创建一个"沙箱"来限制进程能够做什么.最好将作业对象想象成一个进程容器.但是,即使作业中只包含一个进程,也是非常有用的,因为这样可以对进程施加平时不能施加的限制.Note 1:以下的StartRestrictedProcess函数将一个进程放入一个作业中,以限制此进程具体能够做哪些事情,如下所示:void St... 阅读全文
posted @ 2010-06-04 19:52 李sir 阅读(2039) 评论(0) 推荐(0) 编辑

摘要:Note 1:在Windows Vista中,系统DLLs是在进程地址空间的随机地址加载的.所以,不要像在Windows XP中那样将PEB的地址硬编码为0x7ffdf000.相反,你需要调用NtQueryInformationProcess,并传递ProcessBasicInformation作为参数.别忘了,在一个版本的Windows中发现的未文档化的细节可能在下一个版本中发生改变.Note ... 阅读全文
posted @ 2010-06-04 19:45 李sir 阅读(369) 评论(0) 推荐(0) 编辑

摘要:Note 1:一个线程可以调用以下两个函数来获取和设置其进程的当前驱动器和目录:DWORD GetCurrentDirectory(DWORD cchCurDir,PTSTR pszCurDir);BOOL SetCurrentDirectory(PCTSTR pszCurDir);注意WinDef.h文件中被定义为260的常量MAX_PATH是目录名称或文件名称的最大字符数.所以在调用GetCu... 阅读全文
posted @ 2010-06-04 17:54 李sir 阅读(470) 评论(0) 推荐(0) 编辑

摘要:Note 1:以前版本的Windows设计的一些应用程序之所以在Windows Vista上不能正常工作,就是因为在实现这些程序时,没有充分考虑安全性.假定一个应用程序在启动时要从一个注册表子项中读取一些数据.正确的做法是调用RegOpenKeyEx,向其传入KEY_QUERY_VALUE,从而指定查询子项数据的权限.然而许多应用程序对安全性没有任何考虑.有的软件开发人员还是按照老习惯,在调用Re... 阅读全文
posted @ 2010-06-04 17:48 李sir 阅读(335) 评论(0) 推荐(0) 编辑

摘要:最理想的比较字符串函数是CompareString(Ex)和CompareStringOrdinal。对于需要以符合用户语言习惯的方式向用户显示的字符串,请用CompareString(Ex)进行比较。CompareString函数的原型如下:int CompareString(LCID locale, //LCID GetThreadLocale();DWORD dwCmdFlags,PCTST... 阅读全文
posted @ 2010-06-03 16:05 李sir 阅读(784) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示