??xml version="1.0" encoding="utf-8" standalone="yes"?>久久在线精品视频,精品成av人一区二区三区,国产在线|日韩http://www.aygfsteel.com/javascript/javazh-cnSat, 17 May 2025 02:19:59 GMTSat, 17 May 2025 02:19:59 GMT60vcE序~译注意 http://www.aygfsteel.com/javascript/archive/2007/12/19/168768.html付轩付轩Wed, 19 Dec 2007 07:52:00 GMThttp://www.aygfsteel.com/javascript/archive/2007/12/19/168768.htmlhttp://www.aygfsteel.com/javascript/comments/168768.htmlhttp://www.aygfsteel.com/javascript/archive/2007/12/19/168768.html#Feedback0http://www.aygfsteel.com/javascript/comments/commentRss/168768.htmlhttp://www.aygfsteel.com/javascript/services/trackbacks/168768.html自动生成的工E文仉|的PreprocessorDefinitions ?WIN32;_DEBUG;_WINDOWS
需要改?PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;UNICODE;_WIN32_WINNT=0x0501"

有的目~译不了是因?CharacterSet 的问?/p>

付轩 2007-12-19 15:52 发表评论
]]>
C++http://www.aygfsteel.com/javascript/archive/2007/12/12/167121.html付轩付轩Wed, 12 Dec 2007 01:18:00 GMThttp://www.aygfsteel.com/javascript/archive/2007/12/12/167121.htmlhttp://www.aygfsteel.com/javascript/comments/167121.htmlhttp://www.aygfsteel.com/javascript/archive/2007/12/12/167121.html#Feedback0http://www.aygfsteel.com/javascript/comments/commentRss/167121.htmlhttp://www.aygfsteel.com/javascript/services/trackbacks/167121.html  有些学者徏议这h“对象”Q分析一个句子的语法Q找出名词和动词Q名词就是对象,动词则是对象的方法(卛_敎ͼ?/p>

  当年国民党的文hZҎ(gu)毛泽东的《沁园春·雪》,Ҏ(gu)h朝遗老们写了一些对仗工整的诗,误介石q目。老蒋看了气得大骂Q?#8220;娘希匹,全都有一股棺材里腐尸的气呟?#8221;我看了几千页的Y件工E资料,l于发现自己有些“弱智”Q无法理?#8220;面向对象”的理论,同时醒?zhn)?#8220;~程是硬道理?#8221;

  面向对象E序设计语言很多Q如Smalltalk、Ada、Eiffel、Object Pascal、Visual Basic、C++{等。C++语言最讨h喜欢Q因为它兼容C 语言Qƈ且具备C 语言的性能。近几年Q一U叫Java 的纯面向对象语言U极一Ӟ不少人叫喊着要用Java 革C++的命。我认ؓJava 好比是C++的外甥,虽然不是直接遗传的,但也几分象样。外甥在舅舅w上玩耍时z了一泡尿Q俩Z该ؓ此而争c?/p>

  关于C++E序设计的书藉非常多Q本章不讲C++的语法,只讲一些小的~程道理。如果我能早几年明白q些道理,可以大大改善数十万行程序的质量了?/p>

1. C++面向对象E序设计的重要概?/strong>

  早期革命q里有q样一个角Ԍ他说Q?#8220;我是党代表,我代表党Q我是党?#8221;后来他给同志们带来了N?/p>

  会用C++的程序员一定懂得面向对象程序设计吗Q?/p>

  不会用C++的程序员一定不懂得面向对象E序设计吗?

  两者都未必。就象坏蛋入党后未必能成为好人,好h不入党未必变成坏蛋那栗?/p>

  我不怕触犯众怒地说句大话Q?#8220;C++没有高手QC 语言才有高手?#8221;在用C 和C++~程8q之后,我深深地遗憾自己不是C 语言的高手,更遗憾没有hҎ(gu)我如何进行面向对象程序设计。我和很多C++E序员一P在n用到C++语法的好处时便以己已l明白了面向对象E序设计。就象挤掉牙膏卖牙膏皮那P真是暴殄天物呀?/p>

  Z不懂拼音也会讲普通话Q如果懂得拼韛_会把普通话讲得更好。不懂面向对象程序设计也可以用C++~程Q如果懂得面向对象程序设计则会把C++E序~得更好。本节讲qC个非常基的概念:“cM对象”?#8220;l承与组?#8221;?#8220;虚函C多?#8221;。理解这些概念,有助于提高程序的质量Q特别是提高“可复用?#8221;?#8220;可扩充?#8221;?/p>

1.1 cM对象

  对象QObjectQ是c(ClassQ的一个实例(InstanceQ。如果将对象比作房子Q那么类是房子的设计图U。所以面向对象程序设计的重点是类的设计,而不是对象的设计。类可以数据和函数装在一P其中函数表示了类的行为(或称服务Q。类提供关键字public、protected 和private 用于声明哪些数据和函数是公有的、受保护的或者是U有的?/p>

  q样可以辑ֈ信息隐藏的目的,卌cM仅公开必须要让外界知道的内容,而隐藏其它一切内宏V我们不可以滥用cȝ装功能Q不要把它当成火锅,什么东襉K往里扔?/p>

  cȝ设计是以数据Z心,q是以行Zؓ中心Q?/p>

  d“以数据ؓ中心”的那一zhxcȝ内部数据l构Q他们习惯上private cd的数据写在前面,而将public cd的函数写在后面,如表8.1(a)所C?/p>

  d“以行Zؓ中心”的那一zhxcd该提供什么样的服务和接口Q他们习惯上public cd的函数写在前面,而将private cd的数据写在后面,如表8.1(b)所C?/p>

  很多C++教课书主张在设计cL“以数据ؓ中心”。我坚持q且读者在设计cL“以行Zؓ中心”Q即首先考虑cd该提供什么样的函数。Microsoft 公司的COM 规范的核心是接口设计QCOM 的接口就相当于类的公有函数[Rogerson 1999]。在E序设计斚wQ咱们不要怀疑Microsoft 公司的风根{?/p>

  设计孤立的类是比较容易的Q难的是正确设计基类及其zcR因为有些程序员搞不清楚“l承”QInheritanceQ?#8220;l合”QCompositionQ?#8220;多?#8221;Q?PolymorphismQ这些概c?/p>

付轩 2007-12-12 09:18 发表评论
]]>
C++http://www.aygfsteel.com/javascript/archive/2007/12/12/167120.html付轩付轩Wed, 12 Dec 2007 01:18:00 GMThttp://www.aygfsteel.com/javascript/archive/2007/12/12/167120.htmlhttp://www.aygfsteel.com/javascript/comments/167120.htmlhttp://www.aygfsteel.com/javascript/archive/2007/12/12/167120.html#Feedback0http://www.aygfsteel.com/javascript/comments/commentRss/167120.htmlhttp://www.aygfsteel.com/javascript/services/trackbacks/167120.html1.2 l承与组?/p>

  如果A 是基c,B 是A 的派生类Q那么B 承A 的数据和函数。示例程序如下:

class A
{
public:
void Func1(void);
void Func2(void);
};
class B : public A
{
public:
void Func3(void);
void Func4(void);
};
// Example
main()
{
B b; // B的一个对?br /> b.Func1(); // B 从A l承了函数Func1
b.Func2(); // B 从A l承了函数Func2
b.Func3();
b.Func4();
}

  q个单的CZE序说明了一个事实:C++?#8220;l承”Ҏ(gu)可以提高程序的可复用性。正因ؓ“l承”太有用、太Ҏ(gu)用,才要防止q“l承”。我们要l?#8220;l承”立一些用规则:

  一、如果类A 和类B 毫不相关Q不可以Z使B 的功能更多些而让B l承A 的功能?/p>

  不要觉得“不吃白不?#8221;Q让一个好端端的健壮青q无~无故地吃h参补w体?/p>

  二、如果类B 有必要用A 的功能,则要分两U情况考虑Q?/p>

  Q?Q若在逻辑上B 是A ?#8220;一U?#8221;Qa kind of Q,则允许B l承A 的功能。如男hQManQ是人(HumanQ的一U,男孩QBoyQ是男h的一U。那么类Man 可以从类Human zQ类Boy 可以从类Man z。示例程序如下:

class Human
{

};
class Man : public Human
{

};
class Boy : public Man
{

};

  Q?Q若在逻辑上A 是B ?#8220;一部分”Qa part ofQ,则不允许B l承A 的功能,而是要用A和其它东西组合出B。例如眼QEyeQ、EQNoseQ、口QMouthQ、耻IEarQ是_HeadQ的一部分Q所以类Head 应该qEye、Nose、Mouth、Ear l合而成Q不是派生而成。示例程序如下:

class Eye
{
public:
void Look(void);
};
class Nose
{
public:
void Smell(void);
};
class Mouth
{
public:
void Eat(void);
};
class Ear
{
public:
void Listen(void);
};
// 正确的设计,冗长的程?br /> class Head
{
public:
void Look(void) { m_eye.Look(); }
void Smell(void) { m_nose.Smell(); }
void Eat(void) { m_mouth.Eat(); }
void Listen(void) { m_ear.Listen(); }
private:
Eye m_eye;
Nose m_nose;
Mouth m_mouth;
Ear m_ear;
};

  如果允许Head 从Eye、Nose、Mouth、Ear z而成Q那么Head 自动具有Look、Smell、Eat、Listen q些功能Q?/p>

// 错误的设?br /> class Head : public Eye, public Nose, public Mouth, public Ear
{
};

  上述E序十分短ƈ且运行正,但是q种设计却是错误的。很多程序员l不?#8220;l承”的诱惑而犯下设计错误?/p>

  一只公鸡劲地q打一只刚下了蛋的母鸡Q你知道Z么吗Q?/p>

  因ؓ母鸡下了鸭蛋?/p>

  本书3.3 节讲q?#8220;q行正确”的程序不见得是高质量的E序Q此处就是一个例证?/p>

付轩 2007-12-12 09:18 发表评论
]]>
C++http://www.aygfsteel.com/javascript/archive/2007/12/12/167118.html付轩付轩Wed, 12 Dec 2007 01:17:00 GMThttp://www.aygfsteel.com/javascript/archive/2007/12/12/167118.htmlhttp://www.aygfsteel.com/javascript/comments/167118.htmlhttp://www.aygfsteel.com/javascript/archive/2007/12/12/167118.html#Feedback0http://www.aygfsteel.com/javascript/comments/commentRss/167118.htmlhttp://www.aygfsteel.com/javascript/services/trackbacks/167118.html1.3 虚函C多?/p>

  除了l承外,C++的另一个优良特性是支持多态,卛_许将zcȝ对象当作基类的对象用。如果A 是基c,B 和C 是A 的派生类Q多态函数Test 的参数是A ?指针。那么Test 函数可以引用A、B、C 的对象。示例程序如下:

class A
{
public:
void Func1(void);
};
void Test(A *a)
{
a->Func1();
}
class B : public A
{

};
class C : public A
{

};
// Example
main()
{
A a;
B b;
C c;
Test(&a);
Test(&b);
Test(&c);
};

  以上E序看不?#8220;多?#8221;有什么h(hun)|加上虚函数和抽象基类后,“多?#8221;的威力就昄出来了?/p>

  C++用关键字virtual 来声明一个函Cؓ虚函敎ͼzcȝ虚函数将QoverrideQ基cd应的虚函数的功能。示例程序如下:

class A
{
public:
virtual void Func1(void){ cout<< “This is A::Func1 \n”}
};
void Test(A *a)
{
a->Func1();
}
class B : public A
{
public:
virtual void Func1(void){ cout<< “This is B::Func1 \n”}
};
class C : public A
{
public:
virtual void Func1(void){ cout<< “This is C::Func1 \n”}
};
// Example
main()
{
A a;
B b;
C c;
Test(&a); // 输出This is A::Func1
Test(&b); // 输出This is B::Func1
Test(&c); // 输出This is C::Func1
};

  如果基类A 定义如下Q?/p>

class A
{
public:
virtual void Func1(void)=0;
};

  那么函数Func1 叫作U虚函数Q含有纯虚函数的cd作抽象基cR抽象基cd定义纯虚函数的形式Q具体的功能由派生类实现?/p>

  l合“抽象基类”?#8220;多?#8221;有如下突Z点:

  Q?Q应用程序不必ؓ每一个派生类~写功能调用Q只需要对抽象基类q行处理卛_。这一
招叫“以不变应万变”Q可以大大提高程序的可复用性(q是接口设计的复用,而不是代码实现的复用Q?/p>

  Q?Q派生类的功能可以被基类指针引用Q这叫向后兼容,可以提高E序的可扩充性和可维护性。以前写的程序可以被来写的E序调用不为奇Q但是将来写的程序可以被以前写的E序调用那可了不赗?/p>

付轩 2007-12-12 09:17 发表评论
]]>
C++http://www.aygfsteel.com/javascript/archive/2007/12/12/167117.html付轩付轩Wed, 12 Dec 2007 01:16:00 GMThttp://www.aygfsteel.com/javascript/archive/2007/12/12/167117.htmlhttp://www.aygfsteel.com/javascript/comments/167117.htmlhttp://www.aygfsteel.com/javascript/archive/2007/12/12/167117.html#Feedback0http://www.aygfsteel.com/javascript/comments/commentRss/167117.htmlhttp://www.aygfsteel.com/javascript/services/trackbacks/167117.html2.3 new、delete 与指?/p>

  在C++中,操作Wnew 用于甌内存Q操作符delete 用于释放内存。在C 语言中,函数malloc 用于甌内存Q函数free 用于释放?存。由于C++兼容C 语言Q所以new、delete、malloc、free 都有可能一起用。new 能比malloc q更多的事,它可以申请对象的内存Q而malloc 不能。C++和C 语言中的指针威猛无比Q用错了会带来灾难。对于一个指针pQ如果是用new甌的内存,则必ȝdelete 而不能用free 来释放。如果是用malloc 甌的内存,则必ȝfree 而不能用delete 来释放。在用delete 或用free 释放p 所指的内存后,应该马上昑ּ地将p |ؓNULLQ以防下ơ用p 时发生错误。示例程序如下:

