C/C++
dyc13
这个作者很懒,什么都没留下…
展开
-
Win Api 做个钩子
/******************************************************************************Module: DisableLowLevelKeys.cppNotices: Written 2000 Jeffrey Richter****************************************************原创 2006-09-01 17:33:00 · 661 阅读 · 0 评论 -
WIN32 API之硬件控制
一、Beep The Beep function generates(产生) simple tones(音调) on the speaker. The function is synchronous(同步的); it does not return control to its caller until原创 2006-09-01 17:46:00 · 1343 阅读 · 0 评论 -
可以通过BIOS控制鼠标吗?
可以。你可以通过中断33H调用鼠标服务程序。表14.13列出了中断33H中最常用的鼠标服务程序。 表14.13鼠标中断服务-------------------------------------------------------------------------- 功能号原创 2006-09-01 17:41:00 · 1484 阅读 · 0 评论 -
如何编写DLL文件
——动态链接库(dll)是包含共享函数库的二进制文件,可以被多个应用程序同时使用。建立应用程序的可执行文件时,不必将DLL连接到应用程序中,而是在运行时动态装载DLL,装载时DLL被映射到调用进程的地址空间中。通常我们在调用DLL时所需的DLL文件必须位于以下三个目录之一: ——(1)Windows的系统目录:/windows/system; ——(2)DOS中path所指出的任何目录; ——(3原创 2006-09-01 17:48:00 · 18603 阅读 · 2 评论 -
什么是标准预定义宏?
ANSIC标准定义了以下6种可供C语言使用的预定义宏:------------------------------------------------------------------------- 宏 名 作 用-------------------------------------------------------------原创 2006-09-01 17:42:00 · 921 阅读 · 0 评论 -
怎样判断一个程序是用C编译程序还是用C++编译程序编译的?
ANSIC标准中有一个__cplusplus标识符,当你编译C++程序时,这个标识符就会被定义;当你编译C程序时,这个标识符不会被定义。这样,你就可以检查程序是不是用C++编译程序编译的,请看下例: #ifdef __cplusplus /* Is __cplusplus deftned? */ #define USING_C FALSE /* Yes,we are原创 2006-09-01 17:42:00 · 2056 阅读 · 1 评论 -
指针与数组的对比
、数组的地址与容量在生命期内保持不变,只有内容可以改变;指针可以随时指向任意类型的内存块. 2、不能对数组名进行直接复制与比较。如不能用语句b=a,把数组a的内容复制给数组b.否则产生编译错误. 应该用strcpy,同理比较b和a的内容是否相同,不能用if(b==a)来判断,应该用标准库函数strcmp进行 比较. 语句p = a 并不能把原创 2006-09-01 17:40:00 · 766 阅读 · 0 评论 -
VC知识库之应用控制
一、如何在程序中获得其他程序的图标?void CHsView::OnDraw(CDC* pDC){ HICON hIcon = ::ExtractIcon(AfxGetInstanceHandle(),_T("NotePad.exe"),0); if(hIcon && hIcon !=(HICON) -1) { pDC->DrawIcon(10,10,hIcon); } CHsDoc*原创 2006-09-01 17:47:00 · 1114 阅读 · 0 评论 -
你能指定在编译时包含哪一个头文件吗?
你可以通过#if,#else和#endif这组指令实现这一点。例如,头文件alloc.h和malloc.h的作用和内容基本相同,但前者供BorlandC++编译程序使用,后者供MicrosoftC++编译程序使用。如果你在编写一个既支持BorlandC++又支持MicrosoftC++的程序,你就应该指定在编译时是包含alloc.h头文件还是包含malloc.h头文件,请看下例: #ifde原创 2006-09-01 17:43:00 · 1234 阅读 · 1 评论 -
CString,string,char*的综合比较(一)
(一) 概述 string和CString均是字符串模板类,string为标准模板类(STL)定义的字符串类,已经纳入C++标准之中; CString(typedef CStringT > CString)为Visual C++中最常用的字符串类,继承自CSimpleStringT类,主要应用在MFC和ATL编程中,主要数据类型有char(应用于ANSI),wchar_t(unicode),TCH原创 2006-09-01 17:39:00 · 866 阅读 · 0 评论 -
MSDN之GDI
WinGdi.h Windef.hObject: DC、Bitmap、Brush、Clipping、Colors、Font、Pen 一、DC HDC hdc; GetClientRect(hWnd,&rc); // RECT rc; hdc = BeginPaint(hWnd,&ps); // POINTSTRUCT ps; PEN hP原创 2006-09-01 17:46:00 · 1042 阅读 · 0 评论 -
RECT与LPRECT
RECT、LPRECT定义如下:typedef struct tagRECT{ LONG left; LONG top; LONG right; LONG bottom;} RECT, *PRECT, NEAR *NPRECT, FAR *LPRECT;在使用的过程中,如果是LPRECT型作输入参数的话。一般来说可能会这样做,如下:原创 2006-09-01 17:45:00 · 20264 阅读 · 6 评论 -
#include 和#include“file”有什么不同?
在C程序中包含文件有以下两种方法: (1)用符号“和“>”将要包含的文件的文件名括起来。这种方法指示预处理程序到预定义的缺省路径下寻找文件。预定义的缺省路径通常是在INCLUDE环境变量中指定的,请看下例: INCLUDE=C:/COMPILER/INCLUDE;S:/SOURCE/HEADERS; 对于上述INCLUDE环境变量,如果用#include语句包含文件,编原创 2006-09-01 17:44:00 · 1243 阅读 · 0 评论 -
CString、char*、string、_bstr_t、CTime、DateTime相互转换
#include #include using namespace std;void main(void) { CString strCString="ABC"; char strchar[256],*pstr; pstr=(LPSTR)(LPCTSTR)strCString; //CString---->char* st原创 2006-09-01 17:38:00 · 4462 阅读 · 1 评论 -
C++中extern “C”含义深层探索
1.引言 C++语言的创建初衷是“a better C”,但是这并不意味着C++中类似C语言的全局变量和函数所采用的编译和连接方式与C语言完全相同。作为一种欲与C兼容的语言,C++保留了一部分过程式语言的特点(被世人称为“不彻底地面向对象”),因而它可以定义不属于任何类的全局变量和函数。但是,C++毕竟是一种面向对象的程序设计语言,为了支持函数的重载,C++对全局函数的处理方式与C有明显的不同原创 2006-09-01 17:37:00 · 706 阅读 · 0 评论 -
C标准库函数(a)
函数名: abort 功 能: 异常终止一个进程 用 法: void abort(void); 程序例: #include #include int main(void) { printf("Calling abort()/n"); abort(); return 0; /* This is never reached */ } 函数名: abs 功 能:原创 2006-09-01 17:36:00 · 1296 阅读 · 1 评论 -
文件读写(c)
//: READSOURCE.C -- ReadSource file#include #include #include #include #include #define SZ 100int main(void){ FILE *p; FILE *np; // New file point char *str; // temp string int Rowjsq; // the count原创 2006-09-01 17:35:00 · 704 阅读 · 0 评论 -
C的预处理指令之#Pragma
在所有的预处理指令中,#Pragma 指令可能是最复杂的了,它的作用是设定编译器的状态或者是指示编译器完成一些特定的动作。#pragma指令对每个编译器给出了一个方法,在保持与C和C++语言完全兼容的情况下,给出主机或操作系统专有的特征。依据定义,编译指示是机器或操作系统专有的,且对于每个编译器都是不同的。其格式一般为: #Pragma Para 其中Para 为参数,下面来看一些常用原创 2006-09-01 17:34:00 · 840 阅读 · 0 评论 -
C++学习体会20060816
1. 传引用比传值要快。因为传值时需要构造和析构形参,而传引用时就不存在这种开销。2原创 2006-08-16 10:48:00 · 608 阅读 · 0 评论