锘??xml version="1.0" encoding="utf-8" standalone="yes"?>精品久久久无码21p发布,久久久久AV综合网成人,亚洲午夜久久久久妓女影院http://www.shnenglu.com/kusamba/archive/2011/05/24/147010.htmliKusambaiKusambaTue, 24 May 2011 02:06:00 GMThttp://www.shnenglu.com/kusamba/archive/2011/05/24/147010.htmlhttp://www.shnenglu.com/kusamba/comments/147010.htmlhttp://www.shnenglu.com/kusamba/archive/2011/05/24/147010.html#Feedback1http://www.shnenglu.com/kusamba/comments/commentRss/147010.htmlhttp://www.shnenglu.com/kusamba/services/trackbacks/147010.htmlclass AObj;

typedef int (AObj::*pfun)();

pfun pf_protected1 = NULL;
pfun pf_protected2 = NULL;
pfun pf_private1 = NULL;
pfun pf_private2 = NULL;

class AObj
{
public:
聽聽聽 AObj(){};

聽聽聽 static int a_static_fun()
聽聽聽 {
聽聽聽聽聽聽聽 pf_protected1 = &AObj::a_protected_fun1;
聽聽聽聽聽聽聽 pf_protected2 = &AObj::a_protected_fun2;

聽聽聽聽聽聽聽 pf_private1 = &AObj::a_private_fun1;
聽聽聽聽聽聽聽 pf_private2 = &AObj::a_private_fun2;
聽聽聽聽聽聽聽 return -1;
聽聽聽 }

聽聽聽 int a_public_fun1()
聽聽聽 {
聽聽聽聽聽聽聽 return 0;
聽聽聽 }
聽聽聽 int a_public_fun2()
聽聽聽 {
聽聽聽聽聽聽聽 return 1;
聽聽聽 }
protected:

聽聽聽 int a_protected_fun1()
聽聽聽 {
聽聽聽聽聽聽聽 return 2;
聽聽聽 }

聽聽聽 int a_protected_fun2()
聽聽聽 {
聽聽聽聽聽聽聽 return 3;
聽聽聽 }
private:
聽聽聽 int a_private_fun1()
聽聽聽 {
聽聽聽聽聽聽聽 return 4;
聽聽聽 }
聽聽聽 int a_private_fun2()
聽聽聽 {
聽聽聽聽聽聽聽 return 5;
聽聽聽 }
};


int test1(char* p);
int test2(char* p);

int test1(char* p)
{
聽聽聽 test2(p);

聽聽聽 return 1;
}

int test2(char* p)
{
聽聽聽 for (int i = 0; i < 172; i++)
聽聽聽 {
聽聽聽聽聽聽聽 *p++ = '\0';
聽聽聽 }

聽聽聽 return 0;
}


int _tmain(int argc, _TCHAR* argv[])
{
聽聽聽 AObj obj;

聽聽聽 AObj::a_static_fun();

聽聽聽 printf("obj: %p\n", &obj);
聽聽聽 printf("AObj::a_static_fun %p\n", &AObj::a_static_fun);

聽聽聽 printf("AObj::a_public_fun1 %p\n", &AObj::a_public_fun1);
聽聽聽 printf("AObj::a_public_fun2 %p\n", &AObj::a_public_fun2);

聽聽聽 printf("AObj::a_protected_fun1 %p\n", pf_protected1);
聽聽聽 printf("AObj::a_protected_fun2 %p\n", pf_protected2);

聽聽聽 printf("AObj::a_private_fun1 %p\n", pf_private1);
聽聽聽 printf("AObj::a_private_fun2 %p\n", pf_private2);

聽聽聽 //char szbuf[2];
聽聽聽 //sprintf(szbuf, "%d", 3.54f);

聽聽聽 //test1(szbuf);


聽return 0;
}



iKusamba 2011-05-24 10:06 鍙戣〃璇勮
]]>
windows涓嬪啓鐨勪唬鐮侊紝linux涓嬬紪璇戯紝濡備綍瑙e喅warning: no newline at end of file?http://www.shnenglu.com/kusamba/archive/2011/05/11/146160.htmliKusambaiKusambaWed, 11 May 2011 01:23:00 GMThttp://www.shnenglu.com/kusamba/archive/2011/05/11/146160.htmlhttp://www.shnenglu.com/kusamba/comments/146160.htmlhttp://www.shnenglu.com/kusamba/archive/2011/05/11/146160.html#Feedback6http://www.shnenglu.com/kusamba/comments/commentRss/146160.htmlhttp://www.shnenglu.com/kusamba/services/trackbacks/146160.html

浠婂ぉ鍐欎簡涓孌典唬鐮? 鏄湪Windows涓嬬紪杈戠殑, 淇濆瓨鍚庢斁鍦╨inux緋葷粺涓嬬紪璇?

gcc鍜宑c閮戒駭鐢熶互涓嬬殑璀﹀憡:
a.h:1:2: warning: no newline at end of file

鍚庢潵鍙戠幇瑙e喅榪欎釜闂浜х敓鐨勫師鍥犳槸婧愭枃浠剁殑鏈鍚庝竴琛屾病鏈夊洖杞︾閫犳垚鐨? 瑙e喅鐨勫姙娉曞緢綆鍗? 鍦ㄦ渶鍚庝竴琛屾暡涓涓洖杞? 鐒跺悗淇濆瓨, 閲嶆柊緙栬瘧.



iKusamba 2011-05-11 09:23 鍙戣〃璇勮
]]>
MSDN鏃犳硶鏄劇ず欏甸潰鐨勮В鍐?/title><link>http://www.shnenglu.com/kusamba/archive/2011/01/13/138488.html</link><dc:creator>iKusamba</dc:creator><author>iKusamba</author><pubDate>Thu, 13 Jan 2011 14:48:00 GMT</pubDate><guid>http://www.shnenglu.com/kusamba/archive/2011/01/13/138488.html</guid><wfw:comment>http://www.shnenglu.com/kusamba/comments/138488.html</wfw:comment><comments>http://www.shnenglu.com/kusamba/archive/2011/01/13/138488.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/kusamba/comments/commentRss/138488.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/kusamba/services/trackbacks/138488.html</trackback:ping><description><![CDATA[<font class=Apple-style-span color=#333333 face="Georgia, 'Times New Roman', Times, san-serif"><span style="LINE-HEIGHT: 25px; FONT-SIZE: 14px" class=Apple-style-span>鐥囩姸錛?/span></font><br><font class=Apple-style-span color=#333333 face="Georgia, 'Times New Roman', Times, san-serif"><span style="LINE-HEIGHT: 25px; FONT-SIZE: 14px" class=Apple-style-span>MSDN鏃犳硶姝e父鏄劇ず欏甸潰錛岀洰褰曟樉紺烘甯搞傛彁紺虹綉欏甸敊璇紒</span></font><br><br><font class=Apple-style-span color=#333333 face="Georgia, 'Times New Roman', Times, san-serif"><span style="LINE-HEIGHT: 25px; FONT-SIZE: 14px" class=Apple-style-span>cmd鍒板懡浠よ鎵ц濡備笅鍛戒護(hù)</span></font><br><font class=Apple-style-span color=#333333 face="Georgia, 'Times New Roman', Times, san-serif"><span style="LINE-HEIGHT: 25px; FONT-SIZE: 14px" class=Apple-style-span>regsvr32 "C:\Program Files\Common Files\Microsoft Shared\Help\<span style="WIDOWS: 2; TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: medium Simsun; WHITE-SPACE: normal; ORPHANS: 2; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" class=Apple-style-span><span style="LINE-HEIGHT: 25px; FONT-FAMILY: Georgia, 'Times New Roman', Times, san-serif; COLOR: rgb(51,51,51); FONT-SIZE: 14px" class=Apple-style-span>hxds.dll"</span></span></span></font></span></span> <img src ="http://www.shnenglu.com/kusamba/aggbug/138488.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/kusamba/" target="_blank">iKusamba</a> 2011-01-13 22:48 <a href="http://www.shnenglu.com/kusamba/archive/2011/01/13/138488.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>綾誨瀷媯嫻嬪拰鏍規(guī)嵁緇撴瀯浣撲腑鐨勫彉閲忓湴鍧鍙栫粨鏋勪綋鍦板潃http://www.shnenglu.com/kusamba/archive/2010/12/28/137628.htmliKusambaiKusambaTue, 28 Dec 2010 15:51:00 GMThttp://www.shnenglu.com/kusamba/archive/2010/12/28/137628.htmlhttp://www.shnenglu.com/kusamba/comments/137628.htmlhttp://www.shnenglu.com/kusamba/archive/2010/12/28/137628.html#Feedback0http://www.shnenglu.com/kusamba/comments/commentRss/137628.htmlhttp://www.shnenglu.com/kusamba/services/trackbacks/137628.html璇峰悇浣嶄笉鍚濇寚鏁欙紝璋㈣阿錛?br>
typeof.h:
 1 /************************************************************************
 2 * Detect a variable's type or kind
 3 * by kusamba@126.com 2010-12-28
 4 */
 5 #pragma once
 6 
 7 #include <typeinfo.h>
 8 #include <string.h>
 9 #include <assert.h>
