1.Lccwin32 C CompilerçLccwin32 C Compiler使ç¨ä»ç»
2.Scintilla功能
3.WinASM studio实例图文教程
4.Windows系统中vscode的文编c/c++开发环境配置(一):下载和安装
Lccwin32 C CompilerçLccwin32 C Compiler使ç¨ä»ç»
声ææ¬æ没æä»»ä½æç¡®çæè å«èç表达说ææ¬ææ¯å®å ¨æ£ç¡®çï¼å¯¹äºåºç¨æ¬æå 容æ
产ççä»»ä½ç»æï¼æ¬äººæ¦ä¸è´è´£ã
请åè° æ¬æå¨è¯è¨åè¯æ³ççè¿ç¨ä¸çé误ï¼æ¬äººæçå¦æµ ï¼è¿æ¯ä¸å¯é¿å çã
ç®å½
* ç®ä»
* ç¼è¯å¨çå®è£
* Lcc-Winçä¸äºåºæ¬æ¦å¿µ
* å个å°ç¨åºï¼
* 使ç¨å·¥ç¨ç®¡ç
* 第ä¸ä¸ªWindowsç¨åº
* ç¨åºçæå导
* 使ç¨WeditReså建èµæº
* æ·»å å ¶å®ç±»åçèµæº
* 使ç¨éè§æ ¼èµæº
* éæåºåå¨æåº
ç®ä»
å ¶å®æè°çç®ä»è¿ä¸ªé¨åçå 容è¶ååå³äºä½è ãä½æ¯ææ读è¿çä¸äºæåé½æ¯ç±ä¸ä¸ªâç®ä»âå¼å§çï¼è¿é¨åçå 容é常é½æ¯å¨éå¤è¯»è ä¼å¨ä¸é¢çå°çä¸è¥¿ï¼ä½æ¯ä¹æçç®ä»åªæ¯ä½è çä¸äºæ³æ³ãä»ç»çæ³ä¸ä¸ï¼å ¶å®è¿ä¸ªä»ç»å¹¶ä¸æ¯ä¸ä»¶ç®åçäºæ ãé¦å ï¼å¦æä½ è¦æ¯å¼é¨è§å±±çç´å¥ä¸»é¢ï¼è¿æ¯ä¸ç¤¼è²çï¼èä¸åºäºwebçæåä¹ä¸åºè¯¥æè¶ å¤§ä¸ªçç®ä»ï¼ä¸åºè¯¥è®©è¯»è å¨è¿ä¸ªä¸è¥¿ä¸æµªè´¹æ¶é´åéé±ãçæ¥æçåºè¯ä¹å¤å¤çäºï¼è®©æ们åå ¥æ£é¢ãè¿ä¸ªæåæ¯å页çï¼å»ºè®®ä½ çæµè§å¨ä¸è½½å®æ¯åä¿åä¸ä»½æ·è´æ¥ç¦»çº¿é 读ã
ç¼è¯å¨çå®è£
ç¼è¯å¨çå®è£ ç®åæäºï¼åªè¦ææ¨ä¸è½½çæ件è¿è¡ä¸ä¸å°±OKäºï¼åºè¯¥ä¸ä¼éå°ä»ä¹
é®é¢ãä½æ¯æ³¨æå®è£ çæåè¦ç¼è¯åºæ件ï¼å¯è½è¦è±ç¹æ¶é´ï¼è¦è§ä½ çæºå¨é度èå®ã
Lcc-Winçä¸äºåºæ¬æ¦å¿µ
Lcc-Winç¼è¯ç³»ç»æ¯ç±å¤ä¸ªæ件ææçãå®ä»¬çå ±åçä»»å¡æ¯æææ¬æ ¼å¼çæºä»£
ç ç¼è¯ä½å¯ä»¥è¿è¡çäºè¿å¶æ ¼å¼ãä¼è¯ä¸ªéè¦çæ件åå«æ¯ç¼è¯å¨ï¼lcc.exeï¼åè¿æ¥
å¨ï¼lcclnk.exeï¼ã
ç¼è¯å¨æ¯ç¨æ¥æä½ ç¼åçææ¬ç¿»è¯æå¤çå¨å¯ä»¥æ§è¡çæ ¼å¼çç¨åºãè¿æ¥å¨ç¨æ¥è½¬
æ¢ç¼è¯å¨çæçäºè¿å¶æ件ï¼é常å«åç®æ æ件ï¼ï¼å¹¶æ·»å æä½ç³»ç»ç¨æ¥æç¨åºè°å ¥å
å并æ§è¡æéè¦çä¿¡æ¯å®å¯ä»¥æå¤ä¸ªç®æ æ件é¾æ¥ä¸ºä¸ä¸ªåç¬çç¨å¯æ§è¡ç¨åºï¼è¿æ ·å°±
å¯ä»¥ä½¿ä½ å¯ä»¥æä¸ä¸ªç¨åºç代ç ææ¡£åå²ä¸ºå 个模åï¼è¿ä¸ªè½åå¨ä½ å¼å大åç¨åºæ¶æ¯
å¾éè¦çã
è½ç¶è¿äºå¬èµ·æ¥å¥½åååçç®åï¼ä½æ¯å®é ä¸å¹¶ä¸æ¯è¿ä¸ªæ ·åçãç¼è¾å¨åé¾æ¥å¨
éè¦ä½ å¨å½ä»¤è¡æ¹å¼ä¸é®å ¥ä½ è¦å»ºç«çç¨åºçææä¿¡æ¯ï¼è¿å°éè¦ä½ è®°ä½å¤§éçå½ä»¤è¡
åæ°ååç§åæ ·çå¼å ³ï¼è¿æ¶å°±éè¦IDEââéæå¼åç¯å¢ï¼wedit.exeï¼æ¥æä¾æ¹ä¾¿äºã
IDEçåºæ¬åè½æ¯ç¼è¾ææ¬ï¼ä½ å¯ä»¥å¨è¿ä¸ªç¯å¢éç¼è¾ç¨åºçæºä»£ç ï¼ä½æ¯è¿è¿ä¸
æ¢æè¿ä¸ªåè½ãå®è¿ç»ä½ æä¾äºä¸ä¸ªè°ç¨ç¼è¯å¨åé¾æ¥å¨çç®åæ¹æ³ï¼è¿æ ·å¨ç¼è¯ç¨åº
çæ¶åä½ å°±ä¸ç¨å»è®°ä½é£ä¹å¤çå½ä»¤è¡åæ°äºã
ä½ å¯ä»¥ç®åçæWeditæ³è±¡æä½ çæ§å¶å°ï¼å¨è¿éä½ å¯ä»¥æ§å¶ææçæµç¨ã
好å§ï¼ç°å¨ä½ å¯ä»¥ç¨ä½ çé¼ æ ç¹ä¸ä¸Windowsçâå¼å§âæé®ï¼å¨ç¨åºé¡¹çåèåäº
寻æ¾âlcc-winâï¼å¥½äºåï¼ç°å¨ä½ å·²ç»åå¤å¥½å¨Lcc-Winä¸åä½ ç第ä¸ä¸ªç¨åºäºã
å个å°ç¨åºï¼
ä½ ç¥éåï¼èªä»ç¬¬ä¸ä¸ªCç¼è¯å¨äº§ç以æ¥ï¼ä¹è®¸å¯è½æ´æ©ä¸äºï¼ï¼æä¸ä¸ªæ¯ä¾å°±æ¯
为è¿ä¸ªç¼è¯å¨åç第ä¸ä¸ªç¨åºæ¯âHello Worldâï¼æ为ææ¥æçææç¼è¯å¨é½åè¿ï¼
ç°å¨æ们就æ¥åä¸ä¸ªã
第ä¸æ¥æ¯å建æºç æ件ãå¨âFileâèåä¸éæ©ânewâ项ï¼ç¶åå¨åºç°ç对è¯æ¡
ä¸è¾å ¥âhello.câ并ç¹ä¸ä¸âOKâã
ç°å¨ä½ çå°çæ¯ä¸ä¸ªæ é¢ä¸ºâhello.câç空ç½çªå£ï¼è¾å ¥ä¸é¢ç代ç ï¼
#include <stdio.h>
void main (void)
{
printf (Hello World from LCC-Win!\n);
}
ä¿åæ们çå°ç¨åºï¼å¨âFileâèåä¸éæ©âSaveâ项ã
ç°å¨æ们å¯ä»¥ç¼è¯è¿ä¸ªç¨åºäºãéæ©âCompilerâèåä¸çâCompile hello.câ
è°ç¨ç¼è¯å¨ãè¿æ¶ä¸ä¸ªæ°çªå£ä¼åºç°å¨IDEçåºé¨ï¼è¿æ¯ä¿¡æ¯çªå£ï¼å½ç¼è¯å¨å¤çå®æï¼
å¨è¿ä¸ªçªå£ä¸å°ä¼æ¾ç¤ºâHELLO.exe build successfully.âï¼å¦æç¼è¯åºéï¼åºéä¿¡
æ¯ä¹å°ä¼è¢«æ¾ç¤ºå¨è¿éã
å¦æç¼è¯åºéäºï¼å¨ä¿¡æ¯çªå£å¤åå»ä¿¡æ¯æ¾ç¤ºæå¨è¡ï¼å¨ç¼è¾çªå£å å°é«äº®åº¦æ¾ç¤º
åºé代ç è¡ï¼ä»ç»çæ£æ¥ä¸ä¸ä½ åçç¨åºåä¸é¢æåçä¸æ ·ï¼è¿ééè¦æ³¨æçæ¯Cè¯è¨
æ¯å¤§å°åææçç¨åºè¯è¨ï¼è¿æå³çâprintfâåâPrintfâ对ç¼è¯å¨æ¯ä¸ç¸åã
ç°å¨ä½ å·²ç»ç¼è¯å¥½äºè¿ä¸ªç¨åºï¼æ[Ctrl]+[F5]é®è¿è¡ä¸ä¸ï¼ç»æ对åï¼
使ç¨å·¥ç¨ç®¡ç
ç°å¨ä½ å·²ç»ç¼è¯äºä½ ç第ä¸ä¸ªç¨åºï¼ä½ å¯è½æ³ç¥éââæ§è¡æ件å¨åªéï¼
åçæ¯ï¼æä¹ä¸ç¥éï¼è¿å¯è½å¬èµ·æ¥å¾å»ï¼çç¡®ä¹æ¯ï¼ï¼ä½æ¯è¿æ¯çä½ å¨ç¼è¯ç¨åº
æ¶ç缺çç®å½æ¯ä»ä¹ï¼æä»¥ä½ åºè¯¥å¨ä½ ç硬çéæç´¢ä¸ä¸ªå«åâhello.exeâçæ件ã
ä½ è¯å®ä¸ä¼æ³è¦æ¯å¼åä¸ä¸ªç¨åºé½è¦æç´¢ä¸ä¸ç¡¬ççï¼è¿ç§æ åµä¸ä½ å°±è¦ä½¿ç¨å·¥ç¨ã
å·¥ç¨æ¯ä¸äºç¼è¯å¨è¦ç¥æç建ç«ç¨åºæéè¦çä¿¡æ¯ãè¿å æ¬ç¨åºæºæ件ãç¼è¯å¥½ç
æ件çåæ¾å°ç¹ãè¦ç¼è¯ä¸ºä»ä¹ç±»åçå¯æ§è¡æ件ï¼ä¸ä¸ªå¥½çæ³æ³æ¯ä¸ºæ¯ä¸ä¸ªç¨åºå»ºç«
ä¸ä¸ªå·¥ç¨ã
äºå®ä¸ï¼å¯¹äºæ们çâHelloWorldâç¨åºè¿æ¯æä¸ä¸ªå·¥ç¨çï¼Lcc=Winä¼ä¸ºæ²¡æ
ææå·¥ç¨çç¨åºå»ºç«ä¸ä¸ªç¼ºççå·¥ç¨ãéæ©âProjectâèåçâErase...â项ï¼Wedit
ä¼æ¾ç¤ºä¸ä¸ªå·¥ç¨å表ï¼ä½ ä¼çå°ä¸ä¸ªé¡¹ç®å«åâHELLOâï¼ç°å¨æ们毫ä¸çæ çå é¤å®ã
ä¸å ¶ä»çç¼è¯å¨ä¸åçæ¯ï¼Lcc-Winçå·¥ç¨ä¿¡æ¯ä¸æ¯åå¨å¨ç¡¬çä¸çï¼èæ¯åå¨
å¨Windowsç注å表项éãè¿ä½¿å¾Weditå¯ä»¥âè®°ä½âææçå·¥ç¨ï¼çè³äºå¨ä¸åçç£ç
ä¸ãä½æ¯ä¼å¿æ们ä¹éè¦æ¸ é¤æ们ä¸å使ç¨çå·¥ç¨ï¼å¨è¿ç§æ åµä¸ï¼æ们å¯ä»¥æå·¥ç¨ä¿¡
æ¯å¯¼åºå°ç£çä¸ï¼ç¶åå¨IDEä¸å é¤å®ãçä¸ä¸âProjectâèåçé项ï¼ä½ å°±ä¼æç½äºã
ç°å¨ä½ å¯ä»¥è¯çå建ä¸ä¸ªâHELLOâå·¥ç¨ã
第ä¸ä¸ªWindowsç¨åº
ä½ å¯è½å·²ç»æ³¨æå°äºhello.exeçèµ·æ¥è±¡æ¯ä¸ä¸ªDOSç¨åºï¼ä½æ¯å®ä¸æ¯çï¼å®æ¯ä¸ä¸ª
çæ£Windowsç¨åºï¼ä½æ¯è¿ç§ç±»åçç¨åºè¢«ç§°ä¸ºWindowsæ§å¶å°ç¨åº,å°±æ¯å¨ææ¬æ¨¡å¼ä¸
è¿è¡çWindowsç¨åºãå¦æä½ ä¸ç¸ä¿¡ï¼å¯ä»¥è¯çå¨Windowsç纯DOSç¯å¢ä¸è¿è¡ä¸ä¸ï¼ä½
ä¼å¾å°ä¸è¡ä¿¡æ¯ï¼âThis program cannot be run in DOS modeâã
åä¸ä¸ªçæ£çWindowsççâHelloWorldâç¨åºå¹¶ä¸æ¯æ§å¶å°ççæ¬é¾å¤å°ãé¦å
å建ä¸ä¸ªæ°å·¥ç¨ï¼éæ©âWindows executableâ代æ¿âConsole applicationâï¼ç¹OK
åï¼Lcc-Winä¼é®ä½ éè¦Wizardï¼çæå导ï¼å建ç¨åºæ¡æ¶åï¼åçNoã
#include <windows.h>
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
MessageBox (NULL, Hello world from Lcc-Win!, Hello, MB_OK);
return 0;
}
ç¼è¯å¹¶è¿è¡è¿ä¸ªç¨åºï¼ä½ ä¼çå°ä¸ä¸ªæ¾ç¤ºhelloä¿¡æ¯ççªå£ï¼ç¹okå ³ééåºã
ä¸å¹¸çæ¯ï¼é¤äºè¿æ ·çå°ä¹åå°çWindowsç¨åºï¼ä¸è¬æ åµä¸Windowsç¨åºæ¯å¾å¤æ
çï¼ç°å¨ä½ å·²ç»ç¥éäºå¦ä½å建工ç¨åç¼è¯ç¨åºï¼å¦æä½ æ¯ä¸ä¸ªWindowsç¼ç¨æ°æï¼å»
æ¾ä¸äºæå ³ç书æ¥ççï¼åå¾å¿ è¦çåºç¡ï¼ä¸äºWindowsç¼ç¨ç¥è¯å¨ä¸é¢çé¨åæ¯å¿ é¡»
çã
å¦æä½ æ¯ä¸ä¸ªCè¯è¨çæ°æï¼é£ä¹å 好好çå¦ä¸æ®µæ¶é´åæ¥çè¿ä¸ªæåå§ï¼
ç¨åºçæå导
Windowsç¨åºä¸ææ¬ç¶æä¸çç¨åºæ¯èµ·æ¥è¦å¥½çå¤ï¼ä½æ¯å¤©ä¸ä¸ä¼æé¦ é¥¼çï¼ä½ æ³
è¦å¾å°çWindowsåè½æ¯æï¼æ¯å¦ï¼åªè£æ¿ãå¤ä»»å¡ççè¦ä»åºçæ¯å¤§éçå¤æç代ç ã
ä½æ¯æ»è¿æ¯æäºåæ³å¯ä»¥ä½¿äºæ åå¾ç®åä¸äºçãé¿æ¶é´ä»¥æ¥ï¼ç¨åºå们åç°å®é
ä¸æ»æ¯æäºå¨æ¯ä¸ªç¨åºä¸é½ç¸åç代ç 段ï¼æ以Windowsç¨åºåé常使ç¨æ¨¡æ¿æ¥çæè¿
é¨å代ç ãå°±æ¯è¯´æºæ件ä¸è¬åªè¦çæä¸æ¬¡ï¼å°±å¯ä»¥å¨ä»»ä½ä¸ä¸ªæ°ç¨åºä¸ä½¿ç¨äºãåªæ
ååçé¨åææ¯æ¯ä¸ªç¨åºä¸åçé¨åï¼æ¾ç¶è¿äºåºè¯¥æ¯å¯ä»¥èªå¨çè¿è¡çã
è¿å°±æ¯çæå导è¦å®æçå·¥ä½ãä½ å¯ä»¥å¨å®ç帮å©ä¸å¿«éççæåºç¨ç¨åºçæ¡æ¶ã
è¿ä¸ªæ¡æ¶äºå®ä¸å°±æ¯ä¸ä¸ªä»ä¹åè½ä¹æ²¡æçä¸ä¸ªå®æ´çç¨åºï¼ä¹è®¸å¯è½åªæ¯ç¨æ¥æ¾ç¤ºä¸
个空çªä½ï¼å 为使ç¨åºå®æå ·ä½çåè½æ¯ä½ çå·¥ä½ã
让æ们çä¸ä¸ä½¿ç¨å导建ç«æç®åçåºç¨ç¨åºçå¤çã
é常ï¼ç¬¬ä¸æ¥æ¯å建ç¨åºä»£ç ï¼ç¶å建ç«ä¸ä¸ªå·¥ç¨ãå¨ä½¿ç¨å导ç模å¼ä¸ï¼ä½ 并ä¸
éè¦åä¸è¡ä»£ç ï¼å导å°ä¸ºä½ 建ç«å®ï¼æ们ç´æ¥æ¥ç建ç«å·¥ç¨å个æ¥éª¤ã
å¨âProjectâèåä¸éæ©âcreateâ项ï¼ç»åºé¡¹ç®å称åè·¯å¾ï¼éæ©å·¥ç¨ç±»å为
âWindows executableâï¼å½Wedit询é®ä½ æ¯å¦è¦ä½¿ç¨å导ï¼wizardï¼ï¼åçâyesâï¼
è¿æ ·å°±è¿å ¥äºå导模å¼ã
å导å°æ¾ç¤ºä¸ä¸ªå¯¹è¯æ¡å«åï¼âApplication characteristicsâï¼è¿æ¯å导å°å¨
åºç¨ç¨åºä¸å å«çåºæ¬ç¹ç¹ï¼ä½ å¯ä»¥éæ©ä»¥ä¸æ åµçä¸ç§ï¼åçªå£ãå¤çªå£åDLLï¼å¨
æé¾æ¥åºï¼ï¼ç°å¨æ们è¦å建ä¸ä¸ªååç®åçåçªå£å°åºç¨ç¨åºï¼éæ©åçªå£ç±»å并确
ä¿ææçç¹æ§å¤éæ纽é½æªè¢«éä¸ï¼ç¹å»âOKâè¿è¡å¤çã
ç°å¨å导å°è¦æç¤ºä½ è¾å ¥ä¿¡æ¯è®¾ç½®ä¸»çªå£çâç±»âï¼è¿éæ说çâç±»âåC++ä¸ç
ç±»æ¯ä¸åçï¼å®æ¯Windowså¨å åä¸åå¨çä¸ä¸ªç»æï¼ç¨æ¥åå¨æ£ç¡®æ¾ç¤ºçªå£æéè¦ç
ä¿¡æ¯ãæéè¦çæ¯âåå«å½æ°âï¼ä¸é¢å°å ·ä½ä»ç»ï¼çå称ï¼ç°å¨åªè¦ç®åæ¥åé»è®¤ç
å±æ§å¼ï¼ç¹å»âNEXTâè¿è¡å¤çã
è¿ä¸ªâGenerate code for the main window creationâ对è¯æ¡ç¨æ¥è®¾å®ç¸åºçªå£
çä¿¡æ¯ãå½ä¸»çªä½è¢«å建çæ¶åè¿äºä¿¡æ¯ä¼è¢«ä¼ éå°ç¸åºççªå£ãå¨è¿éä½ å¯ä»¥æ¹åçª
å£çæ é¢æ çæ¾ç¤ºå 容ï¼ç¶åç¹å»âFinishâã
å导çå·¥ä½å°±è¦å®æäºï¼æ¥ä¸æ¥çå·¥ç¨å建工ä½æ¯é常çä¸äºå¯¹ç¼è¯å¨ãé¾æ¥å¨ã
è°è¯å¨çä¸äºè®¾ç½®ï¼è¿éåªè¦ç®åçæ¥å缺ççé项就å¯ä»¥äºã
ç»è¿ä¸é¢çæ¥éª¤ï¼å°±å®æäºå导çææçå·¥ä½ï¼ä½ å¯ä»¥å¨IDEä¸çå°ä¸¤ä¸ªçªå£ï¼ä¸
个æ¯æºç¨åºç¼è¾çªï¼å¦å¤çä¸ä¸ªæ¯ç¨æ¥å®ä¹åºç¨ç¨åºç主èåçèæ¬ã
æ£è±¡ååæ说çé£æ ·ï¼è¿ä¸ªç¨åºæ¡æ¶æ¯å ¨åè½çï¼å¯ä»¥éè¿ç¼è¯å¹¶è¿è¡ï¼ä½ å¯ä»¥ç
å°ä¸ä¸ªæèåççªå£ãå¯ä¸å¯ä»¥è¿è¡çæä½æ¯âFileâèåçâExitâ项ï¼ä½ å¯ä»¥ä½¿ç¨
è¿ä¸ªèåé¡¹å ³éè¿ä¸ªç®åççªå£ï¼ä¹å¯ä»¥ä½¿ç¨[Ctrl]+[Q]å®æåæ ·çæä½ã
ç°å¨ä½ å¯ä»¥çä¸ä¸è¿ä¸ªç¨åºçæºä»£ç ï¼ä½ ä¼æ³¨æå°è¿ä¸ªç¨åºæ¯é£ä¸ªâHello World!â
ç¨åºå¤æäºè®¸å¤ï¼æå¯ä»¥åè¯ä½ ä¸ä¸ªå°çªé¨ââä»æºä»£ç çç»å°¾å¼å§è¯»èµ·ï¼å 为é常é£
éææ¯ä¸äºåè½å½æ°çæå¨ã
使ç¨WeditReså建èµæº
å¨Windowsç¨åºçå¼åä¸ï¼èµæºæ¯ååéè¦çé¨åï¼èåã对è¯æ¡åå ¶å®çä¸äºç¨
æ·æ¥å£é¨åé½æ¯å¯ä»¥è±¡åç¨åºä¸æ ·çç¼åçï¼å¯ä»¥ç®åçä½ä¸ºèµæºå å«è¿ç¨åºä¸ã
å¦æLcc-Win没ææä¾ä¸ä¸ªèµæºç¼è¾å¨é£ä¹Lcc-Winå°ä¸æ¯ä¸ä¸ªå®æ´çWinç¼
è¯ç¨åºï¼Lcc-Winæä¾çèµæºç¼è¾å¨å«åWeditResï¼æ¯å¨âlcc\bin\âè·¯å¾ä¸ã
çç¡®ï¼WeditResè¿æ¯å¨ä¸æçå®åçè¿ç¨ä¸ï¼ä¹å°±æ¯è¯´è¿æ²¡æå¼åå®æãä¸è¿å®å·²
ç»å¯ä»¥ç¼è¾ä¸äºæå·¥ç¼è¾é¾ä»¥å®æçèµæºäºï¼æ¯å¦ï¼èåå对è¯æ¡ççãå¨IDEä¸è°ç¨
WeditResï¼å¨âCompilerâèåä¸éæ©âResourcesâ项ã
å¦æä½ æ£å¨å¼åçç¨åºæ¯ç¨å导çæçï¼é£ä¹å导ä¼äº§çä¸ä¸ªèµæºæ件ï¼å¨è¿ä¸ªæ
件éè³å°å æ¬èåèµæºï¼WeditResä¼æå¼è¿ä¸ªèµæºæ件ï¼ä½æ¯å®ä¸ä¼æ¾å°ç¸åºç头æ件ï¼
ä½ åºè¯¥ä¸ºå®ææ头æ件çè·¯å¾ãé常æ¯å¨WeditReså½åå·¥ä½è·¯å¾çä¸ä¸çº§ç®å½ã
WeditResè¦æ¾çæ件é常å«åprjnamewiz.hï¼è¿éçprjnameæ¯ä½ æå®
çå·¥ç¨çå称ãç»è¿è¿ä¸æ¥å°±å¯ä»¥ä¿®æ¹å·¥ç¨æç¨çèµæºäºã
å¦æä½ çç¨åºä¸æ¯ç±å导çæçï¼é£ä¹WeditResä¼æç¤ºä½ è¾å ¥èµæºæ件çæ件åï¼è¾
å ¥ä¸ä¸ªå称åç¹å»âOKâï¼è¿æ¶WeditResä¼è¯´ä¸è½æå¼è¿ä¸ªèµæºæ件ï¼æ²¡æå ³ç³»ï¼è¿æ¯
å 为è¿ä¸ªç®å½ä¸çç¡®æ¯æ²¡æèµæºæ件çï¼è¿æ¯å¨è¿ä¸ªå¯¹è¯æ¡ä¸ç¹å»âOKâï¼ç¶åå¨
âFileâèåä¸éæ©âNewâ项ï¼è¿æ ·å°±ä¼ä¸ºä½ çå·¥ç¨å建ä¸ä¸ªæ°çèµæºå·¥ç¨ï¼é®å ¥ä¸
个工ç¨åï¼ä¸è¬æ åµæ¯ååºç¨ç¨åºçå·¥ç¨åç¸åï¼ç¶åç¹å»âValidateâï¼ç°å¨ä½ éè¦
æå·¥å¨åºç¨ç¨åºå·¥ç¨å表éæ·»å è¿ä¸ªèµæºæ件ï¼ä¸è¬ä»¥âRESâ为æ©å±åï¼ã
å¨è¿éè¯ä¸¾ä¸ä¾ââæ们æ¥ä¸ºæ们ä¸é¢å建çç¨åºå建ä¸ä¸ªâå ³äºâ对è¯æ¡èµæºã
è¿è¡WeditResï¼è¾å ¥å¤´æ件çè·¯å¾åéæ©âObjectsâèåçâNew dialogâ项ï¼
è¿æ¶WeditResä¼æ¾ç¤ºä¸ä¸ªå¯¹è¯æ¡ï¼æ é¢æ 为âDialog box parametersâï¼æ¹å对è¯æ¡
çæ é¢ä¸ºâAbout this applicationâæè éä¾¿å ¶å®çä»ä¹ä¸è¥¿ï¼ç¶åå¨âIdentityâ
ï¼æ è¯ç¬¦ï¼é¡¹é®å ¥ä¸ä¸ªä½ å欢çä¸è¥¿ï¼æ¯å¦ï¼âDLG_ABOUTâï¼å¨âstandard buttonsâ
éåä¸éæ©âValidateâé项并ç¹å»âOKâå ³é对è¯æ¡ã
ä½ å¨è¿ä¸ªæ¶ååºè¯¥å¯ä»¥çå°ä¸ä¸ªæ°ç对è¯æ¡åä¸ä¸ªæµ®å¨çå·¥å ·æ¡ï¼å¨å¯¹è¯æ¡ä¸ä¹åº
该æä¸ä¸ªæ纽ï¼ä½ å¯ä»¥ç¨é¼ æ æå¨å®æ¥éæ°æå®å®çä½ç½®ï¼å¦æä½ è¿æ³æ¹åæ纽ä¸æ¾ç¤º
çæåââåå»å®æå¼å±æ§å¯¹è¯æ¡ï¼æè å éå®å®ï¼ç¶åå¨æµ®å¨å·¥å ·æ¡ä¸æ¹åæ¾ç¤ºæåã
ä¸é¢æ们添å ä¸ä¸ªéæææ¬æ ç¾ï¼å¨å·¥å ·æ¡ä¸éæ©ææ¬å·¥å ·ï¼å æ å½¢ç¶åæç±ä¸ä¸ª
ç©å½¢å å´çæéï¼å¨å¯¹è¯æ¡ççªä½ä¸ç¹å»ä¸ä¸ï¼ä¸ä¸ªå å«ææ¬âââTextâââçç©å½¢
ä¼åºç°å¨ä½ ç¹å»çå°æ¹ï¼å¯ä»¥éè¿é¼ æ æå¨æ¥æ¹åè¿ä¸ªææ¬æ¡ç大å°ï¼åæ ·ä¹å¯ä»¥æ¹å
æ¾ç¤ºçææ¬åææ¬æ¡çä½ç½®ã
æ们è¿å¯ä»¥å¨è¿ä¸ªå¯¹è¯æ¡ä¸æ·»å å ¶å®çè£ ç½®ã空å¿æ¹æ¡ãå®å¿æ¹æ¡åç»ä»¶ççå¯ä»¥
对è¿ä¸ªå¯¹è¯æ¡è¿è¡ä¸äºç®åçè£ é¥°ãå¦æä½ æ³è¦å é¤ä¸ä¸ªè£ ç½®ï¼éå®å®ç¶åæ
[Ctrl] + [X]ï¼æè éæ©âEditâèåçâCutâ项ãè¿å¯ä»¥éæ©âOptionsâèåç
âTestâ项æµè¯è¿ä¸ªå¯¹è¯æ¡çå¤è§ãå¨å·¥å ·æ éæä¸ä¸ªæ纽çåè½æ¯ç¸åçï¼å°±æ¯çèµ·
æ¥è±¡ä¸ä¸ªå¼å ³çé£ä¸ªï¼å¦ææ³è¦ç»§ç»ç¼è¾è¿ä¸ªå¯¹è¯æ¡ï¼åªè¦å次éæ©ä¸è¿°é项ä¸æ¬¡å³å¯ã
ç¼è¾å®æåå¨âFileâèåä¸éæ©åçï¼ç¶åå ³éWeditResï¼ä¸ºäºæ¾ç¤ºè¿ä¸ªå¯¹è¯æ¡
ä¸é¢æä»¬å¿ é¡»å¨ç¨åºä¸å å«ç¸åºç代ç ã
寻æ¾âOnCommandâè¯å¥ï¼å¨é£éè¯å®æä¸ä¸ªswitchè¯å¥çæ¡ä»¶ä¹ä¸æ¯èåå½ä»¤
âExitâçï¼IDM_EXITï¼,ç°å¨æ们为æ们çæ°å¯¹è¯æ¡æ·»å ä¸ä¸ªæ°çcaseæ¡ä»¶ï¼è¾å ¥å¦
ä¸ä»£ç ï¼
case IDM_ABOUT:
DialogBox (hInst, MAKEINTRESOURCE(DGL_ABOUT), hwnd, AboutDlgProc);
break;
æ们è¿éè¦ç¼å对è¯æ¡å½æ°ã
BOOL CALLBACK AboutDlgProc (HWND hwnd,UINT msg,WPARAM wParam,LPARAM lParam)
{
switch (msg)
{
case WM_COMMAND:
if (LOWORD(wParam) == IDOK)
{
EndDialog(hwnd,0);
return TRUE;
}
break;
}
return FALSE;
}
ä½ åºè¯¥å·²ç»æç½äºï¼ç±å导æ¥çæ代ç è¦ç®åå¾å¤ï¼ç°å¨ç¼è¯ãé¾æ¥è¿ä¸ªç¨åºï¼ç¶
åè¿è¡å®ï¼éæ©âCompilerâä¸çâExecute prj.exeâ项ï¼æ们å建ç对è¯æ¡å°æ¾ç¤º
å¨å±å¹ä¸äºã
æ·»å å ¶å®ç±»åçèµæº
ä½ è¿éè¦ç¥éå¦ä½æ·»å å ¶å®èµæºï¼å¦å¾æ çã
äºå®ä¸WeditResè¿ä¸è½ç¼è¾å¾æ æ件ï¼ä½è 说æ£å¨åè¿æ¹é¢çå·¥ä½ãæä»¥ä½ å¯è½è¦
使ç¨å ¶å®çå·¥å ·æ¥å®æå¾æ ç¼è¾çå·¥ä½ã
å¨èµæºå建å®åï¼ä½ è¦æå®æ·»å å°å·¥ç¨çèµæºæè¿°æ件éé¢å»ãå¦æä½ æ¯ä½¿ç¨å导
å建çå·¥ç¨ãä½ åªé¡»è¦æå¼ä¸å·¥ç¨åç¸åç*.RCæ件就å¯ä»¥äºã
å¦æä½ æ²¡æ使ç¨å导ï¼é£ä¹ä½ åªè½æ°å建ä¸ä¸ªRCæ件ãå¦æä½ æ¯ä½¿ç¨WeditReså建
çèµæºï¼å¨å»ºç«èµæºæè¿°æ件æ¶æäºäºæ æ¯ä½ å¿ é¡»ç¥éçââå¿ é¡»å å«WeditResèµæºï¼
çè³äºä½ 并没æ使ç¨ä»»ä½ç±WeditReså建çèµæºï¼ä½ å®å ¨æå¯è½å¨åç»çå·¥ä½ä¸ç¨å°ï¼
æ建议æ 论ä»ä¹æ åµé½åºè¯¥è±¡ä¸é¢è¿æ ·åã
WeditResä¸è¬è¦å»ºç«ä¸ä¸ªæ件ï¼ä¸ä¸ª*.DLGæ件ãä¸ä¸ª*.H头æ件åä¸ä¸ª*.RESäºè¿
å¶èµæºæ件ãDLGæ件æè¿°äºç±WeditReså建çèµæºçå®ä¹ï¼å¦ï¼èµæºä¸²ãèåå对è¯
æ¡çï¼ï¼Hæ件æ¯ææèµæºç符å·åçå®ä¹ï¼RESæ件æ¯ç¼è¯åçäºè¿å¶èµæºæ件ï¼è¿ä¸ª
æ件å°è¢«é¾æ¥å°å·¥ç¨æåçæçå¯æ§è¡ç¨åºä¸ã
èµæºæè¿°æ件ï¼*.RCï¼çæ件åä¸å®è¦åRESæ件çæ件åç¸åï¼å½Lcc-Winçèµ
æºç¼è¯å¨ï¼lrc.exeï¼ç¼è¯èµæºæ¶å°è¦çåæ¥çRESæ件ãä½ å¯ä»¥å¨Weditä¸å建èµæºæ
è¿°æ件ï¼å¦ä¸ï¼
#include <windows.h>
#include resources.h
#include resources.dlg
æ¯ã
第äºè¡å å«ç±WeditRes产ççèµæºç符å·åç头æ件ï¼æå¨è¿éåå®ä½ çèµæºå·¥ç¨
å为âresurcesâï¼å¯ä»¥æ¹ä¸ºä½ æå®ä¹çå称ã第ä¸è¡æ¯WeditRes产ççèµæºæè¿°æ件ï¼
è¿æ ·ä¸ä¼ä¸¢å¤±ä½ å·²ç»å建äºçèµæºã
ä¸é¢ä½ å¯ä»¥åèµæºæè¿°æ件ä¸å¢å èµæºï¼ä¸é¢æ¯ä¸ä¸ªä¾åï¼
IDI_MYICON ICON myiconfile.ico
è¿ä¸è¡å®ä¹äºå¾æ èµæºï¼å¨ä½¿ç¨åï¼ä¸å®è¦å®ä¹å¾æ ç符å·åãæ¯å¦å¨âprjwiz.hâ
æ件ï¼æè âresource.hâï¼å¦æä½ æ²¡æ使ç¨å导ï¼ä¸ï¼å¦æä½ æ²¡æå®ä¹è¿ä¸ªç¬¦å·åï¼
é£ä¹ç¼è¯å¨å°è®¤ä¸ºå®æ¯ä¸ä¸ªå符串åã
æ·»å å æ æè ä½å¾èµæºçæ¥éª¤æ¯ç¸åçï¼åªè¦æå ³é®åæ¹ä¸ºâBITMAPâæè
âCURSORâã
ä¸é¢è¦åçæ¯æèµæºæè¿°æ件å å«å¨å·¥ç¨æ件å表ä¸ï¼å½ä¸ä¸æ¬¡ä½ ç¼è¯å·¥ç¨ï¼èµæº
ç¼è¯å¨ä¹å°ç¼è¯è¿ä¸ªèµæºæè¿°æ件ï¼å¹¶æ产ççäºè¿å¶èµæºé¾æ¥å°æ§è¡æ件å ã
è¿æ ·ä½ å¯ä»¥æ·»å å¾æ ãå æ åä½å¾èµæºï¼å¯¹äºå ¶å®ç±»åçèµæºå¯ä»¥ä½¿ç¨RCDATAèµæº
æ¹å¼æ·»å å°èµæºæ件å ï¼å°±æ¯ä¸ç³»åçç±éå·åéçæ°å¼ä¿¡æ¯ï¼è¿ç§æ¹å¼å¯ä»¥ä½¿Lcc-Win
çèµæºç¼è¯å¨ä¸æ¯æçèµæºå¾ä»¥æ·»å å°èµæºæ件ä¸å»ï¼æ¯å¦WAVæ件çã
使ç¨éè§æ ¼èµæº
Lcc-winçèµæºç¼è¯å¨å¯ä»¥ä½¿ç¨åç§ç±»åçèµæºï¼å¦å¯¹è¯æ¡ãèåãå¾æ çï¼ä½
æ¯å®ä¸è½ä½¿ç¨å ¶å®éè§æ ¼çèµæºå¦å¤åªä½æ件ï¼WAVï¼MIDççï¼ã
ä½ å¯è½è®¤ä¸ºä½¿ç¨å ¶å®çèµæºç¼è¯å¨å¦å¾®è½¯å¨Win SDKä¸æä¾çèµæºç¼è¯å¨ï¼æè
å ¶å®çä»ä¹ä¸è¥¿ã
ä½æ¯è¿éç麻ç¦äºæ¯LCCLINKï¼å 为å®å¹¶ä¸è®¤è¯è¿äºèµæºï¼å æ¤ä¹ä¸å¯è½æè¿äºèµ
æºé¾æ¥å°ä½ çæ§è¡æ件ä¸å»ï¼è¿åçæ¯ä¸ªå¤§é®é¢ï¼ä½ å¯è½ä¸å¾ä¸ä½¿ç¨å ¶å®çé¾æ¥å¨ï¼è¿
æå³çå¯è½éè¦å ¶å®ç±»æ§çå ¥å£åºã
æ认为è¿æ ·åä¸æ¯ä¸ä¸ªå¥½ç解å³æ¹æ¡ï¼ä¸»è¦çåå æ¯Weditä¸æ¯è®¾è®¡æå¯ä»¥ä½¿ç¨å ¶
å®çé¾æ¥å¨çï¼ä½ å°ä¸å¾ä¸å¨å½ä»¤è¡ä¸ç¼è¯ä½ çç¨åºï¼æ¾å¼äºLcc-Win IDEæä¾çå ¨
é¨ä¼ç¹ã
ä½æ¯è¿éè¿æ¯æä¸ä¸ªå¯ä¾éæ©çæ¹æ¡ï¼ââ幸è¿çæ¯LRCæ¯æRCDATAèµæºç±»åï¼è¿
ç§èµæºç±»åç¨æ¥å å«äºè¿å¶æ°æ®ç±»åçèµæºï¼ä½¿ç¨ä¸ç³»åçæ°åå表表示ã
ä¸é¢æ¯å ·ä½çå®ç°æ¹æ³ï¼
é¦å ä½ éè¦è½¬æ¢ä½ è¦ä½¿ç¨çäºè¿å¶æ件å°æä¸ç³»åçæéå·åå²æ°å¼è¡¨ç¤ºçææ¬æ
件ï¼LRC缺çç认为è¿äºæ°æ®æ¯ä½é¿çï¼å®åæ¶ä¹æ¯æä½é¿åº¦çæ´æ°ï¼åªè¦å¨æ°å¼
åæ·»å âLâå符就å¯ä»¥äºã
ä½ å¯ä»¥ä»è¿éä¸æ ½åè¿äºå·¥ä½ç转æ¢å¨ï¼
* Bin2Txt: å¼åè ï¼Josef Planeta. ååççµæ´»æ¹ä¾¿ï¼
* TextIt: æ¬æä½è å¼åï¼å¯ä»¥ä¸æ¬¡è½¬æ¢å¤ä¸ªæ件ã
è¿ä¸¤ä¸ªå·¥å ·é½å¸¦ææºç ï¼ä½¿ç¨Lcc-Winå¼åã
ç¶åä¸å®è¦å¨èµæºæ°æ®ä¸å å«è¿äºæ´æ°å表ï¼å¦æä½ çèµæºæ件没æ使ç¨èµæºæè¿°
æ件ï¼å¦æä½ æ²¡æ使ç¨å导çæå·¥ç¨ï¼è¿æ¯æå¾å¤§å¯è½çãä½ ä¸å®è¦å»ºç«ä¸ä¸ªèµæºæè¿°
æ件ï¼ä¸è¬æ¯è¿ä¸ªæ ·åçï¼
#include <windows.h> //basic Windows header file
#include resources.h //resource identifiers (generated by WeditRes)
#include resources.dlg //resource scripts (generated by WeditRes)
MySound RCDATA
BEGIN
#include mysound.txt
END
å¨è¿ä¸ªä¾åä¸ï¼æ们å å«äºä¸ä¸ªå«åâmysound.txtâçæ件ï¼è¿ä¸ªæ件æ¯ç±ä¸ä¸ª
WAVæ件转æ¢æçæ°æ®æ件ã
è¦æ³¨æå½åçæ¬çLRCï¼Vï¼å¨RCDATAèµæºç大å°ä¸æ¯æéå¶çï¼å¦æä»»ä½ä¸
个æ°æ®æ件大äºKbï¼ä½ æå¯è½å¾å°ä¸ä¸ªæº¢åºä¿¡æ¯ï¼Overflow in resource dataï¼ï¼
å¨æªæ¥ççæ¬ä¸å¯è½ä¼æææ¹è¿ï¼ä½æ¯å¨ç®åå¦æåºç°äºè¿ç§æ åµå¯è½åªæ使ç¨å ¶å®ç
èµæºç¼è¯å¨äºã
使ç¨RCDATAç±»åå®ä¹èµæºæå³çä½ ä¸è½ç´æ¥çæå®PlaySoundæ¥ææ¾è¿äºèµæºï¼å
为类åæ¯ä¸åçã
解å³åæ³æ¯æå·¥æè¿äºæ°æ®è¯»å ¥å åï¼ä¸é¢ç代ç 说æäºå¨PlaySoundæ¶è¦åçäºæ ï¼
BOOL PlayRcSound (HINSTANCE hInst, LPCTSTR lpszSndName)
{
HRSRC hr;
HGLOBAL hg;
LPVOID lpSndData;
hr = FindResource (hInst, lpszSndName, RT_RCDATA);
if (hr != NULL)
{
hg = LoadResource (hInst, hr);
if (hg != NULL)
{
lpSndData = LockResource (hg);
if (lpSndData != NULL)
{
return PlaySound((LPCTSTR)lpSndData, NULL, SND_MEMORY);
/* We do not need to unlock or unload the resource, */
/* Windows will take care of this */
}
}
}
return FALSE;
}
å¦æä½ çèµæºå¨å¤´æ件ä¸å®ä¹ææ è¯ç¬¦ï¼å«åï¼ID_MYSOUNDï¼é£ä¹è°ç¨å½æ°çæ¹å¼
åºè¯¥æ¯ï¼
PlayRcSound (hInst, MAKEINTRESOURCE(ID_MYSOUND));
å¦å¤ï¼å¦æä½ ç»åºäºä¸ä¸ªå符串åï¼æ¯å¦ï¼MySoundï¼å½æ°è°ç¨å¦ä¸æ示ï¼
PlayRcSound (hInst, MySound);
éæåºåå¨æåº
ä¹è®¸ç¨åºåå°±æ¯å欢æ¯å»ä»¥ç±»çä¿®è¾çï¼åºçæ¦å¿µå°±æ¯ä¸ä¸ªä¾åï¼å®æ¯ç¨æ¥åå¨å¯
è½å¨è®¸å¤çç¨åºä¸ä½¿ç¨ç代ç ï¼æè ä¸é¨åååä¸ä¸ç代ç ï¼åªè¦åä¸æ¬¡å°±å¯ä»¥äºï¼ç
è³æ¯ç±å ¶ä»çäººä¸ºä½ åç代ç ï¼è¿æ ·ä½¿ç¨è¿äºä»£ç èå®å ¨ä¸ç¨å ³å¿å ·ä½çå®ç°ç»èã
åå ¶å®çWindowsç¼è¯å¨ä¸æ ·ï¼LCC-Winä¹æ¯æ两ç§åºââå¨æåºåéæåºã
éæåºå å«ç代ç å¨ç¼è¯é¾æ¥æ¶å°è¢«æ·»å å¨å¯æ§è¡æ件ä¸ï¼å®è¢«ç§°ä¸ºâéæâåºæ¯
å 为ä¸æ¦å®é¾æ¥å°å¯æ§è¡æ件ä¸ï¼å°±å°ä¸å¯æ¹åï¼é¤ééæ°ç¼è¯æ´ä¸ªç¨åºï¼ã
èå¨æé¾æ¥åºä¸ä¼ç±ç¼è¯å¨é¾æ¥å°å¯æ§è¡æ件ä¸ï¼èæ¯å¨è¿è¡æ¶ç±æä½ç³»ç»é¾æ¥çï¼
è¿æ ·å³ä½¿ä½ æ¹åäºè¿ä¸ªåºï¼ä¹ä¸ä¼ä½¿æ´ä¸ªå¯æ§è¡ç¨åºéæ°ç¼è¯ã
éæåºçç¼åè¦ç®åäºï¼åªè¦å建ä¸ä¸ªç±»å为âStatic library (lib)âçæ°å·¥ç¨ï¼
æ·»å ä½ è¦å¨è¿ä¸ªéæåºä¸ä½¿ç¨çåå§èµæââå½æ°ãæ°æ®ççï¼ç¼è¯åå°±ä¼å¾å°ä¸ä¸ª
LIBæ件ï¼è¿ä¸ªæ件éé¢å æ¬äºææä½ æå®çå½æ°åæ°æ®ãå¦æä½ è¦ä½¿ç¨è¿äºå½æ°æè
æ°æ®ï¼å¨âConfigurationâ对è¯æ¡ä¸çâLinkerâ表éçâAdditional librariesâ
项ä¸æå®éæåºå称ï¼éç¥ç¼è¯å¨æè¿ä¸ªéæåºé¾æ¥å°å·¥ç¨éå»ï¼ä½æ¯åä¸ä¸è¦å¿äºæ
ä½ çéæåºæ¾å°é¾æ¥å¨è½å¤æ¾å°çå°æ¹ï¼æ¯å¦ï¼â\lcc\libâè·¯å¾ä¸ã
å¨æé¾æ¥åºå°±æäºéº»ç¦äºï¼ä½ è¦ä½¿ç¨ä¸¤ä¸ªæ件èä¸æ¯ä¸ä¸ªæ件ï¼å¨æåºæ¬èº«ââDLL
æ件åå ³èå ¥å£åºââLIBæ件ãå ¥å£åºæ¯ç»é¾æ¥å¨ä½¿ç¨çï¼ç®åç说å®ä½¿ç¨æ¥åéª
é¾æ¥å¨çï¼åæ¶å®ä¹å å«äºä½¿Windowsæ£ç¡®çè°ç¨ç¸åºå¨æåºä¸çå½æ°çä¿¡æ¯ã
èä¸ï¼å¨æåºçåè½å¯ä»¥æ´å ç强大ï¼å®æä¸ä¸ªLibMain()å½æ°ï¼å¨ç¨åºæ¯ä¸æ¬¡
è°ç¨å®æ¶é½è¦éè¿å®æ¥è¿è¡åå§åçå·¥ä½ã
è¦å建ä¸ä¸ªå¨æé¾æ¥åºï¼ä½ è¦å建ä¸ä¸ªDLLå·¥ç¨ï¼ç¶åä½ å¯ä»¥ä½¿ç¨å导çæLibMain()
å½æ°ãæ·»å ä½ è¦ä½¿ç¨çå½æ°åæ°æ®ï¼å¨ç¼è¯è¿ä¸ªå·¥ç¨åï¼ä½ å°±å¯ä»¥å¾å°DLLåºåæ¥å£åº
æ件ã
å¦æè¦ä½¿ç¨å¨æé¾æ¥åºï¼è±¡ä½¿ç¨éæåºä¸æ ·ï¼è¦å°æ¥å£åºæ¾å¨â\lcc\libâè·¯å¾ä¸ï¼
å¨âOptionsâ对è¯æ¡ä¸æ·»å è¿ä¸ªæ¥å£åºãåæ¶ä¹è¦æDLLæ件æ¾ç½®å¨Windowsè½å¤æç´¢
å°çè·¯å¾ä¸ï¼Windowsæç´¢å¨æé¾æ¥åºç缺çç®å½æ¯â\windows\system\âååºç¨ç¨åº
çèµ·å§ç®å½ï¼å°å¨æé¾æ¥åºæ¾ç½®å¨è¿ä¸¤ä¸ªç®å½ä¸é½æ¯å¯ä»¥ç
Scintilla功能
Scintilla是一个功能强大的源代码编辑控件,它能够实现文本编辑控件中的辑器所有基本功能,并提供一些特殊功能,源码例如语法高亮显示、文编错误指示、辑器代码自动完成、源码创建订单源码笔记代码提示、文编在左侧空白处显示断点和当前运行行等。辑器它的源码界面自定义风格功能比大多数编辑器控件更开放,用户可以根据需要自定义不同类型的文编字体、粗体、辑器斜体、源码前景色和背景色,文编并支持大量字体。辑器例如,源码在设置C/C++编辑模式后,可以定义注释语句类型的颜色、字体、大小,同样可以自定义关键字类型的颜色、字体、vsftpd源码包大小等。
Scintilla在.NET和Java虚拟机中的表现将得到加强,显示出其活力和开发团队的热情。与之相比,Richedit控件在样式改变时将其视为文档改变,这不符合源代码编辑的需求。选择Scintilla作为源代码编辑控件,可以避免大量自定义代码的编写,实现高效、安全、打印 源码 彩色可靠的源代码编辑。
Scintilla提供了Win和Linux版本,Linux版使用GTK+,在Windows 、nt4.0、Windows 、Windows XP和Red Hat Linux 8、9等系统中,GTK+1.2和2.0版本中测试运行正常。Scintilla的thrift源码下载Windows版本是一个窗体控件,其主要编程接口通过窗体消息传递,实现功能只需向控件发送消息即可。不过,在MFC编程中,通过消息控制控件较为繁琐,通常将自定义消息封装到窗体类中,以便更方便地调用。
除了基本的编辑功能,Scintilla还提供语法高亮、代码折叠、乱序壳源码书签、自动完成和语句提示等功能,用户无需学习CEDIT或RichEdit,Scintilla提供了一致的API接口。此外,Scintilla开发组还基于此控件开发了一个编辑软件SciTE,它完全实现了Scintilla的所有功能。下载并使用SciTE可以直观了解Scintilla的功能,同时SciTE也是开源软件,学习其代码可以深入了解Scintilla的使用方法。
WinASM studio实例图文教程
WinASM studio在中国发布第一款简体中文正式版软件,这才真正是一款在我所使用的位汇编平台中最为优秀的WIN汇编编辑器,支持MASM、TASM、NASM等多种汇编编译器,Windows界面,支持语法高亮,智能语法提示比RadASM完美很多,自带一个资源编辑器。拥有较强的工程管理功能,加之众多插件的支持,使得它用汇编语言编写Windows软件变得得心应手。 WinASM studio实例教程下载完成后请放逻辑盘的根目录下解压,注意一定要在根目录下,如果不在根目录下, 会造成关键字无法高亮,以及程序无法编译.
第一步 我们先来看WinAsm Studio的界面
第二步 我们新建一个工程
文件-新建工程
出现如下所示对话框
点击标准可执行文件 工程浏览器上就会多出一个工程, 这时默认的名称是Untitleed1.asm
我们再在工程浏览器窗口 点击右键 添加一个新的资源文件
由于我配置winasm的时候 在程序目录下指定了一个工程目录
所以他默认的工程文件会保存到 该目录下
接下来 按下保存工程按钮
在改目录下新建一个文件夹(方便管理的建议. 也可以直接保存.)
把相关文件保存到该文件夹下. Winasm会建立三个文件. 一个是工程文件(makefile 和工程配置的一些属性), 一个是汇编源程序, 一个是资源文件.
好了 工程我们已经建好了.
第三步 进行资源的编辑
先是工程浏览器上单击资源文件. 视图会切换到资源编辑器
这时界面上是一片空白.我们把工程浏览器的选项卡切换到资源选项卡.
我们先把工程所需的位图资源等拷贝到工程目录下.
单击资源按钮添加
加上咋们需要的id和名称. 确定!
工程需要的资源我们加载完了. 接下来我们就要画界面了!
单击添加新对话框 添加一个对话框窗口
画好我们要的对话框 并在属性窗口置好相应的属性.
按SHIFT+F4 编译资源.
如果有报错. 多数是因为你资源代码编辑的不对.
这时我们可以切换到代码模式 编辑资源代码
Winasm 会告诉你 是哪行出错了!
现在这demo中,是找不到该ico图标 .
如果你不想包含该图标文件,直接把这两行代码去掉就好了.
(偶平时都这么做的哈哈~~~~ 偶懒吧!)
资源编译通过以后 选择资源菜单-定义
导出在资源文件中定义的控件id
拷贝完后 切换回汇编代码编辑器
黏贴到汇编代码中
代码编写完后. SHTF+F8 编译 并运行.
如果没有错误 程序就会执行了.
;==========================================================
好了 winasm studio的基础使用教程就这么多.
WinASM studio快捷键F2 (选中代码后F2)代码注释
SHIFT+F2 (选中代码后) 撤销注释
SHIFT+F8 编译程序并运行
CTRL+F9 程序在调试器中运行
/*注意:请在下载整合包后自行查毒, 我上传的保证是无毒的. 希望不要有心里变态的人在winasm studio整合包里放鸽子..安全起见 还是杀下毒. 如果不放心 那请给我留言.我再找个地方上传!*/
第一个中文版软件,功能和性能以及易用性绝对超越RadASM任何一个版本!绝对!
Windows系统中vscode的c/c++开发环境配置(一):下载和安装
在Windows系统中,Visual Studio Code(vscode)作为一款轻量级源代码编辑器,为C/C++开发提供了一个小而强大的跨平台环境。要开始开发,首先需要下载和安装vscode及其对应的GCC编译器MinGW-w。本文主要介绍了如何下载不同版本的MinGW-w,以及如何配置其环境变量以确保系统能找到编译器。
下载vscode,访问官网Visual Studio Code - Code Editing. Redefined,根据你的平台选择安装包。对于C/C++开发,还需安装MinGW-w,选择合适的版本(比如带seh的win版本,适合Windows平台)。下载后,解压到不含中文的文件夹,并记录mingw/bin目录的路径。
接着,配置环境变量:进入“环境变量”设置,添加mingw/bin路径到Path,然后通过cmd验证g++版本。路径配置成功后,系统将能够通过path找到并执行可执行文件。
虽然基础配置已完成,但为了实现一键编译和执行C/C++代码,还需要安装相关插件和配置vscode的调试功能,这部分内容将在后续文章中详细介绍。