日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
VS2003模板的下載與使用和注意事項(xiàng)

本文講述VS2003模板的具體細(xì)節(jié),怎樣創(chuàng)建VS2003模板。這些內(nèi)容都是我這些天花了一周的時(shí)間查閱資料并像IT精英學(xué)習(xí)出來(lái)的,中間可能有不少的錯(cuò)誤,歡迎大家指正。下面就說(shuō)明下。

為張家港等地區(qū)用戶提供了全套網(wǎng)頁(yè)設(shè)計(jì)制作服務(wù),及張家港網(wǎng)站建設(shè)行業(yè)解決方案。主營(yíng)業(yè)務(wù)為網(wǎng)站設(shè)計(jì)、成都網(wǎng)站設(shè)計(jì)、張家港網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠(chéng)的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!

VS2003模板升級(jí)的基本過(guò)程如下:

1、首先備份現(xiàn)有的VC程序,備份之后啟動(dòng)VS2005。

2、通過(guò)VS2005打開(kāi)要升級(jí)的解決方案,系統(tǒng)提示自動(dòng)轉(zhuǎn)換,如果VC程序已經(jīng)被嵌入到VSS中,則系統(tǒng)將提示登錄VSS,并且自動(dòng)將解決方案文件和項(xiàng)目文件簽出。(注意選擇備份原來(lái)版本 的解決方案的選項(xiàng)。)

3、一般情況下系統(tǒng)提示成功,可能會(huì)有兩個(gè)警告,可以不予理會(huì)。因?yàn)樯?jí)過(guò)程中僅僅修改了解決方案文件和工程項(xiàng)目文件,所以速度會(huì)很快,C++頭文件和CPP文件都不作任何修改(這和VB6到VB2005的升級(jí)不同),因此速度很快。

4、在VS2005中重新編譯升級(jí)后的程序,很可能出現(xiàn)很多警告和錯(cuò)誤提示,警告可以不予理會(huì),錯(cuò)誤提示必須修改。我所遇到的錯(cuò)誤提示主要有兩種:一種提示是“某個(gè)變量沒(méi)有定義”,另外一種是模板類的消息映射的錯(cuò)誤提示。

先說(shuō)第一種錯(cuò)誤提示,例如如下的兩個(gè)for循環(huán)語(yǔ)句

 
 
  1. for(int i=0;i<10;i++)  
  2. {  
  3. }  
  4. for(i=0;i<100;i++)//此處將提示i沒(méi)有定義  

上面的語(yǔ)句在VS2003中沒(méi)有問(wèn)題,在2005中則是錯(cuò)誤的,2005將i作為第一個(gè)for循環(huán)中的局部變量處理,因此編譯器認(rèn)為第二個(gè)for循環(huán)中的i沒(méi)有定義。這類錯(cuò)誤可能有很多,但是修改起來(lái)比較容易。

VS2003模板第二種錯(cuò)誤是模板類的消息映射宏錯(cuò)誤。我在程序中設(shè)計(jì)了一個(gè)控件模板:

 
 
  1. template  B,class P>class CUniDataCtrl : public B,public CUniDataBaseCtrl  #t#

則直接實(shí)現(xiàn)了原來(lái)幾十行代碼實(shí)現(xiàn)的功能。

上述的模板類消息映射宏我是參考BEGIN_TEMPLATE_MESSAGE_MAP(theClass, type_name, baseClass)編寫(xiě)的,該宏只支持一個(gè)模板參數(shù),而我定義的模板中需要兩個(gè)模板參數(shù),因此,我自己擴(kuò)充了一下VS2003模板的內(nèi)容。關(guān)于BEGIN_TEMPLATE_MESSAGE_MAP的幫助在MSDN中好像沒(méi)有,在afxwin.h中定義了:

 
 
  1. #define BEGIN_TEMPLATE_MESSAGE_MAP_EX(theClass, type_name1,type_name2,  baseClass)     
  2.  PTM_WARNING_DISABLE                
  3.  template < typename type_name1,typename type_name2 >             
  4.  const AFX_MSGMP* theClass< type_name1 ,type_name2 >::GetMessageMap() const     
  5.   { return GetThisMessageMap(); }            
  6.  template < typename type_name1 ,typename type_name2>             
  7.  const AFX_MSGMAP* PASCAL theClass< type_name1 ,type_name2  >::GetThisMessageMap()    
  8.  {                    
  9.   typedef theClass< type_name1 ,type_name2  > ThisClass;         
  10.   typedef baseClass TheBaseClass;            
  11.   static const AFX_MSGMAP_ENTRY _messageEntries[] =    
  12.   {  
  13.  
  14. BEGIN_TEMPLATE_MESSAGE_MAP_EX(CUniDataCtrl,B,P ,B)  
  15.  ON_WM_LBUTTONDOWN()  
  16.  ON_WM_RBUTTO  
  17.  
  18. #define DECLARE_MESSAGE_MAP()   
  19. protected:   
  20.  static const AFX_MSGMAP* PASCAL GetThisMessageMap();   
  21.  virtual const AFX_MSGMAP* GetMessageMap() const;   
  22.  
  23. #define BEGIN_TEMPLATE_MESSAGE_MAP(theClass, type_name, baseClass)     
  24.  PTM_WARNING_DISABLE                
  25.  template < typename type_name >             
  26.  const AFX_MSGMAP* theClass< type_name >::GetMessageMap() const     
  27.   { return GetThisMessageMap(); }            
  28.  template < typename type_name >             
  29.  const AFX_MSGMAP* PASCAL theClass< type_name >::GetThisMessageMap()    
  30.  {                    
  31.   typedef theClass< type_name > ThisClass;         
  32.   typedef baseClass TheBaseClass;            
  33.   static const AFX_MSGMAP_ENTRY _messageEntries[] =       
  34.   {  
  35. #define BEGIN_MESSAGE_MAP(theClass, baseClass)   
  36.  PTM_WARNING_DISABLE   
  37.  const AFX_MSGMAP* theClass::GetMessageMap() const   
  38.   { return GetThisMessageMap(); }   
  39.  const AFX_MSGMAP* PASCAL theClass::GetThisMessageMap()   
  40.  {   
  41.   typedef theClass ThisClass;           
  42.   typedef baseClass TheBaseClass;  
  43.   static const AFX_MSGMAP_ENTRY _messageEntries[] =    
  44.   {  
  45. #define END_MESSAGE_MAP()   
  46.   {0, 0, 0, 0, AfxSig_end, (AFX_PMSG)0 }   
  47.  };   
  48.   static const AFX_MSGMAP messageMap =   
  49.   { &TheBaseClass::GetThisMessageMap, &_messageEntries[0] };   
  50.   return &messageMap;  
  51.  }     
  52.  PTM_WARNING_RESTORE  

名稱欄目:VS2003模板的下載與使用和注意事項(xiàng)
文章起源:http://www.5511xx.com/article/ccsphpp.html