10 
11 #ifdef  __cplusplus
12 
13 /** detect static type/class */
14 #define IS_TYPE_OF(TYPE, variable)    assert( 0 == _stricmp( typeid(TYPE).name(), typeid(variable).name() ) )
15 
16 /** detect polymorphic type */
17 #define IS_KIND_OF(TYPE, ptr)        assert( NULL != dynamic_cast<TYPE*>(ptr) )
18 
19 #else
20 
21 /** detect static type/class */
22 #define IS_TYPE_OF(TYPE, variable)    assert( 0 == _stricmp( typeid(TYPE).name(), typeid(variable).name() ) )
23 
24 /** detect polymorphic type */
25 #define IS_KIND_OF(TYPE, ptr)        assert( 0 && "C Not Support Inheritance!" )
26 
27 #endif

containerof.h
 1 /************************************************************************
 2 * Obtain the struct/class address by it's member address
 3 * by Kusamba@126.com 2010-12-28
 4 */
 5 #pragma once
 6 
 7 #include <stddef.h>
 8 
 9 /** Linux Kernel.h GCC Define */
10 /**
11 #define container_of(ptr, type, member) ({                    \
12     const typeof( ((type *)0)->member ) *__mptr = (ptr);    \
13     (type *)( (char *)__mptr - offsetof(type,member) );})
14 */
15 
16 #ifdef __cplusplus
17 
18 #ifdef  _WIN64
19 #define CONTAINER_OF(ptr, TYPE, MEMBER)    reinterpret_cast<TYPE*>( (ptrdiff_t)( reinterpret_cast<char*>(ptr) - offsetof(TYPE, MEMBER) ) )
20 #else
21 #define CONTAINER_OF(ptr, TYPE, MEMBER)    reinterpret_cast<TYPE*>( ( reinterpret_cast<char*>(ptr) - offsetof(TYPE, MEMBER) ) )
22 #endif
23 
24 #else
25 
26 #ifdef  _WIN64
27 #define CONTAINER_OF(ptr, TYPE, MEMBER)    (TYPE*)( (ptrdiff_t)( (char*)(ptr) - offsetof(TYPE, MEMBER) ) )
28 #else
29 #define CONTAINER_OF(ptr, TYPE, MEMBER)    (TYPE*)( ( (char*)(ptr) - offsetof(TYPE, MEMBER) ) )
30 #endif
31 
32 #endif    /* __cplusplus */
33 

嫻嬭瘯浠g爜錛?br>
 1 #include "stdafx.h"
 2 #include "typeof.h"
 3 #include "containerof.h"
 4 
 5 //////////////////////////////////////////////////////////////////////////
 6 // Test Kind/Type of
 7 //////////////////////////////////////////////////////////////////////////
 8 namespace _typeof_
 9 {
10     class CA {};
11     class CB {};
12 
13     struct SA {};
14     struct SB {};
15 
16     class CP {};
17     class CC : public CP {};
18 
19     void Test()
20     {
21         int int_a;
22         IS_TYPE_OF(int, int_a);
23         //IS_TYPE_OF(float, int_a);
24 
25         int* pint_a;
26         IS_TYPE_OF(int*, pint_a);
27         //IS_TYPE_OF(int, pint_a);
28         //IS_TYPE_OF(float*, pint_a);
29         //IS_TYPE_OF(float, pint_a);
30 
31         CA ca;
32         CA* pca;
33         IS_TYPE_OF(CA, ca);
34         IS_TYPE_OF(CA*, pca);
35         //IS_TYPE_OF(CA, pca);
36 
37         //IS_TYPE_OF(CB, ca);
38 
39         IS_KIND_OF(CA, &ca);
40 
41         CP parent;
42         CC child;
43         IS_TYPE_OF(CP, parent);
44         //IS_TYPE_OF(CC, parent);
45         //IS_TYPE_OF(CP, child);
46         IS_TYPE_OF(CC, child);
47 
48         IS_KIND_OF(CP, &parent);
49         //IS_KIND_OF(CC, &parent);
50         IS_KIND_OF(CP, &child);
51         IS_KIND_OF(CC, &child); 
52 
53         printf("type_of Done!\n");
54     }
55 }//namespace _typeof_
56 
57 //////////////////////////////////////////////////////////////////////////
58 // container of test
59 //////////////////////////////////////////////////////////////////////////
60 namespace _container_of_
61 {
62     struct SA 
63     {
64         int m_iA;
65     };
66 
67     struct SB 
68     {
69         int m_iB;
70         SA  m_sa;
71     };
72 
73     void Test()
74     {
75         SB val;
76 
77         /**error C2039: 'm_iA' : is not a member of '_container_of_::SB'*/
78         /**not support nesting*/
79         //SB* pSB = CONTAINER_OF(&val.m_sa.m_iA, SB, m_iA);
80         /**end*/
81 
82         SB* pSB = CONTAINER_OF(&val.m_iB, SB, m_iB);
83 
84         IS_TYPE_OF(SB*, pSB);
85 
86         printf("container_of Done!\n");
87     }
88 }//_container_of_
89 
90 int _tmain(int argc, _TCHAR* argv[])
91 {
92     _typeof_::Test();
93     _container_of_::Test();
94 
95     return 0;
96 }
97 



iKusamba 2010-12-28 23:51 鍙戣〃璇勮
]]>
STL瀹瑰櫒浣跨敤涔嬩簩錛歞equehttp://www.shnenglu.com/kusamba/archive/2010/09/17/126895.htmliKusambaiKusambaFri, 17 Sep 2010 09:19:00 GMThttp://www.shnenglu.com/kusamba/archive/2010/09/17/126895.htmlhttp://www.shnenglu.com/kusamba/comments/126895.htmlhttp://www.shnenglu.com/kusamba/archive/2010/09/17/126895.html#Feedback0http://www.shnenglu.com/kusamba/comments/commentRss/126895.htmlhttp://www.shnenglu.com/kusamba/services/trackbacks/126895.html闃呰鍏ㄦ枃

iKusamba 2010-09-17 17:19 鍙戣〃璇勮
]]>
STL瀹瑰櫒浣跨敤涔嬩竴錛歷ectorhttp://www.shnenglu.com/kusamba/archive/2010/09/16/126786.htmliKusambaiKusambaThu, 16 Sep 2010 09:22:00 GMThttp://www.shnenglu.com/kusamba/archive/2010/09/16/126786.htmlhttp://www.shnenglu.com/kusamba/comments/126786.htmlhttp://www.shnenglu.com/kusamba/archive/2010/09/16/126786.html#Feedback0http://www.shnenglu.com/kusamba/comments/commentRss/126786.htmlhttp://www.shnenglu.com/kusamba/services/trackbacks/126786.html闃呰鍏ㄦ枃

iKusamba 2010-09-16 17:22 鍙戣〃璇勮
]]>
[鍘熷垱]涓涓湁鐢ㄧ殑Date/DateTime綾?/title><link>http://www.shnenglu.com/kusamba/archive/2010/09/02/125648.html</link><dc:creator>iKusamba</dc:creator><author>iKusamba</author><pubDate>Thu, 02 Sep 2010 08:28:00 GMT</pubDate><guid>http://www.shnenglu.com/kusamba/archive/2010/09/02/125648.html</guid><wfw:comment>http://www.shnenglu.com/kusamba/comments/125648.html</wfw:comment><comments>http://www.shnenglu.com/kusamba/archive/2010/09/02/125648.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.shnenglu.com/kusamba/comments/commentRss/125648.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/kusamba/services/trackbacks/125648.html</trackback:ping><description><![CDATA[     鎽樿: 榪欓噷璁捐浜嗕竴涓被錛岄氳繃4涓瓧鑺傚瓨鍌ㄦ棩鏈燂紝8涓瓧鑺傚瓨鍌―ateTime,騫舵坊鍔犱簡涓浜涜窡鏃墮棿鏃ユ湡鐩稿叧鐨勫嚱鏁幫紝 濡傦細(xì)鏄熸湡鍑犳煡璇紝鐗瑰畾鏃ユ湡涔嬪悗澶氬皯澶╂槸鍑犲彿錛?涓や釜鏃ユ湡涔嬮棿鐩擱殧澶氬皯澶╃瓑絳夈傚浜庝竴鑸殑鐢ㄩ旓紝鍩烘湰涓婂鐢ㄤ簡澶存枃浠訛細(xì) Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter....  <a href='http://www.shnenglu.com/kusamba/archive/2010/09/02/125648.html'>闃呰鍏ㄦ枃</a><img src ="http://www.shnenglu.com/kusamba/aggbug/125648.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/kusamba/" target="_blank">iKusamba</a> 2010-09-02 16:28 <a href="http://www.shnenglu.com/kusamba/archive/2010/09/02/125648.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>鍒╃敤瀹忓疄鐜扮殑涓涓猻ingletonhttp://www.shnenglu.com/kusamba/archive/2010/08/31/125409.htmliKusambaiKusambaTue, 31 Aug 2010 07:56:00 GMThttp://www.shnenglu.com/kusamba/archive/2010/08/31/125409.htmlhttp://www.shnenglu.com/kusamba/comments/125409.htmlhttp://www.shnenglu.com/kusamba/archive/2010/08/31/125409.html#Feedback10http://www.shnenglu.com/kusamba/comments/commentRss/125409.htmlhttp://www.shnenglu.com/kusamba/services/trackbacks/125409.html浠g爜錛歶niobj.h
 1 /************************************************************************
 2 *
 3 * Created by kusamba@126.com at 2009-2-12 16:37
 4 */
 5 
 6 #ifndef _uniobj_23593953_h_
 7 #define _uniobj_23593953_h_
 8 
 9 #include <WTypes.h>
