MSDN
文章平均质量分 76
dtdn
这个作者很懒,什么都没留下…
展开
-
创建控制台
当系统启动一个控制台程序时就会创建一个新的控制台,这个控制台程序的入口点为main函数。例如,系统在启动命令处理器(命令提示符)时就会创建一个新的控制台。一旦命令处理器启动了一个新的控制台程序,用户就可以指定系统是否为新的程序创建一个新的控制台,还是继承当前的命令处理器的控制台。 程序可以通过以下方法创建一个控制台:一个GUI程序或控制台程序可以以CREATE_NEW_CONSO原创 2005-02-16 17:04:00 · 3941 阅读 · 0 评论 -
线程池(Thread Pooling),译自MSDN
线程池(Thread Pooling) 有许多应用线程的程序在等候事件的休眠状态中消耗了大量时间,Other threads may enter a sleeping state only to be awakened periodically to poll for a change or update status information. Thread pooling enables yo原创 2005-08-08 13:44:00 · 4772 阅读 · 0 评论 -
动态链接库的数据及动态链接库重定向,译自MSDN
动态链接库的数据 DLL可以包含全局数据及局部数据变量范围DLL变量的默认范围与应用程序所声明的变量作用域相同,DLL源文件中的全局变量对于使用DLL的每个进程是全部可见的。静态变量受限于声明所在块范畴。默认情况下,每个进程具有自己的DLL全局变量及静态变量实例。 你所使用的开发工具可能会允许你超越默认的全局及静态变量范围。更多信息参见开发工具相关文档。 动态内存分配 当DLL用内存分配函原创 2005-03-03 17:12:00 · 2738 阅读 · 1 评论 -
载入时动态链接及运行时动态链接,译自MSDN
载入时动态链接 系统启动一个使用载入时动态链接的程序时,使用连接程序放置的到文件的信息来定位进程所需要的DLL的名称。然后系统将在以下位置顺序搜寻DLL:应用程序载入目录 当前目录 系统目录。通过GetSystemDirectory 函数可以得到。 16位系统目录。没有函数可以获取该目录,但它是被搜索的。 Windows Me/98/95: 目录不存在 Windows目录。通过GetWind原创 2005-03-02 13:22:00 · 5253 阅读 · 0 评论 -
升级动态链接库及创建一个简单的动态链接库、使用载入时动态链接、使用运行时动态链接的示例,译自MSDN
升级动态链接库 有时需要把一个DLL升级替换到新版本。替换DLL前,检查确认替换的确是较新版本。有时可能要替换一个正在使用的DLL。替换DLL的方法依据操作系统的不同而不同,Windows XP及后续版本,应用程序应该使用独立程序及并行系统来实现。 按照以下步骤进行升级就不必重启计算机:用MoveFileEx 函数重命名要被替换掉的DLL。不要指定MOVEFILE_COPY_ALLOWED原创 2005-03-04 15:52:00 · 3100 阅读 · 0 评论 -
动态连接库入口点函数
DLL可以制定一个入口点函数,如果指定了入口点函数,系统在进程或线程载入或卸载DLL时就会调用入口点函数。这可以用来实现简单的初始化及清除任务。例如,新的线程创建时,可以设立线程局部存储器,然后线程终止时清除局部存储。 如果用C运行时库连接DLL,就会自动提供一个入口点函数,并允许提供一个单独的初始化函数。还是看看运行时库的文档获取更多信息吧。 如果你提供自己的入口点,请参见Dll原创 2005-03-01 17:22:00 · 7779 阅读 · 0 评论 -
创建动态链接库
要创建DLL,就必须首先创建一个或多个源代码文件,还有一个连接文件用来导出函数。如果打算可以以载入时动态链接使用DLL的话,还必须创建一个导入库。创建源文件 DLL的源代码中包含了需导出的函数及数据,还有内部函数及数据,另外可以有一个可选的入口函数。你可以使用任意支持创建基于Windows的DLL工具来创建DLL。 如果你的DLL需要支持多线程,应该让你的DLL做到“线程安全”原创 2005-02-28 17:27:00 · 1632 阅读 · 0 评论 -
关于动态链接库及使用动态链接的优点
关于动态链接库 动态链接允许一个模块仅需载入或执行一个导出的DLL函数。动态链接不同于我们熟悉的静态链接,使用静态链接时,链接程序会把库函数代码拷贝到每个需要的模块中。动态链接的类型 调用一个DLL中的函数有两种方法:载入时动态链接(load-time dynamic linking),模块非常明确调用某个导出函数,使得他们就像本地函数一样。这需要链接时链接那些原创 2005-02-24 16:39:00 · 7444 阅读 · 1 评论 -
控制台句柄
控制台程序通过句柄访问控制台的输入缓冲区及屏幕缓冲区。程序可以通过GetStdHandle, CreateFile, 或者 CreateConsoleScreenBuffer 函数打开所需的句柄。 GetStdHandle 函数提供了获取该程序所关联的标准输入(STDIN)、标准输出(STDOUT)及标准错误(STDERR)的句柄的机制,控制台创建时,系统创建了这些句柄。开始,STDIN原创 2005-02-18 15:02:00 · 5601 阅读 · 0 评论 -
控制台屏幕缓冲区
屏幕缓冲区是一个在控制台窗口输出的二维字符及颜色数组。一个控制台可以包含多个屏幕缓冲区,当前屏幕缓冲区指的是显示在屏幕上的那个缓冲区。 系统在创建新控制台时就会创建一个屏幕缓冲区。调用CreateFile函数指定CONOUT$值便可打开控制台的当前屏幕缓冲区。程序可以CreateConsoleScreenBuffer 函数为它的控制台创建额外的屏幕缓冲区。一个新的屏幕缓冲区用自己的句柄调原创 2005-02-22 14:25:00 · 9069 阅读 · 5 评论 -
关于IO完成端口(IO Completion Port),译|摘
关于IO完成端口(I/O Completion Port) 学习线程池时,碰到了IO Completion Port这个词汇,所以找了些资料看看,MSDN资料简单翻译一下,基本上可以了解IO完成端口的概念,在《游戏编程精粹III》中也有一段谈到了这个概念,一并摘录至此。I/O完成端口(I/O Completion Ports),译 I/O完成端口是应用程序启动后处理异步I/O请求时所创建线程池原创 2005-08-09 11:47:00 · 3189 阅读 · 0 评论