void Test(void)
{
float *p;
p = new float[100];
if(p==NULL) return;
…// do something
delete p;
p=NULL; // 良好的编E风?br /> // 可以l箋使用p
p = new float[500];
if(p==NULL) return;
…// do something else
delete p;
p=NULL;
}

  我们q要预防“野指?#8221;Q?#8220;野指?#8221;是指?#8220;垃圾”内存的指针,主要成因有两U:

  Q?Q指针没有初始化?br />   Q?Q指针指向已l释攄内存Q这U情冉|让h防不胜防Q示例程序如下:

class A
{
public:
void Func(void){…}
};
void Test(void)
{
A *p;
{
A a;
p = &a; // 注意a 的生命期
}
p->Func(); // p ?#8220;野指?#8221;Q程序出?br /> }

2.4 使用const

  在定义一个常量时Qconst ?define 更加灉|。用const 定义的常量含有数据类型,该常量可以参与逻辑q算。例如:

const int LENGTH = 100; // LENGTH 是int cd
const float MAX=100; // MAX 是float cd
#define LENGTH 100 // LENGTH 无类?br /> #define MAX 100 // MAX 无类?/p>

  除了能定义常量外Qconst q有两个“保护”功能Q?/p>

  一、强制保护函数的参数g发生变化

  以下E序中,函数f 不会改变输入参数name 的|但是函数g 和h 都有可能改变name的倹{?/p>

void f(String s); // pass by value
void g(String &s); // pass by referance
void h(String *s); // pass by pointer
main()
{
String name=“Dog”;
f(name); // name 的g会改?br /> g(name); // name 的值可能改?br /> h(name); // name 的值可能改?br /> }

  对于一个函数而言Q如果其‘&’?#8216;*’cd的参数只作输入用Q不作输出用Q那么应当在该参数前加上constQ以保函数的代码不会改变该参数的|如果改变了该参数的|~译器会出现错误警告Q。因此上q程序中的函数g 和h 应该定义成:

void g(const String &s);
void h(const String *s);

  二、强制保护类的成员函C改变M数据成员的?/p>

  以下E序中,cstack 的成员函数Count 仅用于计敎ͼZ保Count 不改变类中的M数据成员的|应将函数Count 定义成const cd?/p>

class Stack
{
public:
void push(int elem);
void pop(void);
int Count(void) const; // const cd的函?br /> private:
int num;
int data[100];
};
int Stack::Count(void) const
{
++ num; // ~译错误Qnum 值发生变?br /> pop(); // ~译错误Qpop 改变成员变量的?br /> return num;
}



付轩 2007-12-12 09:16 发表评论
]]>
windows 的变量类?/title><link>http://www.aygfsteel.com/javascript/archive/2007/11/30/164386.html</link><dc:creator>付轩</dc:creator><author>付轩</author><pubDate>Fri, 30 Nov 2007 11:39:00 GMT</pubDate><guid>http://www.aygfsteel.com/javascript/archive/2007/11/30/164386.html</guid><wfw:comment>http://www.aygfsteel.com/javascript/comments/164386.html</wfw:comment><comments>http://www.aygfsteel.com/javascript/archive/2007/11/30/164386.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/javascript/comments/commentRss/164386.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/javascript/services/trackbacks/164386.html</trackback:ping><description><![CDATA[ATOM                   原子Q原子表中的一个字W串的参考) <br /> BOOL                   布尔变量 <br /> BOOLEAN                布尔变量 <br /> BYTE                   字节Q?位) <br /> CCHAR                  Windows字符 <br /> CHAR                   Windows字符 <br /> COLORREF               U、绿、蓝(RGB)彩色?32? <br /> Const                  变量Q该变量的值在执行期间保持为常?<br /> CRITICAL_SECTION       临界D对?<br /> CTRYID                 国名标识W?<br /> DLGPROC                指向一个对话框q程的指?<br /> DWORD                  双字(32? <br /> ENHMFENUMPROC          指向一个应用程序定义的回调函数的指针,该回调函数枚丑֢强的元文件记?<br /> ENUMRESLANGPROC        指向一个应用程序定义的回调函数的指针,该回调函数枚举资源语a?<br /> ENUMRESNAMEPROC        指向一个应用程序定义的回调函数的指针,该回调函数枚举资源名U?<br /> ENUMRESTYPEPROC        指向一个应用程序定义的回调函数的指针,该回调函数枚举资源类型?nbsp; <br /> FARPROC                指向一个回调函数的指针 <br /> FLOAT                  点变量 <br /> FMORDER                32位字体映值的数组 <br /> FONTENUMPROC           指向一个应用程序定义的回调函数的指针,该回调函数枚丑֭?<br /> GOBJENUMPROC           指向一个应用程序定义的回调函数的指针,该回调函数枚丑֛形设备接?GDI)对象 <br /> HACCEL                 加速键表句?<br /> HANDLE                 对象的句?<br /> HBITMAP                位图句柄 <br /> HBRUSH                 d句柄 <br /> HCONV                  动态数据交?DDE)会话句柄 <br /> HCONVLIST              DDE会话句柄 <br /> HCURSOR                光标句柄 <br /> HDC                    讑֤描述?DC)句柄 <br /> HDDEDATA               DDE数据句柄 <br /> HDLG                   对话框句?<br /> HDWP                   延期H口位置l构句柄 <br /> HENHMETAFILE           增强原文件句?<br /> HFILE                  文g句柄 <br /> HFONT                  字体句柄 <br /> HGDIOBJ                GDI对象句柄 <br /> HGLOBAL                全局内存块句?<br /> HHOOK                  钩子句柄 <br /> HICON                  图标句柄 <br /> HINSTANCE              实例句柄 <br /> HKEY                   登记关键字句?<br /> HLOCAL                 局部内存块句柄 <br /> HMEMU                  菜单句柄 <br /> HMETAFILE              元文件句?<br /> HMIDIIN                乐器的数字化接口(MIDI)输入文g句柄 <br /> HMIDIOUT               MIDI输出文g句柄 <br /> HMMIO                  文g句柄 <br /> HOOKPROC               指向一个应用程序定义的钩子函数的指?<br /> HPALETTE               调色板句?<br /> HPEN                   ȝ句柄 <br /> HRGN                   域句?<br /> HRSRC                  资源句柄 <br /> HSZ                    DDE字符串句?<br /> HWAVEIN                波Ş输入文g句柄 <br /> HWAVEOUT               波Ş输出文g句柄 <br /> HWINSTA                工作站句?<br /> HWND                   H口句柄 <br /> INT                    W号整数 <br /> LANGID                 语言标识W?<br /> LCID                   所在国(Locale)标识W?<br /> LCTYPE                 所在国cd <br /> LINEDDAPROC            指向一个回调函数的指针Q该回调函数处理行坐?<br /> LONG                   32位符h?<br /> LP                     指向一个以"NULL"l束的Unicode(TM)字符串的指针 <br /> LPARAM                 32位消息参?<br /> LPBOOL                 指向一个布?yu)变量的指?<br /> LPBYTE                 指向一个字节的指针 <br /> LPCCH                  指向一个Windows字符帔R的指?<br /> LPCCHOOKPROC           指向一个应用程序定义的钩子函数的指?<br /> LPCFHOOLPROC           指向一个应用程序定义的钩子函数的指?<br /> LPCH                   指向一个Windows字符的指?<br /> LPCOLORREF             指向一个COLORREF值的指针 <br /> LPCRITICAL_SECTION     指向一个界段对象的指?<br /> LPCSTR                 指向一个以"NULL"l束的WINDOWS字符串常量的指针 <br /> LPCTSTR                指向一个以"NULL"l束的Unicode或Windows字符串常量的指针        <br /> LPCWCH                 指向一个以"NULL"指向一个以"NULL"l束的Unicode字符帔R的指?nbsp;  <br /> LPCWSTR                指向一个以"NULL"指向一个以"NULL"l束的Unicode字符串常量的指针  <br /> LPDWORD                指向一个无W号双字(32?的指?nbsp;                <br /> LPFRHOOLPROC           指向一个应用程序定义的钩子函数的指?<br /> LPHANDLE               指向一个句柄的指针 <br /> LOHANDLER_FUNCTION     指向一个处理程序函数的指针 <br /> LPHWAVEIN              指向一个L形输入文件句柄的指针 <br /> LPHWAVEOUT             指向一个L形输出文件句柄的指针 <br /> LPINT                  指向一个符h数的指针 <br /> LPLONG                 指向一个符号长整数(32?的指?<br /> LPOFNHOOKPROC          指向一个应用程序定义的钩子函数的指?<br /> LPPRINTHOOKPROC        指向一个应用程序定义的钩子函数的指?<br /> LPSETUPHOOKPROC        指向一个应用程序定义的钩子函数的指?<br /> LPTSTR                 指向一个以NULLl束的Unicode或Windows字符串的指针 <br /> LRESULT                消息处理的符L?<br /> LPVOID                 指向Mcd的指?<br /> LPWSTR                 指向一个以"NULL"l束的Unicode字符串的指针 <br /> LUID                   局部唯一的标识符 <br /> MCIDEVICEID            媒体控制接口(MCI)讑֤标识W?<br /> MFENUMPROC             指向一个应用程序定义的回调函数的指针,该回调函数枚丑օ文g记录 <br /> MMRESULT               多媒体消息的处理l果 <br /> NPSTR                  指向一个以"NULL"l束的Windows字符串的指针 <br /> NWPSTR                 指向一个以"NULL"l束的Unicode字符串的指针 <br /> PBOOL                  指向一个布?yu)变量的指?<br /> PBYTE                  指向一个字节的指针 <br /> PCCH                   指向一个Windows字符帔R的指?<br /> PCH                    指向一个Windows字符的指?<br /> PCHAR                  指向一个Windows字符的指?<br /> PCRITICAL_SECTION      指向一个界段对象的指?<br /> PCSTR                  指向一个以"NULL"l束的Windows字符串常量的指针 <br /> PCWCH                  指向一个Unicode字符帔R的指?<br /> PCWSTR                 指向一个以"NULL"l束的Unicode字符串常量的指针 <br /> PDWORD                 指向一个无W号双字的指?<br /> PFLOAT                 指向一个Q点变量的指针 <br /> PFNCALLBACK            指向一个回调函数的指针 <br /> PHANDLE                指向一个句柄的指针 <br /> PHANDLER_ROUTINE       指向一个处理程序的指针 <br /> PHKEY                  指向一个登记关键字的指?<br /> PINT                   指向一个符h数的指针 <br /> PLONG                  指向一个符号长整数的指?<br /> PLUID                  指向一个局部唯一的表C符(LUID)的指?<br /> PROPENUMPROC           指向一个应用程序定义的回调函数的指针,该回调函数枚丄口特?<br /> PSHORT                 指向一个符L整数的指?<br /> PSID                   指向一个加密标识符(SID)的指?<br /> PSTR                   指向一个以"NULL"l束的Windows字符串的指针 <br /> PSZ                    指向一个以"NULL"l束的Windows字符串的指针 <br /> PTCH                   指向一个Windows或Unicode字符的指?<br /> PTCHAR                 指向一个Windows或Unicode字符的指?<br /> PTSTR                  指向一个以"NULL"l束的Windows或Unicode字符串的指针 <br /> PUCHAR                 指向一个无W号Windows字符的指?<br /> PUINT                  指向一个无W号整数的指?<br /> PULONG                 指向一个无W号长整数的指针 <br /> PUSHORT                指向一个无W号短整数的指针 <br /> PVOID                  指向Mcd的指?<br /> PWCH                   指向一个Unicode字符的指?<br /> PWCHAR                 指向一个Unicode字符的指?<br /> PWORD                  指向一个无W号字的指针 <br /> PWSTR                  指向一个以"NULL"l束的Unicode字符串的指针 <br /> REGSAM                 登记关键字的加密掩码 <br /> SC_HANDLE              服务句柄 <br /> SERVICE_STATUS_HANDLE  服务状态值句?<br /> SHORT                  短整?<br /> SPHANDLE               指向一个句柄的指针 <br /> TCHAR                  Unicode或Windows字符 <br /> TIMERPROC              指向一个应用程序定义的定时器回调函数的指针 <br /> UCHAR                  无符号Windows字符 <br /> UINT                   无符h?<br /> ULONG                  无符号长整数 <br /> USHORT                 无符L整数 <br /> VOID                   Mcd <br /> WCHAR                  Unicode字符 <br /> WNDENUMPROC            指向一个应用程序定义的回调函数的指针,该回调函数枚丄?<br /> WNDPROC                指向一个应用程序定义的H口q程的指?<br /> WORD                   无符号字(16? <br /> WPARAM                 32位消息参?<br /> YIELDPROC              指向一个输出回调函数的指针 <img src ="http://www.aygfsteel.com/javascript/aggbug/164386.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/javascript/" target="_blank">付轩</a> 2007-11-30 19:39 <a href="http://www.aygfsteel.com/javascript/archive/2007/11/30/164386.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>J2EE For Weblogic开发中Weblogic.xml文g的配|?(?http://www.aygfsteel.com/javascript/archive/2007/08/17/137471.html付轩付轩Fri, 17 Aug 2007 02:03:00 GMThttp://www.aygfsteel.com/javascript/archive/2007/08/17/137471.html 

      weblogic Server允许通过讄weblogic应用E序扩展描述W(weblogic.xmlQ配|jsp容器Q?br>该文仉常位于web应用E序的web-inf目录下。一般不通过修改weblogic文g直接配置Q?br>而是通过控制台配|该文gQ在Deploments-->web Application-->defaultWebApp中配|?br>可在开发和生环境中配|不同的信息?br>主要配置信息Q?br>compilerSupportsEncoding //trueQ-支持使用字符?br>encoding //指定jsp文g的默认字W集Q如gb2312Q?br>vervose //是否调试信息输出到览器和日志Q?br>keepgenerated //是否让编译jsp文g产生?java文g持箋存在Q?br>Page Check Seconds //正数Q-在以Uؓ单位的时间间隔检查jsp文g是否发生了修改,如果是则重新~译Q?br>           0Q-在每一个请求检查jsp;
           -1Q-不对jsp文gq行查?br>Precompile //trueQ-在weblogic服务器启动时自动~译所有的jsp?br>Debug Enable //trueQ-是否允许调试?br>
Weblogic .xml

<? xml version="1.0" encoding="GB2312" ?>
<! DOCTYPE weblogic-web-app PUBLIC "-//BEA Systems, Inc.//DTD Web Application 8.1//EN" "http://www.bea.com/servers/wls810/dtd/weblogic810-web-jar.dtd" >
< weblogic-web-app >
    
<!--
        为web.xml所定义角色赋?br>        如果是Weblogic 8.1 SP2 或者之前的版本Q可以不定义security-role-assignment
        如果是SP3Q必L工添加所有principalQ角色或角色l)Q?br>        详细介绍请参?nbsp;PAFA3开发设计指?nbsp;文 ?br>     
-->
    
< security-role-assignment >
        
<!--  role-name 必须跟web.xml中security-role标记下的role-name取值相?nbsp; -->
        
< role-name > pafaDemoUser </ role-name >
        
<!--  principal-name 必须是UM中定义的角色或者角色组Q不能是用户  -->
        
< principal-name > r_usermanager_rm_user </ principal-name >
        
< principal-name > p_g_rmtest03_myopr </ principal-name >     
        
< principal-name > Administrators </ principal-name >     
    
</ security-role-assignment >

    
< jsp-descriptor >
        
< jsp-param >
            
< param-name > pageCheckSeconds </ param-name >
            
< param-value > 1 </ param-value >
        
</ jsp-param >
        
< jsp-param >
            
< param-name > compilerSupportsEncoding </ param-name >
            
< param-value > true </ param-value >
        
</ jsp-param >
        
< jsp-param >
            
< param-name > encoding </ param-name >
            
< param-value > GB2312 </ param-value >
        
</ jsp-param >
        
< jsp-param >
            
< param-name > verbose </ param-name >
            
< param-value > true </ param-value >
        
</ jsp-param >
        
< jsp-param >
            
< param-name > printNulls </ param-name >
            
< param-value > false </ param-value >
        
</ jsp-param >
        
< jsp-param >
            
< param-name > keepgenerated </ param-name >
            
< param-value > true </ param-value >
        
</ jsp-param >
    
</ jsp-descriptor >
</ weblogic-web-app >


付轩 2007-08-17 10:03 发表评论
]]>
javascripthttp://www.aygfsteel.com/javascript/archive/2007/08/10/135674.html付轩付轩Thu, 09 Aug 2007 22:55:00 GMThttp://www.aygfsteel.com/javascript/archive/2007/08/10/135674.htmlhttp://www.aygfsteel.com/javascript/comments/135674.htmlhttp://www.aygfsteel.com/javascript/archive/2007/08/10/135674.html#Feedback0http://www.aygfsteel.com/javascript/comments/commentRss/135674.htmlhttp://www.aygfsteel.com/javascript/services/trackbacks/135674.html<script language="javascript">
var obj="";
for(i=0;i<document.all.length;i++)
obj+=document.all[i].tagName+";";
alert(obj);
</script>
注意要把E式攑ֈ</html>之后哦?