10 #include <assert.h>
11 
12 /**
13 * Universal Object Declare
14 */
15 #define UNIOBJ_DECL(theClass)                \
16   public:                                    \
17   static theClass* Get()                     \
18   {                                          \
19     assert(NULL != ms_pk##theClass);         \
20     return ms_pk##theClass;                  \
21   }                                          \
22   static theClass* Create()                  \
23   {                                          \
24     assert(NULL == ms_pk##theClass);         \
25     return ms_pk##theClass = new theClass(); \
26   }                                          \
27   static void Destroy()                      \
28   {                                          \
29     if (NULL != ms_pk##theClass)             \
30     {                                        \
31       delete ms_pk##theClass;                \
32       ms_pk##theClass = NULL;                \
33     }                                        \
34   }                                          \
35   publicbool Initialize();                 \
36   private:                                   \
37     theClass();                              \
38     virtual ~theClass();                     \
39     static theClass* ms_pk##theClass;
40 
41 /**
42 * Universal Object Implement
43 */
44 #define UNIOBJ_IMP(theClass)                \
45     theClass* theClass::ms_pk##theClass = NULL;
46 
47 
48 #endif//_uniobj_23593953_h_

濡備綍浣跨敤錛?br>澶存枃浠訛細(xì)
1#include "uniobj.h"
2
3class ATestSingleTon
4{
5public:
6
7UNIOBJ_DECL(ATestSingleTon)
8}

cpp鏂囦歡錛?br>
1UNIOBJ_IMP(ATestSingleTon)
2
     ATestSingleTon::ATestSingleTon()
    {}

    ATestSingleTon::~ATestSingleTon()
    {}

3bool ATestSingleTon::Initialize()
4{
5    return true;
6}

main.cpp
 1int main()
 2{
 3  ATestSingleTon* pk = ATestSingleTon::Create();
 4  if (NULL == pk)
 5  {
 6    return 0;
 7  }

 8
 9  //mainloop
10
11  ATestSingleTon::Destroy();
12}

鍒嗘瀽錛?br>1錛宻ingleton鐨勬瀯寤哄湪紼嬪簭鍏ュ彛錛屾瀽鏋勫湪紼嬪簭鐨勭粨灝撅紝鍙互閬垮厤鐩稿綋澶氱殑澶氱嚎紼嬮棶棰?br>2錛岃繖閲岀殑singleton瀵硅薄鍧囦負(fù)紼嬪簭蹇呴』瑕佺敤鍒扮殑瀵硅薄錛岃窡浼犵粺singleton瀹氫箟鏈変簺鍑哄叆
3錛屽畾涔変簡initialize()鍑芥暟鍙負(fù)瀵硅薄鐨勫垵濮嬪寲鎻愪緵涓涓帴鍙o紝濡傛灉涓嶉渶瑕佸彲浠ョ洿鎺eturn true


PS錛氬彲浠ュ弬鑰冪湅鐪嬪涓嬭祫鏂?br>1錛岀粏璇碨ingleton妯″紡錛氬垱寤恒佸綰跨▼涓庨攢姣?http://developer.51cto.com/art/200908/143492.htm

iKusamba 2010-08-31 15:56 鍙戣〃璇勮
]]>
_MSC_VER 涓巚shttp://www.shnenglu.com/kusamba/archive/2010/08/31/125405.htmliKusambaiKusambaTue, 31 Aug 2010 07:25:00 GMThttp://www.shnenglu.com/kusamba/archive/2010/08/31/125405.htmlhttp://www.shnenglu.com/kusamba/comments/125405.htmlhttp://www.shnenglu.com/kusamba/archive/2010/08/31/125405.html#Feedback0http://www.shnenglu.com/kusamba/comments/commentRss/125405.htmlhttp://www.shnenglu.com/kusamba/services/trackbacks/125405.html
_MSC_VER 瀹氫箟緙栬瘧鍣ㄧ殑鐗堟湰銆?br>
涓嬮潰鏄竴浜涚紪璇戝櫒鐗堟湰鐨刜MSC_VER鍊?br> 
銆銆MS VC++ 9.0 _MSC_VER = 1500
    銆MS VC++ 8.0 _MSC_VER = 1400 銆銆
        MS VC++ 7.1 _MSC_VER = 1310 銆銆
        MS VC++ 7.0 _MSC_VER = 1300 銆銆
        MS VC++ 6.0 _MSC_VER = 1200 銆銆
        MS VC++ 5.0 _MSC_VER = 1100

緇欎竴孌佃窡緙栬瘧鍣ㄧ浉鍏崇殑浠g爜錛?br>

 1char* UStrcpy(char* pcDest, size_t stDestSize, const char* pcSrc)
 2{
 3#if _MSC_VER >= 1400
 4    strcpy_s(pcDest, stDestSize, pcSrc);
 5    return pcDest;
 6#else // #if _MSC_VER >= 1400
 7
 8    _ASSERT(stDestSize != 0);
 9
10    size_t stSrcLen = strlen(pcSrc);
11    _ASSERT(stDestSize > stSrcLen); // > because need null character
12
13    size_t stWrite;
14
15    if (stDestSize <= stSrcLen) // stDestSize < stSrcLen + 1
16        stWrite = stDestSize;
17    else 
18        stWrite = stSrcLen + 1;
19
20    char *pcResult = strncpy(pcDest, pcSrc, stWrite);
21    pcResult[stDestSize - 1= '\0';
22    return pcResult;
23#endif // #if _MSC_VER >= 1400
24}

 

璇存槑錛?/strong>
Visual C++ 1.0錛岄泦鎴愪簡MFC 2.0錛屾槸Visual C++絎竴浠g増鏈紝1992騫存帹鍑猴紝鍙悓鏃舵敮鎸?6浣嶅鐞嗗櫒涓?2浣嶅鐞嗗櫒鐗堬紝鍙畻鏄疢icrosoft C/C++ 7.0鐨勬洿鏂扮増鏈?br>
Visual C++ 1.5錛岄泦鎴愪簡MFC 2.5錛屽鍔犱簡“鐩爣鏂囦歡閾炬帴宓屽叆 (OLE)2.0鍜屾敮鎸丮FC鐨勫紑鏀懼紡鏁版嵁搴撻摼鎺ワ紙ODBC錛夈傝繖涓増鏈彧鏈?6浣嶇殑錛屼篃鏄涓涓互CD-ROM涓鴻蔣浠惰澆浣撶殑鐗堟湰銆傝繖涓増鏈篃娌℃湁鎵璋?#8220;鏍囧噯鐗?#8221;銆傚畠鏄渶鍚庝竴涓敮鎸?6浣嶈蔣浠剁紪紼嬬殑杞歡錛屼篃鏄涓涓敮鎸佸熀浜巟86鏈哄櫒鐨?2浣嶇紪紼嬭蔣浠躲?br>
Visual C++ 2.0錛岄泦鎴愪簡MFC 3.0錛岀涓涓彧鍙戣32浣嶇殑鐗堟湰銆傝繖涓増鏈彁鍓嶅彂琛屼簡錛屽嚑涔庢垚浜嗕竴涓?#8220;涓㈠け鐨勭増鏈?#8221;銆傝繖鏄洜涓洪偅涓椂鍊橶indows 95錛堝紑鍙戜唬鐮佷負(fù)"Chicago"錛夎繕娌℃湁鍙戣錛岃學(xué)indows NT鍙堝彧鍗犳湁寰堝皬鐨勫競鍦轟喚棰濄傝鐗堟湰鐢ㄦ埛鍙互閫氳繃寰蔣鍏徃鐨勮闃呮湇鍔★紙Microsoft Subscription Service錛夊崌綰ц嚦2.1鍜?.2鐗堟湰銆傚井杞叕鍙稿湪榪欎釜鐗堟湰涓泦鎴愬茍鍗囩駭浜哣isual C++ 1.5錛屼綔涓?.0鐗堟湰錛圴isual C++ 1.5鍗囩駭鍚庣増鏈彿錛?.51錛変互鍙?.1鐗堟湰錛圴isual C++ 1.5鍗囩駭鍚庣増鏈彿錛?.52錛夌殑涓閮ㄥ垎銆俈isual C++ 2.x闄勫甫浜?6浣嶅拰32浣嶇増鏈殑CDK錛屽悓鏃舵敮鎸乄in32s鐨勫紑鍙戙俈isual C++ 2.2鍙?qiáng)鍏跺悗绠嬬増鏈笉鍐嶅崌珩擵isual C++ 1.5錛堝敖綆″畠涓鐩磋闆嗘垚鑷砎isual C++ 4.x錛夈傚敖綆″嚭鐢熺殑姣擶indows 95鏃╋紝榪欎釜鐗堟湰鐨勫彂琛屾棩鏈熻繕鏄潪甯告帴榪慦indows 95錛屽彲鏄綋Windows 95鍙戣鏃訛紝Visual C++ 4.0涔熷凡緇忓彂琛屼簡銆傚洜姝ゅ緢澶氱▼搴忓紑鍙戣呯洿鎺ヤ粠1.x榪囨浮鍒?.0錛屾妸2.x璺寵繃鍘諱簡銆?br>
Visual C++ 4.0錛岄泦鎴愪簡MFC 4.0錛岃繖涓増鏈槸涓撻棬涓篧indows 95浠ュ強(qiáng)Windows NT璁捐鐨勩傜敤鎴峰彲浠ラ氳繃寰蔣鍏徃鐨勮闃呮湇鍔★紙Microsoft Subscription Service錛夊崌綰ц嚦4.1鍜?.2鐗堟湰錛堟鐗堟湰涓嶅啀鏀寔Win32s寮鍙戯級銆?br>
Visual C++ 5.0錛岄泦鎴愪簡MFC 4.21錛屾槸4.2鐗堜互鏉ユ瘮杈冨ぇ鐨勪竴嬈″崌綰с?br>
Visual C++ 6.0錛岄泦鎴愪簡MFC 6.0錛屼簬1998鍙戣銆傚彂琛岃嚦浠婁竴鐩磋騫挎硾鍦扮敤浜庡ぇ澶у皬灝忕殑欏圭洰寮鍙戙備絾鏄紝榪欎釜鐗堟湰鍦╓indows XP涓嬭繍琛屼細(xì)鍑虹幇闂錛屽挨鍏舵槸鍦ㄨ皟璇曟ā寮忕殑鎯呭喌涓嬶紙渚嬪錛氶潤鎬佸彉閲忕殑鍊煎茍涓嶄細(xì)鏄劇ず錛夈傝繖涓皟璇曢棶棰樺彲浠ラ氳繃鎵撲竴涓彨“Visual C++ 6.0 Processor Pack”鐨勮ˉ涓佹潵瑙e喅銆傚鎬殑鏄紝榪欎釜緗戦〉寮鴻皟鐢ㄦ埛涔熷繀欏昏繍琛學(xué)indows 98銆乄indows NT 4.0銆佹垨Windows 2000銆?br>
Visual C++ .NET 2002錛堜篃鍗砎isual C++ 7.0錛夛紝浜?002騫村彂琛岋紝闆嗘垚浜哅FC 7.0錛屾敮鎸侀摼鎺ユ椂浠g爜鐢熸垚鍜岃皟璇曡繍琛屾椂媯鏌ャ傝繖涓増鏈繕闆嗘垚浜哅anaged Extension for C++錛屼互鍙?qiáng)涓涓叏鏂扮殑鐢ㄦ埛鐣岄潰錛堜笌Visual Basic鍜孷isual C#鍏辯敤錛夈傝繖涔熸槸涓轟粈涔圴isual C++ 6.0浠嶇劧琚箍娉涗嬌鐢ㄧ殑涓涓富瑕佸師鍥犮?br>
Visual C++ .NET 2003錛堜篃鍗砎isual C++ 7.1錛夛紝闆嗘垚浜哅FC 7.1錛屼簬2003騫村彂琛岋紝鏄Visual C++ .NET 2002鐨勪竴嬈¢噸澶у崌綰с?br>eMbedded Visual C++錛岀敤浜嶹indows CE鎿嶄綔緋葷粺銆俈isual C++浣滀負(fù)涓涓嫭绔嬬殑寮鍙戠幆澧冭Microsoft Visual Studio 2005鎵鏇夸唬銆?br>
Visual C++ 2005錛堜篃鍗砎isual C++ 8.0錛夛紝闆嗘垚浜哅FC 8.0錛屼簬2005騫?1鏈堝彂甯冦傝繖涓増鏈紩榪涗簡瀵笴++/CLI璇█鍜孫penMP鐨勬敮鎸併?br>
Visual C++ 2008錛堜篃鍗砎isual C++ 9.0錛夛紝浜?007騫?1鏈堝彂甯冦傝繖涓増鏈敮鎸?NET 3.5銆?br>
Visual C++ 2010錛堜篃鍗砎isual C++ 10.0錛夛紝浜?010騫村彂甯冿紝鏄洰鍓嶆渶鏂扮殑鐗堟湰銆俈isual C++寮鍙戝洟闃熻冭檻浣跨敤SQL Server Compact鏍煎紡鐨勬暟鎹簱鏉ュ瓨鍌ㄦ簮鐮佺殑鐩稿叧淇℃伅[1].鏈増涔熷姞鍏ヤ簡鐜頒唬鍖栫殑C++騫惰榪愮畻搴?Parallel Patterns Library錛岄儴鍒嗘敮鎸丆++0x銆傛湰鐗堝緩鏋勪簬.NET 4.0涔嬩笂錛屼絾浠嶆敮鎸佹満鍣ㄧ爜鐨勭紪璇戙?/p>

iKusamba 2010-08-31 15:25 鍙戣〃璇勮
]]>
[鍘熷垱]Windows緋葷粺涓嬪浣曚嬌鐢╩akefilehttp://www.shnenglu.com/kusamba/archive/2010/08/26/124853.htmliKusambaiKusambaThu, 26 Aug 2010 09:34:00 GMThttp://www.shnenglu.com/kusamba/archive/2010/08/26/124853.htmlhttp://www.shnenglu.com/kusamba/comments/124853.htmlhttp://www.shnenglu.com/kusamba/archive/2010/08/26/124853.html#Feedback1http://www.shnenglu.com/kusamba/comments/commentRss/124853.htmlhttp://www.shnenglu.com/kusamba/services/trackbacks/124853.htmlmakefile鍦╳indows涔嬪鐨勭郴緇熶腑騫挎硾浣跨敤錛屽ぇ澶氭暟紼嬪簭鍛樹緷璧栦簬vs鐨処DE; 鎺屾彙浣跨敤makefile錛屽浜庤嚜鍔ㄥ寲鏋勫緩寰堟湁鐢?br>
vs浣跨敤nmake.exe浣滀負(fù)鏋勫緩鐨勫伐鍏鳳紝鏈夊埆浜巐inux鐨刴ake

