µ¥»÷¡°È·¶¨¡±´´½¨ÐÂÏîÄ¿¡£
4. Èç¹û¡°½â¾ö·½°¸×ÊÔ´¹ÜÀíÆ÷¡±²»¿É¼û£¬Çëµ¥»÷¡°ÊÓͼ¡±²Ëµ¥Éϵġ°½â¾ö·½°¸×ÊÔ´¹ÜÀíÆ÷¡±¡£ 5. Ïò¸ÃÏîÄ¿Ìí¼ÓеÄÔ´Îļþ£º
? ?
ÔÚ½â¾ö·½°¸×ÊÔ´¹ÜÀíÆ÷ÖÐÓÒ»÷¡°Ô´Îļþ¡±Îļþ¼Ð£¬Ö¸Ïò¡°Ìí¼Ó¡±²¢µ¥»÷¡°Ð½¨Ïî...¡±¡£ µ¥»÷¡°C++ Îļþ(.cpp)¡±£¬¼üÈëÒ»¸öÎļþÃû£¬È»ºóµ¥»÷¡°Ìí¼Ó¡±¡£
¸Ã .cpp Îļþ¼´ÏÔʾÔÚ¡°½â¾ö·½°¸×ÊÔ´¹ÜÀíÆ÷¡±Öеġ°Ô´Îļþ¡±Îļþ¼ÐÖУ¬²¢ÇÒ£¬ÔÚ¼üÈëÒª°üº¬ÔÚ¸ÃÎļþÖеĴúÂëµÄλÖ㬳öÏÖÒ»¸öÑ¡Ïʽ´°¿Ú¡£
6. ÔÚ Visual Studio ÖУ¬ÔÚд´½¨µÄÑ¡ÏÖе¥»÷²¢¼üÈëÓÐЧµÄ Visual C++ ³ÌÐò£¬»òÕß
¸´ÖƲ¢Õ³ÌùʾÀý³ÌÐòÖ®Ò»¡£
ÀýÈ磬Äú¿ÉÒÔʹÓà How to: Write a Text File ʾÀý³ÌÐò£¨Î»ÓÚ¡°±à³ÌÖ¸ÄÏ¡±Öеġ°Îļþ´¦ÀíºÍ I/O¡±½Úµã£©¡£
Èç¹ûҪʹÓÃʾÀý³ÌÐò£¬Çë×¢ÒâÔÚ´´½¨ .NET ¶ÔÏóʱ£¬Äú¿ÉÒÔʹÓà gcnew¹Ø¼ü×Ö£¨¶ø·Ç new£©£¬ÇÒ gcnew ·µ»ØÒ»¸ö¾ä±ú (^) ¶ø²»ÊÇÖ¸Õë (*)£º
StreamWriter^ sw = gcnew StreamWriter(fileName);
ÓйØÐ Visual C++ Óï·¨µÄ¸ü¶àÐÅÏ¢£¬Çë²Î¼û ÔËÐÐʱƽ̨µÄ×é¼þÀ©Õ¹¡£ 7. ÔÚ¡°Éú³É¡±²Ëµ¥ÉÏ£¬µ¥»÷¡°Éú³É½â¾ö·½°¸¡±¡£
¡°Êä³ö¡±´°¿ÚÏÔʾÓйرàÒë¹ý³ÌµÄÐÅÏ¢£¬ÈçÉú³ÉÈÕÖ¾µÄλÖã¬ÒÔ¼°Ö¸Ê¾Éú³É״̬µÄÏûÏ¢¡£ Èç¹û½øÐÐÁ˸ü¸Ä£¬²¢ÔÚδִÐÐÉú³ÉµÄÇé¿öÏÂÔËÐиóÌÐò£¬Ôò¶Ô»°¿ò¿ÉÄÜָʾ¸ÃÏîÄ¿ÒѹýÆÚ¡£ Èç¹ûÒªÈà Visual Studio ʼÖÕʹÓÃÎļþµÄµ±Ç°°æ±¾£¬²¢ÇÒÔÚÿ´ÎÉú³ÉÓ¦ÓóÌÐòʱ²»·¢³öÌáʾ£¬ÇëÔÚµ¥»÷¡°È·¶¨¡±Ö®Ç°Ñ¡Öд˶Ի°¿òÉϵĸ´Ñ¡¿ò¡£ 8. ÔÚ¡°µ÷ÊÔ¡±²Ëµ¥ÉÏ£¬µ¥»÷¡°¿ªÊ¼Ö´ÐÐ(²»µ÷ÊÔ)¡±¡£
9. Èç¹ûÄúʹÓõÄÊÇʾÀý³ÌÐò£¬ÔòÔÚÔËÐгÌÐòʱ½«ÏÔʾһ¸öÃüÁî´°¿Ú£¬Ö¸Ê¾ÒÑ´´½¨Á˸ÃÎı¾
Îļþ¡£ °´ÈÎÒâ¼ü£¬¹Ø±Õ¸ÃÃüÁî´°¿Ú¡£
textfile.txt Îı¾ÎļþÏÖÔÚλÓÚÄúµÄÏîĿĿ¼ÖС£ Äú¿ÉÒÔʹÓüÇʱ¾´ò¿ª´ËÎļþ¡£
Note Ñ¡Ôñ¿Õ CLR ÏîĿģ°å»á×Ô¶¯ÉèÖà /clr ±àÒëÆ÷Ñ¡Ïî¡£ ÈôÒªÑéÖ¤ÕâÒ»µã£¬ÇëÔÚ¡°½â¾ö·½°¸×ÊÔ´¹ÜÀíÆ÷¡±ÖÐÓÒ»÷¸ÃÏîÄ¿£¬ÔÙµ¥»÷¡°ÊôÐÔ¡±£¬È»ºóÑ¡ÖС°ÅäÖÃÊôÐÔ¡±µÄ¡°³£¹æ¡±½ÚµãÖеġ°¹«¹²ÓïÑÔÔËÐÐʱ֧³Ö¡±Ñ¡Ïî¡£ ÑÝÁ·£º±àÒë C ³ÌÐò
Visual Studio °üÀ¨¿ÉÓÃÀ´´´½¨´Ó»ù±¾»ù±¾µÄ C ³ÌÐòµ½ windows API Ó¦ÓóÌÐòµÄ c. ±àÒëÆ÷¡£ ´ËÑÝÁ·ÑÝʾÈçºÎʹÓÃÎı¾±à¼Æ÷´´½¨Ò»¸ö»ù±¾µÄ C ³ÌÐò£¬È»ºóÔÚÃüÁîÐÐÉÏ¶ÔÆä½øÐбàÒë¡£ Äú¿ÉÒÔʹÓÃ×Ô¼ºµÄ C ³ÌÐò£¬¶ø²»ÊǼüÈë´ËÑÝÁ·ÖÐËùʾµÄʾÀý³ÌÐò¡£ Ò²¿ÉÒÔʹÓðïÖúÖ÷ÌâÖаüº¬µÄÈκΠC ´úÂëʾÀý³ÌÐò¡£
ĬÈÏÇé¿öÏ£¬Visual C++ ±àÒëÆ÷½«ÒÔ .c ½áβµÄËùÓÐÎļþÊÓΪ C Ô´´úÂ룬½«ÒÔ .cpp ½áβµÄËùÓÐÎļþÊÓΪ C++ Ô´´úÂë¡£ ÈôÒªÇ¿ÖÆ±àÒëÆ÷½«ËùÓÐÎļþÊÓΪ C£¨¶ø²»¹ÜÎļþÀ©Õ¹ÃûÈçºÎ£©£¬ÇëʹÓà /Tc ±àÒëÆ÷Ñ¡Ïî¡£
ϵͳ±Ø±¸
Äú±ØÐëÁ˽â C++ ÓïÑԵĻù´¡ÖªÊ¶¡£
´´½¨ C Ô´Îļþ²¢ÔÚÃüÁîÐÐÉÏ¶ÔÆä½øÐбàÒë
1. µ¥»÷¡°¿ªÊ¼¡±£¬Ö¸Ïò¡°ËùÓгÌÐò¡±¡¢¡°Microsoft Visual Studio 2010¡±ºÍ¡°Visual Studio ¹¤
¾ß¡±£¬È»ºóµ¥»÷¡°Visual Studio 2010 ÃüÁîÌáʾ¡±¡£
¸ù¾Ý¼ÆËã»úÉ쵀 Windows °æ±¾ºÍϵͳ°²È«ÅäÖ㬿ÉÄܱØÐëÓÒ»÷¡°Visual Studio 2008 ÃüÁîÌáʾ¡±£¬È»ºóµ¥»÷¡°ÒÔ¹ÜÀíÔ±Éí·ÝÔËÐС±£¬²ÅÄܳɹ¦ÔËÐа´ÏÂÁв½Öè´´½¨µÄÓ¦ÓóÌÐò¡£
Note ¡°Visual Studio 2010 ÃüÁîÌáʾ¡±»á×Ô¶¯ÉèÖà C ±àÒëÆ÷ºÍËùÐèµÄÈκοâµÄÕýȷ·¾¶¡£ ӦʹÓÃËü¶ø²»ÊÇʹÓÃÆÕͨµÄ¡°ÃüÁîÌáʾ·û¡±´°¿Ú¡£ Óйظü¶àÐÅÏ¢£¬Çë²Î¼ûΪÃüÁîÐÐÉú³ÉÉèÖ÷¾¶ºÍ»·¾³±äÁ¿¡£ 2. ÔÚÃüÁîÌáʾ·ûÏ£¬¼üÈë notepad simple.c£¬²¢°´ Enter¡£
ÔÚϵͳÌáʾÊÇ·ñ´´½¨Îļþʱ£¬µ¥»÷¡°ÊÇ¡±¡£ 3. ÔÚ¼Çʱ¾ÖУ¬¼üÈëÏÂÁи÷ÐС£
4. 5. 6. 7. 8. 9. 10. #include
int main() {
printf(\ return 0; }
11. ÔÚ¡°Îļþ¡±²Ëµ¥ÉÏ£¬µ¥»÷¡°±£´æ¡±£¬ÒÔ´´½¨ C Ô´Îļþ¡£
12. ¹Ø±Õ¼Çʱ¾¡£
13. ÔÚÃüÁîÌáʾ·ûÏ£¬¼üÈë cl simple.c£¬²¢°´ Enter¡£
cl.exe ±àÒëÆ÷½«Éú³ÉÒ»¸ö¿ÉÖ´ÐгÌÐò Simple.exe¡£
Äú¿ÉÒÔÔÚ±àÒëÆ÷ÏÔʾµÄ¶àÐÐÊä³öÐÅÏ¢Öп´µ½¿ÉÖ´ÐгÌÐòµÄÃû³Æ¡£
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 16.00 for 80x86
Copyright (C) Microsoft Corporation. All rights reserved.
simple.c
Microsoft (R) Incremental Linker Version 10.00
Copyright (C) Microsoft Corporation. All rights reserved.
/out:simple.exe simple.obj
14. ÈôÒª²é¿´ \\simple\\ Ŀ¼ÖеÄËùÓÐÎļþµÄÁÐ±í£¬Çë¼üÈë dir simple.* ²¢°´ Enter¡£
.obj ÎļþÊÇÒ»¸öÖмä¸ñʽÎļþ£¬¿ÉÒÔ°²È«µØºöÂÔËü¡£ 15. ÈôÒªÔËÐÐ Simple.exe£¬Çë¼üÈë simple ²¢°´ Enter¡£
¸Ã³ÌÐòÏÔʾÒÔÏÂÎı¾²¢Í˳ö£º
This is a native C program.
16. ÈôÒª¹Ø±ÕÃüÁîÌáʾ·û´°¿Ú£¬Çë¼üÈë exit ²¢°´ Enter¡£
´´½¨ Windows Ó¦ÓóÌÐò (C++)
ÏÖÔÚÎÒÃÇѧϰÁË Visual Studio IDE ºÍÃüÁîÐÐÓ¦ÓóÌÐò£¬ÏÂÃæ½«Ñ§Ï°ÈçºÎ´´½¨ Windows Ó¦ÓóÌÐò¡£ ʹÓà Visual C++£¬¿ÉÒÔͨ¹ýʹÓöàÖÖ²»Í¬µÄ¼¼ÊõÀ´´´½¨ Windows Ó¦ÓóÌÐò£¬Èç Windows API£¨Ò²³ÆÎª Win32 API£©ºÍ .NET Framework¡£
ÔÚ±¾½ÚÖУ¬ÎÒÃǽ«Í¨¹ýʹÓà Win32 API ºÍ .NET Framework ´´½¨Á½¸ö¼òµ¥µÄ Windows Ó¦ÓóÌÐò¡£ ÎÒÃÇ»¹½«Í¨¹ýʹÓà .NET Framework ´´½¨ Windows ´°Ìå¿Ø¼þ£¬×îºó½«Í¨¹ýʹÓà DirectX ´´½¨Ò»¸ö¼òµ¥µÄÓÎÏ·¡£
ϵͳ±Ø±¸
ÕâЩÖ÷Ìâ¼Ù¶¨Äú¾ß±¸ C++ ÓïÑԵĻù´¡ÖªÊ¶¡£
±¾½ÚÄÚÈÝ
? ? ? ?
´´½¨»ùÓÚ Win32 µÄÓ¦ÓóÌÐò (C++)
ͨ¹ýʹÓà .NET Framework ´´½¨ Windows ´°ÌåÓ¦ÓóÌÐò (C++) ´´½¨ Windows ´°Ìå¿Ø¼þ (C++) ´´½¨µÄÒ»¸öÓÎÏ·×ÊԴʹÓà DirectX (c++)
´´½¨»ùÓÚ Win32 µÄÓ¦ÓóÌÐò (C++)
±¾ÑÝÁ·ÑÝʾÈçºÎ´´½¨»ùÓÚ Win32 µÄ¼òµ¥»ù±¾Ó¦ÓóÌÐò£¬¸ÃÓ¦ÓóÌÐòÔÚ´°¿ÚÖÐÏÔʾ¡°Hello, World!¡±¡£ Äú¿ÉÒÔʹÓÃÔÚ´ËÑÝÁ·Öпª·¢µÄ´úÂë×÷Ϊ´´½¨ÆäËû»ùÓÚ Win32 µÄÓ¦ÓóÌÐòµÄģʽ¡£ Win32 API£¨Ò²³ÆÎª Windows API£©ÊÇÓÃÓÚ´´½¨ Windows Ó¦ÓóÌÐòµÄ»ùÓÚ C µÄ¿ò¼Ü¡£ ÓÐ¹Ø Win32 API µÄ¸ü¶àÐÅÏ¢£¬Çë²Î¼û Windows API¡£
ÖØÒªÊÂÏî ΪÁË¿ÉÒÔ¸ü¼ÓÇå³þµØËµÃ÷±¾ÎĵµÄÚ¸÷²½ÖèÖеÄÌØ¶¨´úÂë¶Î£¬ÎÒÃÇ¿ÉÄÜ»áÊ¡ÂÔÒ»¸öÓÐЧӦÓóÌÐòËù±ØÐèµÄijЩ´úÂëÓï¾ä£¬ÀýÈç include Ö¸ÁîºÍÈ«¾Ö±äÁ¿ÉùÃ÷¡£ ±¾ÎĵµÄ©Î²µÄʾÀýÒ»½ÚÏÔʾÁËÍêÕû´úÂë¡£ ϵͳ±Ø±¸
ÈôÒªÍê³É±¾ÑÝÁ·£¬Äú±ØÐëÁ˽â C++ ÓïÑԵĻù´¡ÖªÊ¶¡£
ÓйØÊÓÆµÑÝʾ£¬Çë²Î¼û Visual Studio 2008 ÎĵµÖÐµÄ Video How to: Creating Win32 Applications (C++)£¨ÊÓÆµ°ïÖú£º´´½¨ Win32 Ó¦ÓóÌÐò (C++)£©¡£
´´½¨»ùÓÚ Win32 µÄÏîÄ¿
1. ÔÚ¡°Îļþ¡±²Ëµ¥ÉÏ£¬µ¥»÷¡°Ð½¨¡±£¬È»ºóµ¥»÷¡°ÏîÄ¿¡±¡£
2. ÔÚ¡°Ð½¨ÏîÄ¿¡±¶Ô»°¿òµÄ×ó²à´°¸ñÖУ¬µ¥»÷¡°ÒѰ²×°µÄÄ£°å¡±£¬µ¥»÷¡°Visual C++¡±£¬È»ºóÑ¡
Ôñ¡°Win32¡±¡£ ÔÚÖм䴰¸ñÖУ¬Ñ¡Ôñ¡°Win32 ÏîÄ¿¡±¡£
ÔÚ¡°Ãû³Æ¡±¿òÖУ¬¼üÈëÏîÄ¿Ãû³Æ£¬ÀýÈç win32app¡£ µ¥»÷¡°È·¶¨¡±¡£ 3. ÔÚ¡°Win32 Ó¦ÓóÌÐòÏòµ¼¡±µÄ¡°»¶Ó¡±Ò³ÉÏ£¬µ¥»÷¡°ÏÂÒ»²½¡±¡£
4. ÔÚ¡°Ó¦ÓóÌÐòÉèÖá±Ò³ÉϵÄÔÚ¡°Ó¦ÓóÌÐòÀàÐÍ¡±Ï£¬Ñ¡Ôñ¡°Windows Ó¦ÓóÌÐò¡±¡£ ÔÚ¡°¸½¼ÓÑ¡
ÏÏ£¬Ñ¡Ôñ¡°¿ÕÏîÄ¿¡±¡£ µ¥»÷¡°Íê³É¡±´´½¨ÏîÄ¿¡£
5. ÔÚ¡°½â¾ö·½°¸×ÊÔ´¹ÜÀíÆ÷¡±ÖУ¬ÓÒ»÷ Win32app ÏîÄ¿£¬µ¥»÷¡°Ìí¼Ó¡±£¬È»ºóµ¥»÷¡°Ð½¨Ï¡£ ÔÚ
¡°Ìí¼ÓÐÂÏ¶Ô»°¿òÖÐÑ¡Ôñ¡°C++ Îļþ(.cpp)¡±¡£ ÔÚ¡°Ãû³Æ¡±¿òÖУ¬¼üÈëÎļþÃû³Æ£¬ÀýÈç GT_HelloWorldWin32.cpp¡£ µ¥»÷¡°Ìí¼Ó¡±¡£
Æô¶¯»ùÓÚ Win32 µÄÓ¦ÓóÌÐò
1. ¾ÍÏñÿ¸ö C Ó¦ÓóÌÐòºÍ C++ Ó¦ÓóÌÐò¶¼ÒÔ main º¯Êý×÷ΪÆðµãÄÇÑù£¬Ã¿¸ö»ùÓÚ
Win32 µÄÓ¦ÓóÌÐòͬÑù±ØÐëÒªÓÐ WinMain º¯Êý¡£ WinMain ¾ßÓÐÒÔÏÂÓï·¨¡£
2. 3. 4. 5. int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow);
Óйش˺¯ÊýµÄ²ÎÊýºÍ·µ»ØÖµµÄÐÅÏ¢£¬Çë²Î¼û WinMain º¯Êý¡£
6. ÓÉÓÚÓ¦ÓóÌÐò´úÂë±ØÐëʹÓÃÏÖÓж¨Ò壬Òò´ËÓ¦½« include Óï¾äÌí¼Óµ½ÎļþÖС£
7. 8. 9. 10. #include
11. ³ý WinMain º¯ÊýÍ⣬ÿ¸ö»ùÓÚ Win32 µÄÓ¦ÓóÌÐò»¹±ØÐë¾ßÓÐÒ»¸ö´°¿Ú¹ý³Ìº¯Êý¡£ ´Ë
º¯Êýͨ³£ÃûΪWndProc¡£ WndProc ¾ßÓÐÒÔÏÂÓï·¨¡£
12. LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
´Ëº¯Êý´¦ÀíÓ¦ÓóÌÐò´Ó²Ù×÷ϵͳ½ÓÊÕµÄÐí¶àÏûÏ¢¡£ ÀýÈ磬ÔÚ¾ßÓжԻ°¿ò£¨¸Ã¶Ô»°¿òÖÐÓÐÒ»¸ö¡°È·¶¨¡±°´Å¥£©µÄÓ¦ÓóÌÐòÖУ¬Èç¹ûÓû§µ¥»÷¸Ã°´Å¥£¬²Ù×÷ϵͳ¾Í»áÏò¸ÃÓ¦ÓóÌÐò·¢ËÍÒ»ÌõÏûÏ¢£¬¸æÖªÒѵ¥»÷¸Ã°´Å¥¡£ WndProc ¸ºÔðÏìÓ¦¸Ãʼþ¡£ ÔÚ´ËʾÀýÖУ¬ÏàÓ¦µÄÏìÓ¦¿ÉÄÜÊǹرոöԻ°¿ò¡£
Óйظü¶àÐÅÏ¢£¬Çë²Î¼û´°¿Ú¹ý³Ì¡£
Ïò WinMain º¯ÊýÌí¼Ó¹¦ÄÜ
1. ÔÚ WinMain º¯ÊýÖУ¬´´½¨ WNDCLASSEX ÀàÐ͵Ĵ°¿ÚÀà½á¹¹¡£ ´Ë½á¹¹°üº¬Óйظô°¿Ú
µÄÐÅÏ¢£¬ÀýÈ磬ӦÓóÌÐòͼ±ê¡¢´°¿ÚµÄ±³¾°É«¡¢ÒªÔÚ±êÌâÀ¸ÖÐÏÔʾµÄÃû³Æ¡¢´°¿Ú¹ý³Ìº¯ÊýµÄÃû³ÆµÈµÈ¡£ ÏÂÃæµÄʾÀýÑÝʾһ¸öµäÐÍWNDCLASSEX ½á¹¹¡£
2. 3. 4. 5. 6. 7. 8. 9.
WNDCLASSEX wcex;
wcex.cbSize = sizeof(WNDCLASSEX);
wcex.style = CS_HREDRAW | CS_VREDRAW; wcex.lpfnWndProc = WndProc; wcex.cbClsExtra = 0; wcex.cbWndExtra = 0;
wcex.hInstance = hInstance;
Ïà¹ØÍÆ¼ö£º