付轩 2007-08-10 06:55 发表评论
]]>
java静态工厂方?/title><link>http://www.aygfsteel.com/javascript/archive/2007/07/14/130294.html</link><dc:creator>付轩</dc:creator><author>付轩</author><pubDate>Sat, 14 Jul 2007 12:00:00 GMT</pubDate><guid>http://www.aygfsteel.com/javascript/archive/2007/07/14/130294.html</guid><wfw:comment>http://www.aygfsteel.com/javascript/comments/130294.html</wfw:comment><comments>http://www.aygfsteel.com/javascript/archive/2007/07/14/130294.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.aygfsteel.com/javascript/comments/commentRss/130294.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/javascript/services/trackbacks/130294.html</trackback:ping><description><![CDATA[<p style="TEXT-INDENT: 2em">public class GlobalConfig {</p> <p style="TEXT-INDENT: 2em">private static final GlobalConfig INSTANCE=new GlobalConfig();<br><br>       private GlobalConfig (){}//构造方?br><br>       }<br><br>      问题是:当第一ơ调用这个类Ӟprivate static final GlobalConfig INSTANCE=new GlobalConfig(); 被执?Q然后INSTANCE是不是就一直保留在内存中,不会被java垃圾回收Q?</p> <img src ="http://www.aygfsteel.com/javascript/aggbug/130294.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/javascript/" target="_blank">付轩</a> 2007-07-14 20:00 <a href="http://www.aygfsteel.com/javascript/archive/2007/07/14/130294.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>hibernate 延迟加蝲问题http://www.aygfsteel.com/javascript/archive/2007/07/03/127906.html付轩付轩Tue, 03 Jul 2007 09:23:00 GMThttp://www.aygfsteel.com/javascript/archive/2007/07/03/127906.htmlhttp://www.aygfsteel.com/javascript/comments/127906.htmlhttp://www.aygfsteel.com/javascript/archive/2007/07/03/127906.html#Feedback0http://www.aygfsteel.com/javascript/comments/commentRss/127906.htmlhttp://www.aygfsteel.com/javascript/services/trackbacks/127906.htmlsolutions. One is to initialize the publisher explicitly, we can call the method Hibernate.initialize()
for this task. This will force the publisher object to be loaded from database.
Session session = factory.openSession();
try {
Book book = (Book) session.get(Book.class, id);
Hibernate.initialize(book.getPublisher());
return book;
} finally {
session.close();
}
Another solution is to turn off the lazy initialization feature for this association. This may decrease
the performance as the publisher object will be loaded together with the book object every time.
<hibernate-mapping package="mo.org.cpttm.bookshop">
<class name="Book" table="BOOK">
...
<many-to-one name="publisher" class="Publisher" column="PUBLISHER_ID"
lazy="false" />
</class>
</hibernate-mapping>

付轩 2007-07-03 17:23 发表评论
]]>
վ֩ģ壺 ԭ| | | | ɳ| Ĭ| | ޵| | | Դ| | ͨ| | | | | | ɽ| | ۶| ҳ| | ƽ| | DZɽ| ӳ| | | | ̨| | ɽ| | ƽ| | ˮ| ¬| | | ¬|