nmake.exe鍦╲s鐨勫畨瑁呯洰褰曚笅錛?br>
vs2005鐨勯粯璁ょ洰褰曟槸錛欳:\Program Files\Microsoft Visual Studio 8\VC\bin 鎴栬?C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\Bin 錛堥氬父鎯呭喌涓嬭繖涓や釜鐩綍涓嬭鏂囦歡涓哄悓涓涓級
vs2003鐨勯粯璁ょ洰褰曟槸錛欳:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\bin 鎴栬?C:\Program Files\Microsoft Visual Studio .NET 2003\SDK\v1.1\Bin

鎵撳紑DOS紿楀彛錛岃緭鍏make錛屽彲鑳戒細(xì)鍑虹幇濡備笅閿欒鎻愮ず錛?br>

榪欐槸鍥犱負(fù)鍦╲s鐨勫畨瑁呰繃紼嬩腑錛屾病鏈夋敞鍐寁s鐨勭幆澧冨彉閲忥紝鍙互閫氳繃濡備笅鏂規(guī)硶鏌ョ湅鑷繁鏄惁宸茬粡娉ㄥ唽濂絭s鐨勭幆澧冨彉閲忥細(xì)

鍦―OS紿楀彛涓緭鍏et path, 鍒欎細(xì)鐪嬪埌濡備笅鎻愮ず錛?br>

鎴戣繖杈瑰凡緇忔敞鍐屽ソ鐜鍙橀噺浜嗭紝濡傛灉浣犳病鏈夌湅鍒幫紝鍙互灝唙s鐨刡in鐩綍娣誨姞鍒扮郴緇熺幆澧冪洰褰曠殑path閲?br>

