windows编程
若水三千你是一千
这个作者很懒,什么都没留下…
展开
-
GDI 绘图之 BitBlt 用法
设备上下文绘图有很多种方法。例如通过创建位图画刷,利用其填充一个区域来实现图像的绘制。此外,还可以使用CDC类的位图函数来输出位图到设备上下文中。BitBlt 用于从原设备中复制位图到目标设备,语法格式如下:BOOLBitBlt(int x,int y,int nWidth,int nHeight,CDC*pSrcDC,int xSrc,int ySrc,DWORDdwRop);x:目转载 2012-12-05 16:57:57 · 3410 阅读 · 0 评论 -
C 语言四大存储类型。。。
1。 extern, 从其英文意思外部的就能看出,这个表示引用一个外部变量。。 C语言程序编译时是以每个.c 文件为单位的,最后再把它们链接在一起,所以每个文件中的全局变量对于其他文件是可见的,所以可以在一个文件中引用其他文件中的变量和函数。 extern 关键字就是用来表示引用别的单元的变量。。。 比如。。file1.c 中原创 2013-02-22 18:45:43 · 2905 阅读 · 0 评论 -
C 语言main 函数终极探秘
所有的C程序必须定义一个称之为main的外部函数,这个函数是程序的入口,也就是当程序启动时所执行的第一个函数,当这个函数返回时,程序也将终止,并且这个函数的返回值被看成是程序成功或失败的标志,如果在到达main函数体的末尾时没有遇到返回语句 ,它就被看看成是执行了return 0; 语句。 C的设计原则是把函数作为程序的构成模块。main()函数称之为主函数,一个C程序总是从ma原创 2013-02-13 11:56:31 · 9287 阅读 · 1 评论 -
Vim 简明教程
vim的学习曲线相当的大(参看各种文本编辑器的学习曲线),所以,如果你一开始看到的是一大堆VIM的命令分类,你一定会对这个编辑器失去兴趣的。下面的文章翻译自《Learn Vim Progressively》,我觉得这是给新手最好的VIM的升级教程了,没有列举所有的命令,只是列举了那些最有用的命令。非常不错。——————————正文开始——————————你想以最快的速度学习人类转载 2013-02-26 11:35:34 · 983 阅读 · 0 评论 -
WinExec、ShellExecute和CreateProcess及返回值判断方式
有三个API函数可以运行可执行文件WinExec、ShellExecute和CreateProcess。CreateProcess因为使用复杂,比较少用。 WinExec主要运行EXE文件。 ⑴ 函数原型: UINT Win Exec(LPCSTR lpCmdLine, UINT uCmdShow); ⑵ 参数: lpCmdLine:指向一个空结束的字符串,串中转载 2013-05-27 19:29:47 · 2482 阅读 · 0 评论 -
VC++多线程函数调用
在VC++中创建线程函数可以用API 或者MFC封装的多线程函数。。 函数原型MSDN中CreateThread原型:HANDLE CreateThread( LPSECURITY_ATTRIBUTES lpThreadAttributes, // SD SIZE_T dwStackSize, // initial stack size LPTH原创 2013-05-29 13:59:29 · 5690 阅读 · 0 评论 -
在VC下执行DOS命令
a. system("md c://12"); 1) 调用命令时会出现一个dos 窗口一闪而过,影响视觉效果。 2 )无法将命令的执行结果反馈给用户。b. WinExec("Cmd.exe /C md c://12", SW_HIDE); WinExec 的作用是运行指定的程序,其中第一个参数是程序的路径及参数, 第二个参数转载 2013-05-29 13:38:47 · 1695 阅读 · 0 评论 -
MFC 多线程参数传递
MFC 多线程 中 例如: 在 当前窗口按钮消息响应函数中创建一个 线程,在线程中关闭窗口 typedef struct H{ HWND hwnd;} *pHwnd; 在 void ButtonClick( ){ pHwnd p = (pHwnd)malloc(sizeof(struct H)); p->h原创 2013-11-12 22:52:57 · 4283 阅读 · 1 评论 -
使用HANDLE_MSG宏简化Win32应用的开发
Win32应用中的回调函数WndProc用于接收Windows向应用程序直接发送的消息,以及响应消息。大多情况下,我们这样编写代码:[cpp] view plaincopyLRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM转载 2013-12-10 11:07:16 · 1249 阅读 · 0 评论 -
MASM32的使用
最近在学习SEH的东西,所以需要用到汇编,我下载了masm32.解压后是个安装文件,直接安装即可,安装成功后运行qeditor,进入MASM的集成开发环境。1.创建新文件:File->New,编辑代码,保存成***.asm的文件即可。2.编译源文件:Project->Assemble Asm File,汇编结束后会出现一个txt的结果文档,如果有错,可以根据相应的结果进行调试然后在转载 2013-03-06 09:13:00 · 2254 阅读 · 0 评论 -
stdafx.h 头文件概述
stdafx,的英文全称为:Standard Application Framework Extensions所谓头文件预编译,就是把一个工程(Project)中使用的一些MFC标准头文件(如Windows.H、Afxwin.H)预先编译,以后该工程编译时,不再编译这部分头文件,仅仅使用预编译的结果。这样可以加快编译速度,节省时间。预编译头文件通过编译stdafx.cpp生成,以工原创 2013-02-11 19:00:30 · 1489 阅读 · 0 评论 -
C/C++程序编译运行生成过程分析
C/C++程序编译步骤 如何生成可执行文件 **************************************************************************篇一****************************************************************************************转载 2013-02-13 10:23:29 · 5999 阅读 · 0 评论 -
mcisendstring()的用法
做个mp3播放器,用realplay和WMP做出来的程序内存占用太大。如果你仅仅是播放MP3,建议使用API函数mciSendString,我把该函数的详细资料罗列如下供你参考。Option ExplicitPrivate Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVal lpstr转载 2012-12-06 23:09:24 · 6432 阅读 · 7 评论 -
COM编程基础
转自:http://www.yesky.com/20020715/1620482_1.shtml(作为一个初学者,觉得本文挺好,推荐给大家)这篇文章是给初学者看的,尽量写得比较通俗易懂,并且尽量避免编程细节。完全是根据我自己的学习体会写的,其中若有技术上的错误之处,请大家多多指正。 一、为什么要用COM 软件工程发展到今天,从一开始的结构化编程,到面向对象编程,再到现在转载 2012-12-11 11:27:54 · 923 阅读 · 0 评论 -
CreateProcess 启动其他程序
【转】VC中如何启动其它程序,并且获得启动程序的PID 创建进程CreateProcess函数这样就可以执行c:\test.exe如果你要的PID是进程ID那么这个piProcInfoGPS.dwProcessId就是PID。当一个线程调用CreateProcess时,系统就会创建一个进程内核对象,其初始使用计数是1。 该进程内核对象不是进程本身,而是操作系统管理转载 2013-01-01 21:58:10 · 4298 阅读 · 0 评论 -
C运行时库
1)运行时库就是 C run-time library,是 C 而非 C++ 语言世界的概念:取这个名字就是因为你的 C 程序运行时需要这些库中的函数.2)C 语言是所谓的“小内核”语言,就其语言本身来说很小(不多的关键字,程序流程控制,数据类型等);所以,C 语言内核开发出来之后,Dennis Ritchie 和 Brian Kernighan 就用 C 本身重写了 90% 以上的 UNIX转载 2013-02-11 17:58:52 · 633 阅读 · 0 评论 -
C语言内存管理分析
欢迎进入内存这片雷区。伟大的Bill Gates 曾经失言:640K ought to be enough for everybody— Bill Gates 1981程序员们经常编写内存管理程序,往往提心吊胆。如果不想触雷,唯一的解决办法就是发现所有潜伏的地雷并且排除它们,躲是躲不了的。本章的内容比一般教科书的要深入得多,读者需细心阅读,做到真正地通晓内存管理。7转载 2013-02-11 19:33:34 · 938 阅读 · 0 评论 -
C99概述
C99是什么C99是标准ISO/IEC 9899:1999的简称。c99是在c89的基础上发展起来的,增加了基本数据类型,关键字和一些系统函数等。其实在初学阶段C89(ANSI C)和C99的区别是不易察觉的,所以不必太在意这个。C99有一部分是对于大字符集的优化(很多资料上写的是ANSI标准化),还加入了一些数据库函数,是C89之后的标准,我们用的C是C89标准的,C转载 2013-02-11 16:37:39 · 9153 阅读 · 0 评论 -
VC++中的C运行时库浅析
1.概论 运行时库是程序在运行时所需要的库文件,通常运行时库是以LIB或DLL形式提供的。C运行时库诞生于20世纪70年代,当时的程序世界还很单纯,应用程序都是单线程的,多任务或多线程机制在此时还属于新观念。所以这个时期的C运行时库都是单线程的。 随着操作系统多线程技术的发展,最初的C运行时库无法满足程序的需求,出现了严重的问题。C运行时库使用了多个全局变量(例如errno)和转载 2013-02-13 10:13:03 · 2353 阅读 · 0 评论 -
优秀程序员不得不知道的20个位运算技巧
【转载】一提起位运算,人们往往想到它的高效性,无论是嵌入式编程还是优化系统的核心代码,适当的运用位运算总是一种迷人的手段,或者当您求职的时候,在代码中写入适当的位运算也会让您的程序增加一丝亮点,最初当我读《编程之美》求“1的数目”时,我才开始觉得位运算是如此之美,后来读到 《Hacker's Delight》,感慨到Henry S.Warren把位运算运用的如此神出鬼没,很多程序都十分精妙,我转载 2013-02-10 23:21:51 · 2613 阅读 · 0 评论 -
VC++修改DNS
做了一个修改DNS的工具 ,主要是用ShellExecute()调用Dos命令。下面列出主要的部分,我把它放在了一个线程里。 WORD WINAPI CDNSDlg::ThreadFun(LPVOID lpParam){ CString temp;char err[1024]={0};FILE *fp;///////////////////fp原创 2013-05-29 14:04:42 · 4040 阅读 · 0 评论