随笔分类 - Windows
摘要:Visual Studio 是微软公司推出的开发环境,也是目前最流行的 Windows 平台应用程序开发环境。MID平台,基于Intel Atom处理器和Windows xp操作系统下的应用软件可以使用开发工具visual studio 2008。 基本功能 开发windows应用程序、web应用程序、智能设备应用程序、网络服务和office插件等,集编码、编译、调试和运行于一体。版本vs 2008是其开发的9.0版本,当前最新版本为10.0即vs 2010。版本分类Visual Studio 2008 Express EditionVisual Studio 2008 Standard Ed
阅读全文
摘要:CRT应该是严格遵守C89或C99的,他应具备与操作系统无关的跨平台特性。任何个人和组织都可以基于ANSI 标准C开发出一套支持上层软件或系统开发的、反复使用、通用的CRT.诚如microsoft的windows开发同样要使用CRT和编译器。只是microsoft把操作系统的一些API加入CRT并公之于众,这样大大利于用户于其操作系统上开发---即可以使用CRT又可以使用上层api,系统有用户了用户也可便利开发软件了,这显然是合理的。也就是这样,他给我带来了假象,仿佛CRT是使用windows api开发出来似的。当然这是不对的,只是mc把CRL添加、包装(lib,dll)后方便大家使用和开发
阅读全文
摘要:1.概论 运行时库是程序在运行时所需要的库文件,通常运行时库是以LIB或DLL形式提供的。C运行时库诞生于20世纪70年代,当时的程序世界还很单纯,应用程序都是单线程的,多任务或多线程机制在此时还属于新观念。所以这个时期的C运行时库都是单线程的。 随着操作系统多线程技术的发展,最初的C运行时库无法满足程序的需求,出现了严重的问题。C运行时库使用了多个全局变量(例如errno)和静态变量,这可能在多线程程序中引起冲突。假设两个线程都同时设置errno,其结果是后设置的errno会将先前的覆盖,用户得不到正确的错误信息。 因此,Visual C++提供了两种版本的C运行时库。一个版本供单线程应用程
阅读全文
摘要:一、 软件执行流程1、 软件编译流程Ø 预编译完成宏展开工作。Ø 为每一个.cxx源文件编译一个目标文件(.obj,.o),目标文件中至少包含二进制的代码段和数据段。在cxx源文件中可能会引用在其他cxx/hxx中定义的符号,也可能是自己定义的一些符号,这些作用域超过一个cxx文件的符号称为“public符号”(例如非静态函数)。因此每一个目标文件中也包含一个符号表,用于记录自己引用的符号及自己提供的public符号。Ø 编译器合成这些目标文件成一个库文件(.lib),同时解析可以找到的符号引用。此时这个库文件包含了二进制的代码段和数据段,同样也会包含一个符号表,
阅读全文
摘要:基于windows操作系统,可以采用如下函数创建线程,以前的代码是不准备去翻了,立此备忘而已...1、windows API CreateThread; HANDLE CreateThread(PSECURITY_ATTRIBUTES psa, DWORD cbStack,PTHREAD_START_ROUTINE pfnStartAddr, PVOID pvParam,DWORD fdwCreate, PDWORD pdwThreadID);psa参数:是指向PSECURITY_ATTRIBUTES结构的指针。如果希望所有的子进程能够继承该线程对象的句柄,必须设定一个PSECURITY_AT
阅读全文
摘要:八、 Windows驱动程序模型Windows环境下驱动程序共有三类,一类是VxD( Virtual Device Driver,虚拟设备驱动程序),起源于Windows 3.1 时代,用于Windows 95/98/Me操作系统中;一类是KMD( Kernel Mode Driver,内核模式驱动程序),用于Windows NT下;还有一类就是WDM(Win32 Driver Mode,Win32驱动程序模型),是微软从Windows 98开始,推出的一个新的驱动类型,它是一个跨平台的驱动程序模型,不仅如此WDM驱动程序还可以在不修改源代码的情况下经过重新编译后在非Intel平台上运行,毫不
阅读全文
摘要:Windows下usb接口芯片的驱动技术一、 USB概述USB的英文全称为Universal Serial Bus,中文含义是通用串行总线,是由Conpaq、DEC、IBM、Inter、Microsoft、NEC和Northen Telecom等公司为简化PC与外设之间的互连而共同研究开发的一种免费的标准化连接器,它支持各种PC与外设之间的连接,还可实现数字多媒体集成。现在生产的PC几乎都配备了USB接口,Microsoft 的Windows98、NT以及MacOS、Linux、FreeBSD等流行操作系统都增加了对 USB的支持。它是一种快速的,双向的,同步传输的廉价的并可以进行热拔插的串行
阅读全文
摘要:使用过MSN的人应该知道,目前有针对MSN的外壳程序MSNShell。使用Skype4Com API你也可以轻松的开发一个SKYPEShell程序。Skype也是世界上最开放,最具创新意识的IM工具,他提供了Skype API, Skype4COM, Skype4Java几种形式的开发接口给Skype爱好者编写Skype的交互程序或者Skype的插件。Skype中文官网:http://skype.tom.com/Skype全球官网:http://www.skype.com/Skype全球开发者社区:http://developer.skype.com/SkypeShell下载链接:http:/
阅读全文
摘要:早在两年前我就已经能很熟练的运用完成端口这种技术了,只是一直没有机会将它用在什么项目中,这段时间见到这种技术被过分炒作,过分的神秘化,就想写一篇解释它如何工作的文章.想告诉大家它没有传说中的那么高深难懂!有什么错误的地方还请高人指正.转载请注明出处及作者,谢谢!以一个文件传输服务端为例,在我的机器上它只起两个线程就可以为很多个个客户端同时提供文件下载服务,程序的性能会随机器内CPU个数的增加而线性增长,我尽可能做到使它清晰易懂,虽然程序很小却用到了NT 5的一些新特性,重叠IO,完成端口以及线程池,基于这种模型的服务端程序应该是NT系统上性能最好的了.首先.做为完成端口的基础,我们应该理解重叠
阅读全文
摘要:1. 引言Windows 在操作系统平台占有绝对统治地位,基于Windows 的编程和开发越来越广泛。Dos 是过程驱动的,而Windows 是事件驱动的[6],这种差别的存在使得很多Dos 程序员不能习惯Windows 的程序开发。而很多Windows 程序开发人员也只是对消息运行机制一知半解,想要掌握Windows 编程的核心,必须深刻理解消息机制。事件驱动围绕着消息的产生与处理展开,事件驱动是靠消息循环机制来实现的。也可以理解为消息是一种报告有关事件发生的通知,消息是Windows 操作系统的灵魂,掌握了消息运行机制就掌握了Windows 编程的神兵利器。本文将首先阐述Windows 的
阅读全文
摘要:1、Windows事件驱动机制 我们当中不少使用VC、Delphi等作为开发语言的程序员是一步步从DOS下的Basic、C++中走过来的,而且大多在刚开始学习编程时也是先从DOS下的编程环境入手的,因此在习惯了DOS下的过程驱动形式的顺序程序设计方法后,往往在向Windows下的开发环境转型的过程中会对Windows所采取的事件驱动方式感到无法适应。因为DOS和Windows这两种操作系统的运行机制是截然不同的,DOS下的任何程序都是使用顺序的、过程驱动的程序设计方法。这种程序都有一个明显的开始、明显的过程以及一个明显的结束,因此通过程序就能直接控制程序事件或过程的全部顺序。即使是在处理异常时
阅读全文
摘要:回调函数是一个很有用,也很重要的概念。当发生某种事件时,系统或其他函数将会自动调用你定义的一段函数(简单如一按钮的事件相应函数)。回调函数在windows编程使用的场合很多,比如Hook回调函数:MouseProc,GetMsgProc以及EnumWindows,DrawState的回调函数等等,还有很多系统级的回调过程。之所以产生使用回调函数这个想法,用VC写的一个DLL程序进行一些时间比较长的异步工作,工作完成之后,需要通知使用DLL的应用程序:某些事件已经完成,请处理事件的后续部分。开始想过使用同步对象,文件影射,消息等实现DLL函数到应用程序的通知,后来突然想到可不可以在应用程序端先写
阅读全文
摘要:c++语言本身是不能删除文件或文件夹的,他们是windows操作系统里的东西,所以得借助其api函数。其一:使用shell 接口:void FileDelete(CString directory){SHFILEOPSTRUCT shFileOp;char strCurrentPath[MAX_PATH];memset(&shFileOp,0,sizeof(shFileOp)); GetCurrentDirectory(MAX_PATH,strCurrentPath);strcat_s(strCurrentPath,sizeof(strCurrentPath),directory);s
阅读全文
摘要:同步 所谓同步,就是在发出一个功能调用时,在没有得到结果之前,该调用就不返回。按照这个定义,其实绝大多数函数都是同步调用(例如sin, isdigit等)。但是一般而言,我们在说同步、异步的时候,特指那些需要其他部件协作或者需要一定时间完成的任务。最常见的例子就是 SendMessage。该函数发送一个消息给某个窗口,在对方处理完消息之前,这个函数不返回。当对方处理完毕以后,该函数才把消息处理函数所返回的 LRESULT值返回给调用者。 异步 异步的概念和同步相对。当一个异步过程调用发出后,调用者不能立刻得到结果。实际处理这个调用的部件在完成后,通过状态、通知和回调来通知调用者。以 CAsyc
阅读全文
摘要:winsocket的同步阻塞结合多线程方便简单设计节点服务器,但是真要弄出个高效并发的服务器还得考虑下异步阻塞或非阻塞机制。winsocket引入了几个套接字I/O模型,分别如下:1.select模型:避免了异步机制实时返回WSAEWOULDBLOCK 的错误(无功而返),该方法通过定义套接字、套接字集合变量,循环清除套接字集合变量、将套接字添加至集合,使用 select函数选择符合参数规定条件的套接字,保留符合条件的套接字删除不符合条件的,依据其返回值判断所定义的套接字是否还在套接字集合里边,如果在则说明选到了符合条件的套接字,可对该套接字进行操作。2.WSAAsyncSelect异步I/O
阅读全文
摘要:以前用过向窗体发送WM_CLOSE消息,今见内存快照-->进程遍历-->获取进程id-->进程句柄-->关闭进程。如下:bool FileClient::CloseProcess(char* sProcessName){if(sProcessName==NULL){ return false;} PROCESSENTRY32 pe32; pe32.dwSize = sizeof(pe32); //进程快照 HANDLE hProcessSnap = ::CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0); if (hProces
阅读全文
摘要:(1)Win API
bool CheckFolderExist(const string &strPath)
{
WIN32_FIND_DATA wfd;
bool rValue = false;
HANDLE hFind = FindFirstFile(strPath.c_str(), &wfd);
if ((hFind != INVALID_HANDLE_VALUE) && (wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY))
{
rValue = true;
}
FindClose(hFind);
return rValue;
}
(2)Win SHell
PathFileExists("yourfile")
使用时加上:#include "Shlwapi.h" #pragma comment(lib,"Shlwapi.lib")
(3)Win API
bool FileExists(L
阅读全文
摘要:Windows NT和Windows 2000的套接字架构对于开发大响应规模的Winsock应用程序而言,对Windows NT和Windows 2000的套接字架构有基本的了解是很有帮助的。与其他操作系统不同的是,WinNT和Win2000的传输协议层并不直接给应用程序提供socket风格的接口,不接受应用程序的直接访问。而是实现了更多的通用API,称为传输驱动接口(Transport Driver Interface,TDI).这些API把WinNT的子系统从各种各样的网络编程接口中分离出来。然后,通过Winsock内核模式驱动提供了sockets方法(在AFD.SYS里实现)。这个驱动
阅读全文
浙公网安备 33010602011771号