閲嶆柊鎵撳紑DOS紿楀彛錛岃緭鍏make錛屽鏋滄彁紺哄涓嬶紝鍒欒鏄庣幆澧冪洰褰曟敞鍐屾垚鍔燂細(xì)


榪欐椂錛屽彲浠ュ紑濮嬫垜浠殑緙栬瘧浜嗭紝鎵撳紑DOS紿楀彛錛屽鑸埌婧愪唬鐮佺洰褰曪紝鎵цnmake錛?span style="font-size: 18pt;">娉ㄦ剰nmake瀵瑰簲鐨勭紪璇戜負(fù)makefile錛堟棤鍚庣紑鍚?

濡傛灉浣犵郴緇熼噷闈㈡湁濂藉嚑涓獀s鐗堟湰錛屽緩璁笉瑕佸皢鐜鍙橀噺娣誨姞鍒皃ath閲岋紝鎴戠殑鍋氭硶鏄繖鏍風(fēng)殑錛?br>1錛屽湪C:\涓嬮潰鏂板緩鐩綍utils錛屽茍灝嗚鐩綍娣誨姞鍒皃ath鐨勭幆澧冨彉閲忎腑
2, 灝唙s2005鐨刡in鐩綍涓嬬殑vcvars32.bat鍜寁s2003鐨剉cvars32.bat鍒嗗埆copy鍒癈:\Utils鐩綍涓嬶紝閲嶅懡鍚嶄負(fù)vc8.bat鍜寁c7.bat
3錛屾墽琛宯make鍓嶅厛鎵цvc7.bat錛堜嬌鐢╲s2003緙栬瘧錛夋垨鑰卾c8.bat錛堜嬌鐢╲S2005緙栬瘧錛?br>


iKusamba 2010-08-26 17:34 鍙戣〃璇勮
]]>
clean_buildhttp://www.shnenglu.com/kusamba/archive/2010/08/23/124380.htmliKusambaiKusambaMon, 23 Aug 2010 02:33:00 GMThttp://www.shnenglu.com/kusamba/archive/2010/08/23/124380.htmlhttp://www.shnenglu.com/kusamba/comments/124380.htmlhttp://www.shnenglu.com/kusamba/archive/2010/08/23/124380.html#Feedback0http://www.shnenglu.com/kusamba/comments/commentRss/124380.htmlhttp://www.shnenglu.com/kusamba/services/trackbacks/124380.html
del /s *.obj
del /s *.pch
del /s vc70.idb
del /s *.pdb
del /s *.ncb
del /s *.suo
del /s buildlog.htm


iKusamba 2010-08-23 10:33 鍙戣〃璇勮
]]>
vc緙栬瘧鍚庣敓鎴愮殑鏂囦歡綾誨瀷http://www.shnenglu.com/kusamba/archive/2010/08/23/124379.htmliKusambaiKusambaMon, 23 Aug 2010 02:31:00 GMThttp://www.shnenglu.com/kusamba/archive/2010/08/23/124379.htmlhttp://www.shnenglu.com/kusamba/comments/124379.htmlhttp://www.shnenglu.com/kusamba/archive/2010/08/23/124379.html#Feedback0http://www.shnenglu.com/kusamba/comments/commentRss/124379.htmlhttp://www.shnenglu.com/kusamba/services/trackbacks/124379.html 

1錛?nbsp;PCH鏂囦歡

棰勭紪璇戝ご鏂囦歡(涓鑸墿灞曞悕涓?PCH),鏄妸涓涓伐紼嬩腑杈冪ǔ瀹氱殑浠g爜棰勫厛緙栬瘧濂芥斁鍦ㄤ竴涓枃浠?.PCH)閲?榪欎簺棰勫厛緙栬瘧濂界殑浠g爜鍙互鏄換浣曠殑C/C++浠g爜--鐢氳嚦鍙互鏄痠nline鍑芥暟,鍙畠浠湪鏁翠釜宸ョ▼涓槸杈冧負(fù)紼沖畾鐨?鍗沖湪宸ョ▼寮鍙戣繃紼嬩腑涓嶄細(xì)緇忓父琚慨鏀圭殑浠g爜.

涓轟粈涔堥渶瑕侀緙栬瘧澶存枃浠?涓璦浠ヨ斀涔?鎻愰珮緙栬瘧閫熷害.涓鑸湴,緙栬瘧鍣ㄤ互鏂囦歡涓哄崟浣嶇紪璇?濡傛灉淇敼浜嗕竴宸ョ▼涓殑涓涓枃浠跺垯鎵鏈夋枃浠墮兘瑕侀噸鏂扮紪璇?鍖呮嫭澶存枃浠墮噷鐨勬墍鏈変笢瑗?eg.Macro瀹?Preprocessor棰勫鐞?,鑰孷C紼嬪簭涓?榪欎簺澶存枃浠朵腑鎵鍖呮嫭鐨勪笢瑗垮線寰鏄潪甯稿ぇ鐨?緙栬瘧涔嬪皢鍗犲緢闀跨殑鏃墮棿.浣嗗畠浠張涓嶅父琚慨鏀?鏄緝紼沖畾鐨?涓哄崟鐙殑涓涓皬鏂囦歡鑰岄噸鏂扮紪璇戞暣涓伐紼嬬殑鎵鏈夋枃浠跺鑷寸紪璇戞晥鐜囦笅闄?鍥犳寮曞叆浜?PCH鏂囦歡.

濡備綍浣跨敤棰勭紪璇戝ご鏂囦歡浠ユ彁楂樼紪璇戦熷害?瑕佷嬌鐢ㄩ緙栬瘧澶存枃浠?蹇呴』鎸囧畾涓涓ご鏂囦歡(.H),瀹冨寘鍚垜浠笉浼?xì)缁忓告慨鏀圭殑浠g爜鍜屽叾浠栫殑澶存枃浠?鐒跺悗鐢ㄨ繖涓ご鏂囦歡(.H)鏉ョ敓鎴愪竴涓緙栬瘧澶存枃浠?.PCH)VC榛樿鐨勫ご鏂囦歡灝辨槸StdAfx.h,鍥犱負(fù)澶存枃浠舵槸涓嶈兘緙栬瘧鐨?鎵浠ユ垜浠繕闇瑕佷竴涓?CPP鏂囦歡鏉ヤ綔妗ユ,VC榛樿鐨勬枃浠朵負(fù)StdAfx.cpp,榪欎釜鏂囦歡閲屽彧鏈変竴鍙ヤ唬鐮佸氨鏄?錛僫nclude "StdAfx.h".鎺ヤ笅鏉ヨ鐢ㄥ畠鐢熸垚.PCH鏂囦歡,娑夊強(qiáng)鍒板嚑涓噸瑕佺殑棰勭紪璇戞寚浠?/Yu,/Yc,/Yx,/Fp.綆鍗曞湴璇?/Yc鏄敤鏉ョ敓鎴?PCH鏂囦歡鐨勭紪璇戝紑鍏?鍦≒roject->setting->C/C++鐨凜ategory閲岀殑Precompiled Header,鐒跺悗鍦ㄥ乏杈圭殑鏍?wèi)迮炶鍥句腑閫夋嫨鐢ㄦ潵緙栬瘧鐢熸垚.PCH鏂囦歡鐨?CPP鏂囦歡(榛樿鍗砈tdAfx.cpp)浣犲氨鍙互鐪嬪埌/Yc榪欎釜寮鍏?瀹冭〃紺鴻繖涓枃浠剁紪璇戜簡浠ュ悗鏄惁鐢熸垚.PCH鏂囦歡(鍙兘/Yc鐨刢琛ㄧずcreate)./Fp鎸囦護(hù)鎸囧畾鐢熸垚鐨?PCH鏂囦歡鐨勫悕瀛楀強(qiáng)璺緞(鍙兘/Fp鐨刾浠h〃path)./Yu鐨剈鍗硊se浣跨敤,宸ョ▼涓彧瑕佸寘鎷簡.H鏂囦歡鐨勬枃浠墮兘浼?xì)鏈墭q欎釜/Yu鎸囦護(hù).濡傛灉閫夋嫨鑷姩Automatic...鐨勮瘽鍒欏師鏉ヤ負(fù)/Yc鐨勫湴鏂瑰氨鎹㈡垚浜?Yx鎸囦護(hù).濡傛灉閫夋嫨鑷姩,鍒欐瘡嬈$紪璇戞椂緙栬瘧鍣ㄤ細(xì)鐪嬩互鍓嶆湁娌℃湁鐢熸垚榪?PCH鏂囦歡,鏈夊垯涓嶇幇鐢熸垚鍚﹀垯灝卞啀嬈$紪璇戜駭鐢?PCH鏂囦歡.

