Znn3bq.jpeg
²é¿´: 2284  |  »Ø¸´: 0

fancx

Ìú¸Ëľ³æ (ÖøÃûдÊÖ)

[ÇóÖú] ÓÃVC++6.0±àдMFCÉÏλ»ú´®¿ÚͨѶµÄÎÊÌâÇóÖú

ÈçÌ⣬±ÉÈËÊÇC++²ËÄñ£¬½üÀ´Ä£·ÂÍøÉÏÁ÷³ÌÉõ¹ãµÄMFC´®¿Úµ÷ÊÔÉÏλ»úµÄ±àд²½Ö裨¾Ý˵Êǹ¨½¨Î°µÄ½Ì²ÄµÄ£¿£©
µ«ÊÇÔËÐеĸù±¾µÃ²»µ½ÏëÒªµÄ½á¹û£¬±àд²½ÖèÔ­ÎÄÈçÏ£º

1.½¨Á¢ÏîÄ¿£º

´ò¿ªVC£«£«6.0£¬½¨Á¢Ò»¸ö»ùÓÚ¶Ô»°¿òµÄMFCÓ¦ÓóÌÐòSCommTest£¨ÓëÎÒÔ´´úÂëÒ»Ö£¬µÈ»áÄã»á·½±ãÒ»µã£©£»  
   
  2.ÔÚÏîÄ¿ÖвåÈëMSComm¿Ø¼þ   

  Ñ¡ÔñProject²Ëµ¥ÏÂAdd   To   Project×Ӳ˵¥ÖеĠ  Components   and   Controls¡­Ñ¡ÏÔÚµ¯³öµÄ¶Ô»°¿òÖÐË«»÷Registered   ActiveX   ControlsÏÉÔµÈÒ»»á£¬Õâ¸ö¹ý³Ì½ÏÂý£©£¬ÔòËùÓÐ×¢²á¹ýµÄActiveX¿Ø¼þ³öÏÖÔÚÁбí¿òÖС£   Ñ¡ÔñMicrosoft   Communications   Control,   version   6.0£¬£¬µ¥»÷Insert°´Å¥½«Ëü²åÈëµ½ÎÒÃǵÄProjectÖÐÀ´£¬½ÓÊÜȱʡµÄÑ¡Ïî¡££¨Èç¹ûÄãÔڿؼþÁбíÖп´²»µ½Microsoft   Communications   Control,   version   6.0£¬ÄÇ¿ÉÄÜÊÇÄãÔÚ°²×°VC6ʱûÓаÑActiveXÒ»ÏîÑ¡ÉÏ£¬ÖØÐ°²×°VC6£¬Ñ¡ÉÏActiveX¾Í¿ÉÒÔÁË£©£¬     
  ÕâʱÔÚClassViewÊÓ´°ÖоͿÉÒÔ¿´µ½CMSCommÀàÁË£¬£¨×¢Ò⣺´ËÀàÔÚClassWizardÖп´²»µ½£¬Öع¹clwÎļþÒ²Ò»Ñù£©£¬²¢ÇÒÔڿؼþ¹¤¾ßÀ¸ControlsÖгöÏÖÁ˵绰ͼ±ê£¨Èçͼ1Ëùʾ£©£¬ÏÖÔÚÒª×öµÄÊÇÓÃÊó±ê½«´Ëͼ±êÍϵ½¶Ô»°¿òÖУ¬³ÌÐòÔËÐкó£¬Õâ¸öͼ±êÊÇ¿´²»µ½µÄ¡£



