
windows编程
文章平均质量分 74
向量Vector
IT 人员
展开
-
windows中结束线程的4种方式
windows操作系统中,创建的线程有以下4种终止方式1. 线程函数返回当线程函数返回时,该线程会被终止,始终应该采用该方式来结束线程的运行,因为这是确保所有线程资源被正确清除的唯一办法。如果线程按照该方式成功返回,则:1)线程函数中创建的所有C++对象均能通过他们的析构函数正确原创 2011-07-13 14:00:06 · 722 阅读 · 0 评论 -
MFC为何使用消息映射表而不用虚函数?
这个问题是windows开发面试中最经常问到得问题,也是很有深度的一个问题。有两个帖子对该问题讨论的比较深刻:http://topic.youkuaiyun.com/u/20090822/16/4cf5d189-0e5e-41ff-9ba3-c7eaf2f6da74.htmlhttp://t转载 2011-07-13 14:03:01 · 457 阅读 · 0 评论 -
对mfc界面机制的一点认识.
1: 如果了解了sdk编程. 就知道, 本质上, 所有显示在屏幕上的东东都是窗口而已, 无论里面的显示的东西多么复杂, 多么漂亮,QQ界面也好, VS Studio编程界面也罢, 菜单栏也好, 状态栏也罢, 各种简单控件也好, 各种复杂控件也罢, 都是在窗口内绘制的东东.控件也是原创 2011-07-13 14:08:32 · 293 阅读 · 0 评论 -
Windows下常用的命令
winver 检查Windows版本dxdiag 检查DirectX信息mem.exe 显示内存使用情况Sndvol32 音量控制程序sfc.exe 系统文件检查器gpedit.msc 组策略 regedit.exe 注册表 msconfig.exe 系统配置实用程序mstsc原创 2011-07-21 16:15:51 · 265 阅读 · 0 评论 -
用C语言读取大文件的问题 内存映射
Windows对文件的读写提供了很丰富的操作手段,如:1. FILE *fp, fstearm...; (C/C++)2. CFile, CStdioFile...; (MFC)3. CreateFile, ReadFile...;(API)...在处理一般的文件(文本/非文本)转载 2011-07-14 15:01:50 · 627 阅读 · 0 评论 -
vc2005 附加到进程.(调试错误)
1: 修改xEye. 在退出的时候加入如下代码: xEyeLog *pLog = 0; pLog->write_log(Log_Function,"---- LoadIconRes Ok ----"); // 这个地方会有异常 int *pInt = 0; *pInt = 3;原创 2011-07-14 15:42:32 · 506 阅读 · 0 评论 -
VC++6.0中内存泄漏检测 - 对MFC检测方法的移植
对C++代码而言,内存泄漏问题虽然有诸多方法避免,但实际代码编写的时候,或出于自信或出于复杂性的考虑,常常还会用到原始的operator new,这不可避免的会带来内存泄漏的可能,不久前本人因为违反了"可用于被多态继承的基类其析构函数应当有virtual修饰"的法则( 一不小心就原创 2011-07-14 11:42:41 · 271 阅读 · 0 评论 -
调试堆的错误-release和debug的差别
参考:1: http://blog.youkuaiyun.com/sjf331/archive/2005/04/06/338249.aspx2: http://www.cppblog.com/kerlw/archive/2009/02/28/21700.html#75186堆被破坏的错误,在转载 2011-07-14 15:40:54 · 284 阅读 · 0 评论 -
一个VS2005无法调试C++的问题
现象:在vs2005中,建立一个空项目,添加一个c++文件main.cc#includeusing namespace std;int main(){ cout }此时按f5启动调试,即会提示项目无法调试:无法找到“xxx.exe”的调试信息,或者调试信息不匹配。未使用调试信息生原创 2011-07-14 15:45:05 · 295 阅读 · 0 评论 -
Winsock工作模型
首先得弄清楚同步、异步、阻塞、非阻塞的概念。同步和异步是针对通讯的工作模式,阻塞和非阻塞是指socket的I/O操作。实际上对于socket,只存在阻塞和非阻塞,同步与异步是在程序实现上有所不同。以阻塞的方式执行recv函数,在没有收到数据前,此函数是不会返回的,所以这很容易执行原创 2011-07-14 16:08:05 · 546 阅读 · 0 评论 -
多线程间通信的问题
一 多线程间通信的问题多线程间通信的问题 本质上就是, 一个线程负责维护一个变量/结构体, 另外的一个(多个)线程读取这个变量结构体的内容eg: 线程A维护结构体struA, 线程B需要不断的读取struA的内容多线程间通信时, 编码面临最大的问题在于 读取的信息不一致, 读脏数原创 2011-07-13 14:00:52 · 6882 阅读 · 0 评论 -
VC++程序文件扩展名解读大全(精炼)
VC文件扩展名解读大全 .APS:存放二进制资源的中间文件,VC把当前资源文件转换成二进制格式,并存放在APS文件中,以加快资源装载速度。资源辅助文件。.BMP:位图资源文件。.BSC:浏览信息文件,由浏览信息维护工具(BSCMAKE)从原始浏览信息文件(.SBR)中生成,BSC转载 2011-07-13 11:33:47 · 649 阅读 · 0 评论 -
globalalloc、malloc和new的区别
GlobalAlloc是为了与Win16兼容才保留的,在Win32下不要使用。 全局内存对象使用GlobalAlloc函数分配,在Windows 3.X的时代,分配的内存可以有两种,全局的和局部的,例如GlobalAlloc和LocalAlloc。但在Win32的时代这些函数已经原创 2011-07-13 09:07:06 · 178 阅读 · 0 评论 -
一个microsoft的.exe程序的启动过程
学习windows 编程从mfc角度来说可分为两部分那就是WinMain函数以前的,和WinMain函数以后的。前者涉及很多windows操作系统内部的知识,后者么看mfc源码就可以了。虽然大多数程序不需要你了解太多关于os加载应用程序这方面的知识,但我认为能较深入了解windo转载 2011-07-13 14:03:58 · 270 阅读 · 0 评论 -
[转]VC6 和 VC2008(vc8) 的C++语法上测差别.
a. For 循环的声明 Vc6: for(int iVc8: for(int i int i; for(iVc8中的for循环中变量的有效期仅仅在for 循环的开始与结束期间有效。b.string实现 Vc6: string s; char *p = s转载 2011-07-13 14:07:54 · 416 阅读 · 0 评论 -
ATL简介
一. 什么是ATL 自从1993年Microsoft首次公布了COM技术以后,Windows平台上的开发模式发生了巨大的变化,以COM为基础的一系列软件组件化技术将Windows编程带入了组件化时代。广大的开发人员在为COM带来的软件组件化趋势欢欣鼓舞的同时,对于COM开发技转载 2011-07-12 13:30:10 · 230 阅读 · 0 评论 -
将 Win32 程序移植到 Linux
对于这个问题,网上已经有很多资料给予了介绍,但是相比于这些信息,本文立足于个人的实践,将内容具体到开发环境和源代码,我觉得还是有很多值得总结和借鉴的。首先声明开发环境。Win32程序的开发环境是VS.Net 2008,编程语言是C;Linux使用的RHEL 5.4,GCC的版本是转载 2011-07-13 09:05:45 · 315 阅读 · 0 评论 -
win32 and COM development
做windows平台的软件开发,说一千道一万,各种各样,形形色色的windows客户端的软件,本质上都是利用windows SDK开发出来的。windows SDK 包含了两大部分: win32 和 COM。win32 : 早期微软提供 SDK 的方式,。通过dll中导出函数的原创 2011-07-13 14:04:46 · 410 阅读 · 0 评论 -
多线程-关于线程池的认识(1)
感性认识:线程池是为了方便解决WEB服务器,很pin繁的响应来自客户端的请求的发明的,过于pin繁的创建与撤消线程,会引起比线程本身更大的开消! 引自:http://tt.3800hk.com/Article/cxsj/java/javajc/2005-08-06/Article原创 2011-07-12 10:51:05 · 294 阅读 · 0 评论 -
VC工程中后缀为.cpp,.h,.rc,.dsp,.dsw
.cpp 是源程序代码c++文件.h 是包含函数声明和变量定义的头文件.rc 是定义资源的资源脚本文件.dsp 是工程文件,记录当前工程的有关信息.dsw 是工作区文件,一个工作区可能包含一个或多个工程...(其它.clw .opt .aps等后缀文件,见下面说明)原创 2011-07-13 09:01:32 · 234 阅读 · 0 评论 -
Win Unix Mac 等多种系统平台的宏定义
Win Unix Mac 等多种系统平台的宏定义,平台移植时可做参考view plaincopy to clipboardprint?#ifndef QGLOBAL_H #define QGLOBAL_H #define QT_VERSION_STR "3.1.2转载 2011-07-13 09:02:55 · 263 阅读 · 0 评论 -
使用异常和返回值,Exception and Error dispose
使用异常和返回值1.使用返回值处理错误需要程序员严格的编程作风,程序员不论是否有这种习惯,这都是非常不希望的。2.正确的异常处理是C++中的一个常识。异常通过发出错误信号,可以让程序代码和错误处理代码分开,而且不会让程序忽略错误。3.必须了解使用了哪种错误处理方法,返回值还是抛出转载 2011-07-14 15:04:25 · 343 阅读 · 0 评论