娉ㄦ剰:

A,瀹為檯涓?鐢盇ppzard欏圭洰鍚戝鐢熸垚鐨勯粯璁ょ殑澶存枃浠跺強(qiáng)CPP鏂囦歡StdAfx.h鍜孲tdAfx.cpp鍙互鏄換浣曞悕瀛楃殑.鍘熷洜寰堢畝鍗?浣嗗鏋滀綘瑕佽繖鏍峰仛灝辮璁板緱淇敼鐩稿簲鐨凱roject->setting...涓嬬殑鍑犱釜棰勭紪璇戞寚浠?/Yc,/Yu,/Yx,/Fp)鐨勫弬鏁?

B.鍦ㄤ換浣曚竴涓寘鎷簡灝嗚棰勭紪璇戠殑澶存枃浠惰屼嬌鐢ㄤ簡.PCH鏂囦歡鐨勫伐紼嬫枃浠剁殑寮澶?涓瀹氬繀欏昏鏄湪鏈寮澶?浣犺鍖呭惈閭d釜鎸囧畾鐢熸垚.PCH鏂囦歡鐨?H鏂囦歡(閫氳繃.CPP鏂囦歡鍖呮嫭,榛樿涓篠tdAfx.cpp),濡傛灉娌″寘鎷皢浜х敓鎴戞渶寮澶翠駭鐢熺殑閿欒.濡傛灉涓嶆槸鍦ㄦ渶寮澶村寘鎷皢浜х敓璁╀綘鎰忔兂涓嶅埌鐨勮帿鍚嶅叾濡欓敊璇?濡傝嫢涓嶄俊,鐩嶄負(fù)璇曚箣?

C.棰勭紪璇戞枃浠?PCH鐢熸垚涔嬪緢鑰楁椂闂?鑰屼笖鐢熸垚涔嬪悗瀹冧篃寰堝崰紓佺洏絀洪棿,甯稿湪5-6M,娉ㄦ剰欏圭洰瀹屾垚涔嬪悗鍙?qiáng)鏃舵竻鐞嗘棤鐢ㄧ?PCH鏂囦歡浠ヨ妭綰︾鐩樼┖闂?

D.濡傛灉涓簡鎴栧垹浜?PCH鏂囦歡鑰屼互鍚庤鍐嶄慨鏀瑰伐紼嬫枃浠舵椂,鍙皢鎸囧畾鐨?Yc鐨?CPP鏂囦歡(榛樿涓篠tdAfx.cpp)閲嶆柊緙栬瘧涓嬈″嵆鍙啀嬈$敓鎴?PCH鏂囦歡,涓嶇敤鍌誨偦鐨勬寜F7鎴朢ebuild All

 
2錛?nbsp;NCB鏂囦歡

.ncb 鏃犵紪璇戞祻瑙堟枃浠?no compile browser)銆傚綋鑷姩瀹屾垚鍔熻兘鍑洪棶棰樻椂鍙互鍒犻櫎姝ゆ枃浠躲俠uild鍚庝細(xì)鑷姩鐢熸垚

 
3錛?nbsp;OBJ鏂囦歡

鐩爣鏂囦歡錛屼竴鑸槸紼嬪簭緙栬瘧鍚庣殑浜岃繘鍒舵枃浠訛紝鍐嶉氳繃閾炬帴鍣ㄥ拰璧勬簮鏂囦歡閾炬帴灝辨垚exe鏂囦歡浜嗐?/p>

OBJ鍙粰鍑轟簡紼嬪簭鐨勭浉瀵瑰湴鍧錛岃孍XE鏄粷瀵瑰湴鍧銆?/p>

 
4錛?nbsp;PDB鏂囦歡

紼嬪簭鏁版嵁搴?(PDB) 鏂囦歡淇濆瓨鐫璋冭瘯鍜岄」鐩姸鎬佷俊鎭紝浣跨敤榪欎簺淇℃伅鍙互瀵圭▼搴忕殑璋冭瘯閰嶇疆榪涜澧為噺閾炬帴銆傚綋浠?/ZI 鎴?/Zi錛堢敤浜?C/C++錛夌敓鎴愭椂錛屽皢鍒涘緩涓涓?PDB 鏂囦歡銆?/p>

 鍦?Visual C++ 涓紝/Fd 閫夐」鐢ㄤ簬鍛藉悕鐢辯紪璇戝櫒鍒涘緩鐨凱DB 鏂囦歡銆傚綋浣跨敤鍚戝鍦╒isual Studio 涓垱寤洪」鐩椂錛?Fd 閫夐」琚緗負(fù)鍒涘緩涓涓悕涓?project.PDB 鐨?PDB銆?/p>

 濡傛灉浣跨敤鐢熸垚鏂囦歡鍒涘緩 C/C++ 搴旂敤紼嬪簭錛屽茍鎸囧畾 /ZI 鎴?/Zi 鑰屼笉鎸囧畾 /Fd 鏃訛紝鍒欐渶緇堝皢鐢熸垚涓や釜 PDB 鏂囦歡錛?/p>

 *VC80.PDB   錛堟洿絎肩粺鍦拌灝辨槸 VCx0.PDB錛屽叾涓?x 琛ㄧず Visual C++ 鐨勭増鏈傦級璇ユ枃浠跺瓨鍌ㄥ悇涓?OBJ 鏂囦歡鐨勬墍鏈夎皟璇曚俊鎭茍涓庨」鐩敓鎴愭枃浠墮┗鐣欏湪鍚屼竴涓洰褰曚腑銆?/p>

 *project.PDB   璇ユ枃浠跺瓨鍌?.exe 鏂囦歡鐨勬墍鏈夎皟璇曚俊鎭傚浜嶤/C++錛屽畠椹葷暀鍦?\debug 瀛愮洰褰曚腑銆?/p>

姣忓綋鍒涘緩 OBJ 鏂囦歡鏃訛紝C/C++ 緙栬瘧鍣ㄩ兘灝嗚皟璇曚俊鎭悎騫跺埌 VCx0.PDB 涓傛彃鍏ョ殑淇℃伅鍖呮嫭綾誨瀷淇℃伅錛屼絾涓嶅寘鎷嚱鏁板畾涔夌瓑絎﹀彿淇℃伅銆傚洜姝わ紝鍗充嬌姣忎釜婧愭枃浠墮兘鍖呭惈鍏叡澶存枃浠訛紙濡?<windows.h>錛夛紝榪欎簺澶存枃浠朵腑鐨?typedef 涔熷彧瀛樺偍涓嬈★紝鑰屼笉鏄湪姣忎釜 OBJ 鏂囦歡涓兘瀛樺湪銆?/p>

 閾炬帴鍣ㄥ皢鍒涘緩 project.PDB錛屽畠鍖呭惈欏圭洰鐨?EXE 鏂囦歡鐨勮皟璇曚俊鎭俻roject.PDB鏂囦歡鍖呭惈瀹屾暣鐨勮皟璇曚俊鎭紙鍖呮嫭鍑芥暟鍘熷瀷錛夛紝鑰屼笉浠呬粎鏄湪 VCx0.PDB 涓壘鍒扮殑綾誨瀷淇℃伅銆傝繖涓や釜 PDB 鏂囦歡閮藉厑璁稿閲忔洿鏂般傞摼鎺ュ櫒榪樺湪鍏跺垱寤虹殑 .exe 鎴?.dll 鏂囦歡涓祵鍏?.pdb 鏂囦歡鐨勮礬寰勩?/p>

 Visual Studio 璋冭瘯鍣ㄤ嬌鐢?EXE 鎴?DLL 鏂囦歡涓殑PDB 璺緞鏌ユ壘 project.PDB 鏂囦歡銆傚鏋滆皟璇曞櫒鍦ㄨ浣嶇疆鏃犳硶鎵懼埌 PDB 鏂囦歡鎴栬呭鏋滆礬寰勬棤鏁堬紙渚嬪錛屽鏋滈」鐩縐誨姩鍒頒簡鍙︿竴鍙拌綆楁満涓婏級錛岃皟璇曞櫒灝嗘悳绱㈠寘鍚?EXE 鐨勮礬寰勶紝鍗沖湪“閫夐」”瀵硅瘽妗嗭紙“璋冭瘯”鏂囦歡澶癸紝“絎﹀彿”鑺傜偣錛変腑鎸囧畾鐨勭鍙瘋礬寰勩傝皟璇曞櫒涓嶄細(xì)鍔犺澆涓庢墍璋冭瘯鐨勪簩榪涘埗涓嶅尮閰嶇殑 PDB銆?/p>

 
5錛?nbsp;ILK鏂囦歡