3.ÀûÓÃClassWizard¶¨ÒåCMSCommÀà¿ØÖÆ¶ÔÏó     ´ò¿ªClassWizard£­>Member   ViariablesÑ¡Ï£¬Ñ¡ÔñCSCommTestDlgÀ࣬ΪIDC_MSCOMM1Ìí¼Ó¿ØÖƱäÁ¿£ºm_ctrlComm£¬ÕâʱÄã¿ÉÒÔ¿´Ò»¿´£¬ÔÚ¶Ô»°¿òÍ·ÎļþÖÐ×Ô¶¯¼ÓÈëÁË//{{AFX_INCLUDES()     #include   "mscomm.h"     //}}AFX_INCLUDES   £¨ÕâʱÔËÐгÌÐò£¬Èç¹ûÓÐ´í£¬ÄǾÍÔÙ´ÓÍ·¿ªÊ¼£©¡£  
   
  4.ÔÚ¶Ô»°¿òÖÐÌí¼Ó¿Ø¼þ     ÏòÖ÷¶Ô»°¿òÖÐÌí¼ÓÁ½¸ö±à¼­¿ò£¬Ò»¸öÓÃÓÚ½ÓÊÕÏÔʾÊý¾ÝIDΪIDC_EDIT_RXDATA£¬ÁíÒ»¸öÓÃÓÚÊäÈë·¢ËÍÊý¾Ý£¬IDΪIDC_EDIT_TXDATA£¬ÔÙÌí¼ÓÒ»¸ö°´Å¥£¬¹¦ÄÜÊǰ´Ò»´Î¾Í°Ñ·¢Ëͱ༭¿òÖеÄÄÚÈÝ·¢ËÍÒ»´Î£¬½«ÆäIDÉèΪIDC_BUTTON_MANUALSEND¡£±ðÍü¼ÇÁ˽«½ÓÊձ༭¿òµÄProperties£­>StylesÖаÑMiltilineºÍVertical   ScrollÊôÐÔÑ¡ÉÏ£¬·¢Ëͱ༭¿òÈôÄãÏëÊäÈë¶àÐÐÎÄ×Ö£¬Ò²¿ÉÑ¡ÉÏMiltiline¡£  
   
  ÔÙ´ò¿ªClassWizard£­>Member   ViariablesÑ¡Ï£¬Ñ¡ÔñCSCommTestDlgÀ࣬   ÎªIDC_EDIT_RXDATAÌí¼ÓCString±äÁ¿m_strRXData£¬   ÎªIDC_EDIT_TXDATAÌí¼ÓCString±äÁ¿m_strTXData¡£ËµÃ÷£º   m_strRXDataºÍm_strTXData·Ö±ðÓÃÀ´·ÅÈë½ÓÊպͷ¢Ë͵Ä×Ö·ûÊý¾Ý¡£  
                 
  5.Ìí¼Ó´®¿ÚʼþÏûÏ¢´¦Àíº¯ÊýOnComm()   ´ò¿ªClassWizard£­>Message   Maps£¬Ñ¡ÔñÀàCSCommTestDlg£¬Ñ¡ÔñIDC_MSCOMM1£¬Ë«»÷ÏûÏ¢OnComm£¬½«µ¯³öµÄ¶Ô»°¿òÖн«º¯ÊýÃû¸ÄΪOnComm£¬£¨ºÃ¼Ç¶øÒÑ£©OK¡£  