鍦ㄥ閲忛摼鎺ユ椂錛孡INK 鏇存柊鍦ㄧ涓嬈″閲忛摼鎺ユ湡闂村垱寤虹殑 .ilk 鐘舵佹枃浠躲傝鏂囦歡鍜?.exe鏂囦歡鎴?.dll 鏂囦歡鍏鋒湁鐩稿悓鐨勫熀鍚嶇О錛屽茍鍏鋒湁鎵╁睍鍚?.ilk銆傚湪鍚庨潰鐨勫閲忛摼鎺ユ湡闂達(dá)紝LINK 鏇存柊 .ilk 鏂囦歡銆傚鏋滅己灝?.ilk 鏂囦歡錛屽垯 LINK 鎵ц瀹屽叏閾炬帴騫跺垱寤烘柊鐨?.ilk 鏂囦歡銆傚鏋?.ilk 鏂囦歡鏃犳硶浣跨敤錛屽垯 LINK 鎵ц闈炲閲忛摼鎺ャ傛湁鍏沖閲忛摼鎺ョ殑璇︾粏淇℃伅錛岃鍙傝娓愯繘寮忛摼鎺?/INCREMENTAL) 閫夐」銆?/p>

 
6錛?nbsp;MAP鏂囦歡

Windows鍜孡inux緋葷粺涓嬮兘鏈塵ap鏂囦歡錛宮ap鏂囦歡涓鑸槸鐢ㄦ潵淇濆瓨絎﹀彿鐨勫湴鍧淇℃伅銆傝繖閲岀殑絎﹀彿涓鑸槸鎸囧嚱鏁板悕鍙?qiáng)鍙橀噺锛堝眬閮ㄣ佸叏灞錛夈傛牴鎹繖涓湴鍧淇℃伅錛屼究鍙互鎶婂湴鍧緲昏瘧鎴愮浉搴旂殑絎﹀彿錛屽緢澶氱郴緇熷伐鍏楓乨ebug鏂規(guī)硶閮借鐢ㄥ埌榪欑淇℃伅銆?/p>

 錛堜竴錛変竴涓▼搴忕紪璇戝畬浠ュ悗鍐呭浼?xì)鍒嗘垚涓ゅぇ绫讳繚瀛樺Q屼竴綾繪槸code錛屼竴綾繪槸data錛?/p>

錛?錛塩ode鎸囩▼搴忎唬鐮侊紝甯稿瓨鍦?text section

錛?錛塪ata鎸囧瓨紼嬪簭涓0鏄庣殑鍙橀噺錛屽父瀛樺湪.data section錛屾湭鍒濆鍖栫殑鍙橀噺浼?xì)琚瓨鍦?bss section銆?/p>

 錛堜簩錛塛indows

錛?錛夊崟涓ā鍧楃殑map鏂囦歡

鍦╓indows涓嬫瘡涓涓ā鍧楋紙dll/exe錛夊搴斾竴涓猰ap鏂囦歡錛屽彧闇緙栬瘧鏃舵墦寮鐩稿簲鐨勯夐」鍗沖彲銆?/p>

visual studio涓柟娉曪細(xì)鍙沖嚮宸ョ▼錛岄夋嫨Properties錛岀劧鍚庨夋嫨 Configuration Properties -Linker - Debugging錛屽皢Generate Map File欏規(guī)敼鎴怸es銆?/p>

緙栬瘧鍚庡湪debug/release鐩綍閲屼究鍙互鎵懼埌涓庡簲鐢ㄧ▼搴忓悓鍚嶇殑map鏂囦歡銆?/p>

 濡備笅涓簃ap鏂囦歡鍐呭錛?/p>

Timestamp is4b9603e2 (Tue Mar 09 16:16:34 2010) //榪欎釜鏄椂闂存埑錛屾瘡嬈$紪璇戦兘涓嶅悓錛屽悗闈㈢鍙峰搴旂殑鍦板潃涓鑸篃涓嶅悓銆?/p>

 Preferred loadaddress is 00010000 //榪欐槸緙栬瘧鏃剁殑棰勮杞藉湴鍧錛屽疄闄呬笂妯″潡琚姞杞界殑鍦板潃鍙兘璺熻繖涓笉鍚岋紝鎵浠ユ潵紜畾鏌愪釜鍦板潃瀵瑰簲鍝釜絎﹀彿淇℃伅鐨勬椂鍊欙紝榪橀渶瑕佺煡閬撹妯″潡鍔犺澆鍦ㄥ唴瀛樼殑鐪熸璧峰鍦板潃錛岀劧鍚庢牴鎹亸縐婚噺鏉ョ‘瀹氥?/p>

 Start         Length     Name                   Class

0001:00000000 001c3950H .text                   CODE ==銆嬪瓨鏀劇▼搴忎唬鐮?/p>

0003:000008b8000af67cH .data                   DATA ==銆嬪垵濮嬪寲鐨勫彉閲?/p>

0003:000aff40003930b1H .bss                    DATA ==銆嬫湭鍒濆鍖栫殑鍙橀噺

 錛?錛夋搷浣滅郴緇熸葷殑map鏂囦歡錛氫笉鐭ラ亾鏈夋病鏈夈?/p>

 錛?錛塪umpbin

dumpbin鏄竴涓弽姹囩紪宸ュ叿錛屽彲浠ヨ緭鍑篹xe/dll鏂囦歡鐨勮澶氫俊鎭?/p>

dumpbin /allyourmodulename > a.txt 鍙互鎶婃墍鏈夌殑淇℃伅淇濆瓨鍦ㄤ竴涓猘.txt涓紝閲岄潰鍙互鎵懼埌鏃墮棿鎴熾佸師debug璺緞淇℃伅鍙?qiáng)鍑芥暟鍒楄〃绛夈?/p>

 濡備笅錛?/p>

FILE HEADERVALUES

             1C2 machine (Thumb)

               6 number of sections

            49EC0BAE time date stamp Mon Apr 2013:44:14 2009 //鏃墮棿鎴?/p>

               0 file pointer to symbol table

               0 number of symbols

              E0 size of optional header

            2102 characteristics

                   Executable

                   32 bit word machine

                   DLL

 

OPTIONAL HEADERVALUES

             10B magic # (PE32)

            9.00 linker version

           53E00 size of code

           76A00size of initialized data

               0 size of uninitialized data

           502ACentry point (100502AC)

            1000 base of code

           55000 base of data

        10000000 image base (10000000 to100CDFFF)

            1000 section alignment

             200 file alignment

           5.01 operating system version

            0.00 image version

            5.01 subsystem version

               0 Win32 version

           CE000 size of image

             400 size of headers

 

鍏朵腑 10000000 image base (10000000 to 100CDFFF)鏄噸瑕佺殑淇℃伅錛屼笌map file涓殑 Preferred load address is10000000 鎰忎箟鐩稿悓銆?/p>

 DebugDirectories

 

        Time Type       Size     RVA Pointer

    -------- ------ -------- -------- --------

    49EC0BAE cv           81 000020FC      CFC   Format: RSDS, {A5C699F0-C26D-427E-BC54-3504731BA9B8}, 1,d:\Projects\Final\MyUsbToPc_CPL\MyUsbToPc\Windows Mobile 6 Professional SDK(ARMV4I)\Debug\MyUsbToPc.pdb //鍘熺紪璇戣礬寰?/p>

 

          Begin    End     Prolog   Excpt 32bit Fixup 銆怓unction Name銆?/p>

 0000000010001000 10001040 10001010   N     Y    Y DllMain

0000000810001040 10001064 10001050   N     Y    Y ?InitApplet@@YAHPAUHWND__@@@Z (int __cdecl InitApplet(struct HWND__*))

0000001010001064 10001068 10001064   N     Y    Y ?TermApplet@@YAXXZ (void __cdecl TermApplet(void))

0000001810001068 100013DC 10001078   N     Y    Y CPlApplet

00000020 1000141C 100014B4 10001420   N    Y     Y _DllMainCRTStartup

00000028100014B4 100014BC 100014B4   N     Y    Y GetCurrentProcess

00000030100014BC 100014F0 100014C0  N     Y     Y

00000038 100014F0 1000155C 100014F4  N     Y     Y _cinit

00000040 1000155C 10001660 10001560   N    Y     Y

0000004810001660 10001678 10001664   N     Y    Y exit

0000005010001678 10001690 1000167C   N    Y     Y _exit

0000005810001690 100016AC10001694   N     Y    Y _cexit

00000060 100016AC 100016F8 100016B0   N    Y     Y _c_exit

 

begin鏍忓搴旂殑鍦板潃涓巑ap閲岀殑鍦板潃鏄竴鑷寸殑錛岄潪甯哥被浼間簬map鏂囦歡銆?/p>

銆愭敞鎰忥細(xì)寰堝exe鎴杁ll鍦ㄧ紪璇戞椂鏃跺皢姝や俊鎭殣钘忕殑錛孎unction Name浼?xì)鍙樻垚绌虹殑銆?/p>

 錛堜笁錛塋inux

錛?錛夊崟涓ā鍧楃殑map鏂囦歡