Õâ¸öº¯ÊýÊÇÓÃÀ´´¦Àí´®¿ÚÏûϢʼþµÄ£¬Èçÿµ±´®¿Ú½ÓÊÕµ½Êý¾Ý£¬¾Í»á²úÉúÒ»¸ö´®¿Ú½ÓÊÕÊý¾Ý»º³åÇøÖÐÓÐ×Ö·ûµÄÏûϢʼþ£¬ÎÒÃǸղÅÌí¼ÓµÄº¯Êý¾Í»áÖ´ÐУ¬ÎÒÃÇÔÚOnComm()º¯Êý¼ÓÈëÏàÓ¦µÄ´¦Àí´úÂë¾ÍÄÜʵÏÖ×ÔÒÑÏëÒªµÄ¹¦ÄÜÁË¡£ÇëÄãÔÚº¯ÊýÖмÓÈëÈçÏ´úÂ룺  
   
  void   CSCommTestDlg::OnComm()   
  {  
          //   TODO:   Add   your   control   notification   handler   code   here  
          VARIANT   variant_inp;  
          COleSafeArray   safearray_inp;  
          LONG   len,k;  
          BYTE   rxdata[2048];   //ÉèÖÃBYTEÊý×é   An   8-bit   integerthat   is   not   signed.  
          CString   strtemp;  
          if(m_ctrlComm.GetCommEvent()==2)   //ʼþֵΪ2±íʾ½ÓÊÕ»º³åÇøÄÚÓÐ×Ö·û  
          {                           ////////ÒÔÏÂÄã¿ÉÒÔ¸ù¾Ý×Ô¼ºµÄͨÐÅЭÒé¼ÓÈë´¦Àí´úÂë  
                  variant_inp=m_ctrlComm.GetInput();   //¶Á»º³åÇø  
                  safearray_inp=variant_inp;   //VARIANTÐͱäÁ¿×ª»»ÎªColeSafeArrayÐͱäÁ¿  
                  len=safearray_inp.GetOneDimSize();   //µÃµ½ÓÐЧÊý¾Ý³¤¶È  
                  for(k=0;k<len;k++)  
                          safearray_inp.GetElement(&k,rxdata+k);//ת»»ÎªBYTEÐÍÊý×é  
                  for(k=0;k<len;k++)   //½«Êý×éת»»ÎªCstringÐͱäÁ¿  
                  {  
                          BYTE   bt=*(char*)(rxdata+k);   //×Ö·ûÐÍ  
                          strtemp.Format("%c",bt);   //½«×Ö·ûËÍÈëÁÙʱ±äÁ¿strtemp´æ·Å  
                          m_strRXData+=strtemp;   //¼ÓÈë½ÓÊձ༭¿ò¶ÔÓ¦×Ö·û´®   
                  }  
          }  
          UpdateData(FALSE);   //¸üб༭¿òÄÚÈÝ  
  }  
   
   
  µ½Ä¿Ç°ÎªÖ¹»¹²»ÄÜÔÚ½ÓÊձ༭¿òÖп´µ½Êý¾Ý£¬ÒòΪÎÒÃÇ»¹Ã»Óдò¿ª´®¿Ú£¬µ«ÔËÐгÌÐò²»Ó¦¸ÃÓÐÈκδíÎ󣬲»È»£¬Äã¿Ï¶¨ÄĶùû¿´×Ðϸ£¬ÒòΪÎÒÊÇ´ò¿ªVC6¶ÔÕÕ×Å×öÒ»²½Ð´Ò»Ðеģ¬ÔËÐÐÊÔÊÔ¡£Ã»´í°É£¿ÄÇô×öÏÂÒ»²½£º  
   
  6.´ò¿ª´®¿ÚºÍÉèÖô®¿Ú²ÎÊý     Äã¿ÉÒÔÔÚÄãÐèÒªµÄʱºò´ò¿ª´®¿Ú£¬ÀýÈçÔÚ³ÌÐòÖÐ×öÒ»¸ö¿ªÊ¼°´Å¥£¬Ôڸð´Å¥µÄ´¦Àíº¯ÊýÖдò¿ª´®¿Ú¡£ÏÖÔÚÎÒÃÇÔÚÖ÷¶Ô»°¿òµÄCSCommTestDlg::OnInitDialog()´ò¿ª´®¿Ú£¬¼ÓÈëÈçÏ´úÂ룺  
   
  //   TODO:   Add   extra   initialization   here  
  if(m_ctrlComm.GetPortOpen())  
  m_ctrlComm.SetPortOpen(FALSE);  
   
  m_ctrlComm.SetCommPort(1);   //Ñ¡Ôñcom1  
  if(   !m_ctrlComm.GetPortOpen())  
  m_ctrlComm.SetPortOpen(TRUE);//´ò¿ª´®¿Ú  
  else  
  AfxMessageBox("cannot   open   serial   port";  
   
  m_ctrlComm.SetSettings("9600,n,8,1";   //²¨ÌØÂÊ9600£¬ÎÞУÑ飬8¸öÊý¾Ý룬1¸öֹͣλ   
   
  m_ctrlComm.SetInputMode(1);   //1£º±íʾÒÔ¶þ½øÖÆ·½Ê½¼ìÈ¡Êý¾Ý  
  m_ctrlComm.SetRThreshold(1);   
  //²ÎÊý1±íʾÿµ±´®¿Ú½ÓÊÕ»º³åÇøÖÐÓжàÓÚ»òµÈÓÚ1¸ö×Ö·ûʱ½«Òý·¢Ò»¸ö½ÓÊÕÊý¾ÝµÄOnCommʼþ  
  m_ctrlComm.SetInputLen(0);   //ÉèÖõ±Ç°½ÓÊÕÇøÊý¾Ý³¤¶ÈΪ0  
  m_ctrlComm.GetInput();//ÏÈÔ¤¶Á»º³åÇøÒÔÇå³ý²ÐÁôÊý¾Ý



ÏÖÔÚÄã¿ÉÒÔÊÔÊÔ³ÌÐòÁË£¬½«´®¿ÚÏ߽Ӻú󣨲»»á½Ó£¿È¥¿´¿´ÎÒдµÄ´®¿Ú½ÓÏß»ù±¾·½·¨£©£¬´ò¿ª´®¿Úµ÷ÊÔÖúÊÖ£¬²¢½«´®¿ÚÉèÔÚcom2£¬Ñ¡ÉÏ×Ô¶¯·¢ËÍ£¬Ò²¿ÉÒԵȻáÊÖ¶¯·¢ËÍ¡£ÔÙÖ´ÐÐÄã±àдµÄ³ÌÐò£¬½ÓÊÕ¿òÀïÓ¦¸ÃÓÐÊý¾ÝÏÔʾÁË¡£  
   
  7.·¢ËÍÊý¾Ý     ÏÈΪ·¢ËͰ´Å¥Ìí¼ÓÒ»¸öµ¥»÷ÏûÏ¢¼´BN_CLICKED´¦Àíº¯Êý£¬´ò¿ªClassWizard£­>Message   Maps£¬Ñ¡ÔñÀàCSCommTestDlg£¬Ñ¡ÔñIDC_BUTTON_MANUALSEND£¬Ë«»÷BN_CLICKEDÌí¼ÓOnButtonManualsend()º¯Êý£¬²¢ÔÚº¯ÊýÖÐÌí¼ÓÈçÏ´úÂ룺  
   
  void   CSCommTestDlg::OnButtonManualsend()   
  {  
  //   TODO:   Add   your   control   notification   handler   code   here  
  UpdateData(TRUE);   //¶ÁÈ¡±à¼­¿òÄÚÈÝ  
  m_ctrlComm.SetOutput(COleVariant(m_strTXData));//·¢ËÍÊý¾Ý  
  }  
   
  ÔËÐгÌÐò£¬ÔÚ·¢Ëͱ༭¿òÖÐËæÒâÊäÈëµãʲô£¬µ¥»÷·¢ËͰ´Å¥£¬°¡£¡¿´¿´£¬ÔÚÁíÒ»¶ËµÄ´®¿Úµ÷ÊÔÖúÊÖ£¨»ò±ðµÄµ÷ÊÔ¹¤¾ß£©½ÓÊÕ¿òÀï³öÏÖÁËʲô¡£  
   
  ×îºó˵Ã÷һϣ¬ÓÉÓÚÓõ½VC¿Ø¼þ£¬ÔÚûÓа²×°VCµÄ¼ÆËã»úÉÏÔËÐÐʱҪ´ÓVCÖаÑmscomm32.ocx¡¢msvcrt.dll¡¢mfc42.dll¿½µ½WindowsĿ¼ÏµÄSystem×ÓĿ¼ÖУ¨win2000ΪSystem32¡£



ÔËÐÐÖб¾ÈËÓöϵãÊÔÁË£¬³ÌÐò×ßµ½ÁË variant_inp=m_ctrlComm.GetInput();  ÕâÒ»ÐÐÖ®ºó£¬variant_inpµÃ²»µ½ÊäÈëµÄÊý¾Ý£¬¼Ä´æÆ÷ÀïÃæÏÔʾÊÇÎʺţ¬È»ºóºóÃæµÃµ½µÄlenÊÇ0¡£Ç¿ÐÐÔËÐÐÏÂÈ¥£¬µÃµ½ÁË¡°ÌÌÌÌÌÌÌÌ¡­¡­¡±Ò»ÏµÁÐÂÒÂë
ÍøÉÏÄܰٶȵģ¬ÄÜÊԵķ½·¨¶¼ÊÔÁË£¬Ã»ÓÃ
²»ÖªµÀµ½µ×ÎÊÌâÊdzöÔÚʲôµØ·½£¬ÄÜÀ´¸öÈÈÐĵÄÈË̽ÌÖ°ïæ½â´ðÒ»ÏÂÂ𣿸м¤²»¾¡°¡£¡£¡

» ²ÂÄãϲ»¶

ÒÑÔÄ   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû
Ïà¹Ø°æ¿éÌø×ª ÎÒÒª¶©ÔÄÂ¥Ö÷ fancx µÄÖ÷Ìâ¸üÐÂ
×î¾ßÈËÆøÈÈÌûÍÆ¼ö [²é¿´È«²¿] ×÷Õß »Ø/¿´ ×îºó·¢±í
[¿¼ÑÐ] µ÷¼Á +25 ²»·ê´º 2026-04-07 26/1300 2026-04-12 11:53 by ´óÁ¦Ë®ÊÖÁ¦´óÎÞÇ
[¿¼ÑÐ] 331Çóµ÷¼Á +5 Íõ¹ú˧ 2026-04-11 5/250 2026-04-11 22:56 by Ϫ½§Á÷Ë®
[˶²©¼ÒÔ°] ÓÐûÓÐѧУ²ÄÁÏרҵÊÕ¿çµ÷(Ò»Ö¾Ô¸085410) +6 momo(Éϰ¶°æ) 2026-04-06 9/450 2026-04-11 22:38 by wj165256
[¿¼ÑÐ] 296Çóµ÷¼Á +14 Íô£¡£¿£¡ 2026-04-08 15/750 2026-04-11 20:28 by dongdian1
[¿¼ÑÐ] 269µç×ÓÐÅÏ¢Çóµ÷¼Á£¬¿Éתרҵ +11 ¶À×Ãwl 2026-04-06 11/550 2026-04-11 11:12 by ÄæË®³Ë·ç
[¿¼ÑÐ] 085600²ÄÁÏÓ뻯¹¤329·ÖÇóµ÷¼Á +16 Ò¶zilin 2026-04-10 16/800 2026-04-11 11:04 by may_ÐÂÓî
[¿¼ÑÐ] »¯¹¤Çóµ÷¼Á£¡ +35 RichLi_ 2026-04-06 35/1750 2026-04-11 11:02 by zhq0425
[¿¼ÑÐ] 293Çóµ÷¼Á +6 ÓÂÔ¶¿â°®314 2026-04-08 6/300 2026-04-11 10:08 by zhq0425
[¿¼ÑÐ] ¹ã¶«Ê¡ 085601 329·ÖÇóµ÷¼Á +14 Eddieddd 2026-04-10 14/700 2026-04-11 09:58 by bljnqdcc
[¿¼ÑÐ] 296Çóµ÷¼Á +6 Íô£¡£¿£¡ 2026-04-08 6/300 2026-04-10 11:02 by mattzhming
[¿¼ÑÐ] ¿¼ÑжþÂÖµ÷¼Á +8 ¹ÊÈË?? 2026-04-09 8/400 2026-04-10 09:44 by Çà÷duoduo
[¿¼²©] ²©Ê¿×Ô¼ö +7 ¿É¿ÉСÅÖ 2026-04-08 7/350 2026-04-10 08:28 by kimhero
[¿¼ÑÐ] ¿¼Ñе÷¼Á +13 ±ù±ù£¬£¬£¬ 2026-04-07 13/650 2026-04-09 17:01 by Lilly_Li
[¿¼ÑÐ] 085400µç×ÓÐÅÏ¢Àࣨ´¨´ó¿ØÖƹ¤³Ì£©Çóµ÷¼Á¿É¿çרҵ ÇóÀÏʦÁªÏµ +3 626776879 2026-04-08 3/150 2026-04-09 16:05 by Öí»á·É
[¿¼ÑÐ] Ò»Ö¾Ô¸0807 ÊýÒ»Ó¢Ò» 313 ÓÐûÓжþÂÖµ÷¼Á +11 emokidd 2026-04-08 12/600 2026-04-09 09:24 by wyf236
[¿¼ÑÐ] 285Çóµ÷¼Á +12 AZMK 2026-04-05 18/900 2026-04-08 20:43 by ÄæË®³Ë·ç
[¿¼ÑÐ] 264Çóµ÷¼Á +11 ÂóС¶£µ± 2026-04-07 11/550 2026-04-08 16:05 by Ò»Ö»ºÃ¹û×Ó?
[¿¼ÑÐ] 275 Çóµ÷¼Á +8 Lei812514 2026-04-07 8/400 2026-04-08 12:46 by chemisry
[¿¼ÑÐ] 22408 һ־Ը˫һÁ÷È˹¤ÖÇÄÜ300·Ö ËÄÁù¼¶£¬Êý¾Ý·ÖÎö¹ú½± +4 zzfeng123 2026-04-06 6/300 2026-04-07 21:02 by zzfeng123
[¿¼ÑÐ] Ò»Ö¾Ô¸ºÓ±±¹¤Òµ´óѧ²ÄÁϹ¤³Ì£¬³õÊÔ344Çóר˶µ÷¼Á +6 15933906766 2026-04-05 6/300 2026-04-06 13:21 by Î޼ʵIJÝÔ­
ÐÅÏ¢Ìáʾ
ÇëÌî´¦ÀíÒâ¼û