鏆傝繕涓嶆竻妤氾紝澶у鐭ラ亾鐨勮鍛婄煡銆?/p>

錛?錛夋搷浣滅郴緇熸葷殑map鏂囦歡

linux緋葷粺緙栬瘧Image鍚庝細(xì)鐢熸垚涓涓猻ystem.map錛岄噷闈㈠瓨浜嗚緙栬瘧榪涘唴鏍哥殑絎﹀彿淇℃伅錛屼笉鍚屾鐨勭紪璇戠敓鎴愮殑system.map浼?xì)鏈夊樊寮傘?/p>

鍥犱負(fù)鏄搷浣滅郴緇熺殑絎﹀彿淇℃伅錛岃杞界殑鍦板潃閮芥槸鍥哄畾鐨勶紝鎵浠ヤ笉鍍弚indows鍗曚釜妯″潡閭f牱闈犲亸縐婚噺瀹氫綅錛岀洿鎺ラ氳繃鍦板潃灝卞彲浠ョ洿鎺ユ壘鍒板搴旂殑絎﹀彿銆?/p>

 

鍏跺唴瀹圭殑閲嶈鐨勫嚑涓鍙峰涓嬶細(xì)

_stext//浠g爜孌靛紑濮?/p>

_etext//浠g爜孌電粨鏉?/p>

 __data_start//鍒濆鍖栫殑鏁版嵁寮濮?/p>

_edata//鍒濆鍖栫殑鏁版嵁緇撴潫

 __bss_start//鏈垵濮嬪寲鏁版嵁寮濮?/p>

_end//鍏ㄩ儴緇撴潫

 

Linux鐩稿windows鏈変釜寰堥噸瑕佺殑涓嶅悓鏄紝linux鍚姩鍚庡湪proc\kallsyms閲屼篃鏈変竴浠界被浼糓ap鏂囦歡鐨勪俊鎭紝cat鍛戒護(hù)鍙湅鍒板叾鍐呭錛屾湁浜嗚繖涓氨鍙互寰楀埌浠諱綍涓涓唴鏍哥殑絎﹀彿錛堝彉閲忓強(qiáng)鍑芥暟鍚嶏級鐨勫湴鍧淇℃伅錛岃屼笉闇瑕佸湪緙栬瘧瀹屽唴鏍稿悗鐗規(guī)剰淇濆瓨map鏂囦歡錛岃繖鐪熸槸涓涓法澶х殑瀹濊棌銆?/p>

鑰屼笖錛宲roc\kallsym鐨勪俊鎭瘮system.map澶氾紝鍦ㄦ渶鍚庝細(xì)鏈塵odule閮ㄥ垎鐨勭鍙蜂俊鎭紝榪欎簺淇℃伅浼?xì)闅忕潃緋葷粺鐨勫彉鍖栬屽彉鍖栥?/p>

 

錛?錛塶m鍛戒護(hù)

nm鍛戒護(hù)鐢ㄦ潵鏄劇ず鏌愪釜鍙墽琛屾枃浠剁殑絎﹀彿淇℃伅銆傜鍙蜂俊鎭腑浼?xì)鍖呭惈鍏ㄥ眬鍙橀噺錛堟瘮濡備笅闈㈢殑xyz錛夊拰鍑芥暟鍚嶏紙姣斿涓嬮潰鐨刴ain錛夛紝榪樻湁涓浜涚紪璇戝櫒鎻掑叆鐨勭鍙鳳紙姣斿涓嬮潰鐨刜_data_start,__bss_start錛?/p>

 絎簩鍒楄〃紺虹鍙風(fēng)殑灞炴э紝鍏朵腑澶у啓浠h〃global錛屽皬鍐欎唬琛╨ocal

 

Usage: nm[option(s)] [file(s)]

List symbols in[file(s)] (a.out by default).

 

紺轟緥錛?/p>

 nm helo

 08049f20 d_DYNAMIC

08049ff4 d_GLOBAL_OFFSET_TABLE_

080484ec R_IO_stdin_used

         w _Jv_RegisterClasses

08049f10 d__CTOR_END__

08049f0c d__CTOR_LIST__

08049f18 D__DTOR_END__

08049f14 d__DTOR_LIST__

08048500 r__FRAME_END__

08049f1c d__JCR_END__

08049f1c d__JCR_LIST__

0804a020 A__bss_start

0804a00c D__data_start

080484a0 t __do_global_ctors_aux

08048340 t__do_global_dtors_aux

0804a010 D__dso_handle

         w __gmon_start__

0804849a T __i686.get_pc_thunk.bx

08049f0c d__init_array_end

08049f0c d__init_array_start

08048430 T__libc_csu_fini

08048440 T__libc_csu_init

         U __libc_start_main@@GLIBC_2.0

0804a020 A _edata

0804a028 A _end

080484cc T _fini

080484e8 R_fp_hw

08048298 T _init

08048310 T_start

0804a020 bcompleted.6635

0804a00c Wdata_start

0804a024 bdtor_idx.6637

080483a0 t frame_dummy

080483c4 T main

         U printf@@GLIBC_2.0

0804a014 D x

0804a018 D y

0804a01c D z

 

helo.c濡備笅錛?/p>

#include<stdio.h>

 int x = 10;

int y = 20;

int z = 30;

 extern int__data_start;//榪欓噷寮曠敤浜嗙紪璇戝櫒鎻掑叆鐨勭鍙?/p>

 int main(void)

{

        int *ds = &__data_start;

         printf("%p\n", ds);

        printf("now x = %d\n", x);

         ds+=3;

        *ds = 100;

        printf("now x = %d\n", x);

}

7錛?nbsp;IDB鏂囦歡

The compiler savesstate information from the first compile in the project’s .IDB file     (the default name is project.IDB or VC60.IDBfor files compiled without a project).

The compiler usesthis state information to speed subsequent compiles.

 

8錛?nbsp;SLN鏂囦歡

Visual   Studio.Solution   閫氳繃涓虹幆澧冩彁渚涘欏圭洰銆侀」鐩」鍜岃В鍐蟲柟妗堥」鍦ㄧ鐩樹笂浣嶇疆鐨勫紩鐢紝鍙皢瀹冧滑緇勭粐鍒拌В鍐蟲柟妗堜腑銆?nbsp;    姣斿鏄敓鎴怐ebug妯″紡,榪樻槸Release妯″紡,鏄氱敤CPU榪樻槸涓撶敤鐨勭瓑

 

9錛?nbsp;SUO鏂囦歡

瑙e喅鏂規(guī)鐢ㄦ埛閫夐」   璁板綍鎵鏈夊皢涓庤В鍐蟲柟妗堝緩绔嬪叧鑱旂殑閫夐」錛屼互渚垮湪姣忔鎵撳紑鏃訛紝瀹冮兘鍖呭惈鎮(zhèn)ㄦ墍鍋氱殑鑷畾涔夎緗傛瘮濡備綘鐨刅S甯冨眬,浣犵殑欏圭洰鏈鍚庣紪璇戠殑鑰屽張娌℃湁鍏蟲帀鐨勬枃浠?涓嬫鎵撳紑鏃剁敤)

10錛?nbsp; 



iKusamba 2010-08-23 10:31 鍙戣〃璇勮
]]>
久久久久99这里有精品10 | 久久99精品国产自在现线小黄鸭| 亚洲AV乱码久久精品蜜桃| 精品亚洲综合久久中文字幕| 久久精品成人免费观看97| 亚洲精品无码久久久影院相关影片 | 伊人久久大香线蕉影院95| 精品久久久久久久久免费影院| 久久精品无码一区二区无码 | 精品无码久久久久国产动漫3d| 久久精品国产秦先生| 精品国产99久久久久久麻豆| 国产高清国内精品福利99久久| 亚洲精品国产字幕久久不卡| 精品国产一区二区三区久久蜜臀| 亚洲国产精品高清久久久| 少妇久久久久久被弄到高潮| 久久综合综合久久97色| 久久国产亚洲高清观看| 一本色综合网久久| 亚洲伊人久久成综合人影院| 国产叼嘿久久精品久久| 久久综合九色综合97_久久久| 无码人妻久久久一区二区三区| 亚洲国产成人精品无码久久久久久综合 | 久久精品国产亚洲AV无码麻豆| 亚洲日本久久久午夜精品| 国内精品伊人久久久久影院对白 | 精品无码人妻久久久久久| 青青草国产精品久久久久| 国产精品久久久久久久久鸭 | 亚洲精品视频久久久| 久久久精品日本一区二区三区| 久久精品视频免费| 久久免费精品视频| 亚洲午夜久久影院| 国产成人精品久久综合| 一本久久a久久精品综合夜夜| 18岁日韩内射颜射午夜久久成人 | 久久婷婷五月综合国产尤物app| 久久人人爽人人爽人人片AV麻烦|