锘??xml version="1.0" encoding="utf-8" standalone="yes"?>国产亚洲精品bt天堂精选,亚洲国产精品成人一区二区,亚洲香蕉视频http://m.shnenglu.com/weiyan/archive/2006/07/06/9500.htmlwillwillThu, 06 Jul 2006 10:42:00 GMThttp://m.shnenglu.com/weiyan/archive/2006/07/06/9500.htmlhttp://m.shnenglu.com/weiyan/comments/9500.htmlhttp://m.shnenglu.com/weiyan/archive/2006/07/06/9500.html#Feedback0http://m.shnenglu.com/weiyan/comments/commentRss/9500.htmlhttp://m.shnenglu.com/weiyan/services/trackbacks/9500.html C/C+璇█struct娣卞眰鎺㈢儲

鍑哄錛歅Conline

1. struct鐨勫法澶т綔鐢?br />銆銆闈㈠涓涓漢鐨勫ぇ鍨婥/C++紼嬪簭鏃訛紝鍙湅鍏跺struct鐨勪嬌鐢ㄦ儏鍐墊垜浠氨鍙互瀵瑰叾緙栧啓鑰呯殑緙栫▼緇忛獙榪涜璇勪及銆傚洜涓轟竴涓ぇ鍨嬬殑C/C++紼嬪簭錛屽娍蹇呰娑夊強涓浜?鐢氳嚦澶ч噺)榪涜鏁版嵁緇勫悎鐨勭粨鏋勪綋錛岃繖浜涚粨鏋勪綋鍙互灝嗗師鏈剰涔夊睘浜庝竴涓暣浣撶殑鏁版嵁緇勫悎鍦ㄤ竴璧楓備粠鏌愮紼嬪害涓婃潵璇達紝浼氫笉浼氱敤struct錛屾庢牱鐢╯truct鏄尯鍒竴涓紑鍙戜漢鍛樻槸鍚﹀叿澶囦赴瀵屽紑鍙戠粡鍘嗙殑鏍囧織銆?/font>

銆銆鍦ㄧ綉緇滃崗璁侀氫俊鎺у埗銆佸祵鍏ュ紡緋葷粺鐨凜/C++緙栫▼涓紝鎴戜滑緇忓父瑕佷紶閫佺殑涓嶆槸綆鍗曠殑瀛楄妭嫻侊紙char鍨嬫暟緇勶級錛岃屾槸澶氱鏁版嵁緇勫悎璧鋒潵鐨勪竴涓暣浣擄紝鍏惰〃鐜板艦寮忔槸涓涓粨鏋勪綋銆?/font>

銆銆緇忛獙涓嶈凍鐨勫紑鍙戜漢鍛樺線寰灝嗘墍鏈夐渶瑕佷紶閫佺殑鍐呭渚濋『搴忎繚瀛樺湪char鍨嬫暟緇勪腑錛岄氳繃鎸囬拡鍋忕Щ鐨勬柟娉曚紶閫佺綉緇滄姤鏂囩瓑淇℃伅銆傝繖鏍峰仛緙栫▼澶嶆潅錛屾槗鍑洪敊錛岃屼笖涓鏃︽帶鍒舵柟寮忓強閫氫俊鍗忚鏈夋墍鍙樺寲錛岀▼搴忓氨瑕佽繘琛岄潪甯哥粏鑷寸殑淇敼銆?/font>

銆銆涓涓湁緇忛獙鐨勫紑鍙戣呭垯鐏墊椿榪愮敤緇撴瀯浣擄紝涓句竴涓緥瀛愶紝鍋囪緗戠粶鎴栨帶鍒跺崗璁腑闇瑕佷紶閫佷笁縐嶆姤鏂囷紝鍏舵牸寮忓垎鍒負packetA銆乸acketB銆乸acketC錛?/font>

struct structA
{
int a;
char b;
};

struct structB
{
char a;
short b;
};

struct structC
{
int a;
char b;
float c;
}
銆銆浼樼鐨勭▼搴忚璁¤呰繖鏍瘋璁′紶閫佺殑鎶ユ枃錛?/font>

struct CommuPacket
{
int iPacketType;銆銆//鎶ユ枃綾誨瀷鏍囧織
union銆銆銆銆銆銆//姣忔浼犻佺殑鏄笁縐嶆姤鏂囦腑鐨勪竴縐嶏紝浣跨敤union
{
聽 struct structA packetA;
聽 struct structB packetB;
聽 struct structC packetC;
}
};
銆銆鍦ㄨ繘琛屾姤鏂囦紶閫佹椂錛岀洿鎺ヤ紶閫乻truct CommuPacket涓涓暣浣撱?/font>

銆銆鍋囪鍙戦佸嚱鏁扮殑鍘熷艦濡備笅錛?/font>

// pSendData錛氬彂閫佸瓧鑺傛祦鐨勯鍦板潃錛宨Len錛氳鍙戦佺殑闀垮害
Send(char * pSendData, unsigned int聽 iLen);
鍙戦佹柟鍙互鐩存帴榪涜濡備笅璋冪敤鍙戦乻truct CommuPacket鐨勪竴涓疄渚媠endCommuPacket錛?br />Send( (char *)&sendCommuPacket , sizeof(CommuPacket) );
鍋囪鎺ユ敹鍑芥暟鐨勫師褰㈠涓嬶細
// pRecvData錛氬彂閫佸瓧鑺傛祦鐨勯鍦板潃錛宨Len錛氳鎺ユ敹鐨勯暱搴?br />//榪斿洖鍊鹼細瀹為檯鎺ユ敹鍒扮殑瀛楄妭鏁?br />unsigned int Recv(char * pRecvData, unsigned int聽 iLen)錛?br />銆銆鎺ユ敹鏂瑰彲浠ョ洿鎺ヨ繘琛屽涓嬭皟鐢ㄥ皢鎺ユ敹鍒扮殑鏁版嵁淇濆瓨鍦╯truct CommuPacket鐨勪竴涓疄渚媟ecvCommuPacket涓細

Recv( (char *)&recvCommuPacket , sizeof(CommuPacket) );
銆銆鎺ョ潃鍒ゆ柇鎶ユ枃綾誨瀷榪涜鐩稿簲澶勭悊錛?/font>

switch(recvCommuPacket. iPacketType)
{
聽聽聽 case PACKET_A:
聽聽聽 鈥β犅犅?//A綾繪姤鏂囧鐞?br />聽聽聽 break;
聽聽聽 case PACKET_B:
聽聽聽 鈥︺聽 //B綾繪姤鏂囧鐞?br />聽聽聽 break;
聽聽聽 case PACKET_C:
聽聽聽 鈥β犅?//C綾繪姤鏂囧鐞?br />聽聽聽 break;
}
銆銆浠ヤ笂紼嬪簭涓渶鍊煎緱娉ㄦ剰鐨勬槸

Send( (char *)&sendCommuPacket , sizeof(CommuPacket) );
Recv( (char *)&recvCommuPacket , sizeof(CommuPacket) );
銆銆涓殑寮哄埗綾誨瀷杞崲錛?char *)&sendCommuPacket銆?char *)&recvCommuPacket錛屽厛鍙栧湴鍧錛屽啀杞寲涓篶har鍨嬫寚閽堬紝榪欐牱灝卞彲浠ョ洿鎺ュ埄鐢ㄥ鐞嗗瓧鑺傛祦鐨勫嚱鏁般?/font>

銆銆鍒╃敤榪欑寮哄埗綾誨瀷杞寲錛屾垜浠繕鍙互鏂逛究紼嬪簭鐨勭紪鍐欙紝渚嬪瑕佸sendCommuPacket鎵澶勫唴瀛樺垵濮嬪寲涓?錛屽彲浠ヨ繖鏍瘋皟鐢ㄦ爣鍑嗗簱鍑芥暟memset()錛?/font>

memset((char *)&sendCommuPacket,0, sizeof(CommuPacket));

2. struct鐨勬垚鍛樺榻?br />銆銆Intel銆佸井杞瓑鍏徃鏇劇粡鍑鴻繃涓閬撶被浼肩殑闈㈣瘯棰橈細
1. #include <iostream.h>
2. #pragma pack(8)
3. struct example1
4. {
5. short a;
6. long b;
7. };
8. struct example2
9. {
10. char c;
11. example1 struct1;
12. short e;聽聽聽
13. };
14. #pragma pack()
15. int main(int argc, char* argv[])
16. {
17. example2 struct2;
18. cout << sizeof(example1) << endl;
19. cout << sizeof(example2) << endl;
20. cout << (unsigned int)(&struct2.struct1) - (unsigned int)(&struct2) << endl;
21. return 0;
22. }
銆銆闂▼搴忕殑杈撳叆緇撴灉鏄粈涔堬紵
銆銆絳旀鏄細
8
16
4
銆銆涓嶆槑鐧斤紵榪樻槸涓嶆槑鐧斤紵涓嬮潰涓涓閬撴潵錛?br />2.1 鑷劧瀵圭晫
銆銆struct鏄竴縐嶅鍚堟暟鎹被鍨嬶紝鍏舵瀯鎴愬厓绱犳棦鍙互鏄熀鏈暟鎹被鍨嬶紙濡俰nt銆乴ong銆乫loat絳夛級鐨勫彉閲忥紝涔熷彲浠ユ槸涓浜涘鍚堟暟鎹被鍨嬶紙濡俛rray銆乻truct銆乽nion絳夛級鐨勬暟鎹崟鍏冦傚浜庣粨鏋勪綋錛岀紪璇戝櫒浼氳嚜鍔ㄨ繘琛屾垚鍛樺彉閲忕殑瀵歸綈錛屼互鎻愰珮榪愮畻鏁堢巼銆傜己鐪佹儏鍐典笅錛岀紪璇戝櫒涓虹粨鏋勪綋鐨勬瘡涓垚鍛樻寜鍏惰嚜鐒跺鐣岋紙natural alignment錛夋潯浠跺垎閰嶇┖闂淬傚悇涓垚鍛樻寜鐓у畠浠澹版槑鐨勯『搴忓湪鍐呭瓨涓『搴忓瓨鍌紝絎竴涓垚鍛樼殑鍦板潃鍜屾暣涓粨鏋勭殑鍦板潃鐩稿悓銆?br />銆銆鑷劧瀵圭晫(natural alignment)鍗抽粯璁ゅ榻愭柟寮忥紝鏄寚鎸夌粨鏋勪綋鐨勬垚鍛樹腑size鏈澶х殑鎴愬憳瀵歸綈銆?br />銆銆渚嬪錛?br />struct naturalalign
{
char a;
short b;
char c;
};
銆銆鍦ㄤ笂榪扮粨鏋勪綋涓紝size鏈澶х殑鏄痵hort錛屽叾闀垮害涓?瀛楄妭錛屽洜鑰岀粨鏋勪綋涓殑char鎴愬憳a銆乧閮戒互2涓哄崟浣嶅榻愶紝sizeof(naturalalign)鐨勭粨鏋滅瓑浜?錛?br />銆銆濡傛灉鏀逛負錛?br />struct naturalalign
{
char a;
int b;
char c;
};
銆銆鍏剁粨鏋滄樉鐒朵負12銆?/font>

2.2鎸囧畾瀵圭晫
銆銆涓鑸湴錛屽彲浠ラ氳繃涓嬮潰鐨勬柟娉曟潵鏀瑰彉緙虹渷鐨勫鐣屾潯浠訛細
銆銆路 浣跨敤浼寚浠?pragma pack (n)錛岀紪璇戝櫒灝嗘寜鐓涓瓧鑺傚榻愶紱
銆銆路 浣跨敤浼寚浠?pragma pack ()錛屽彇娑堣嚜瀹氫箟瀛楄妭瀵歸綈鏂瑰紡銆?br />銆銆娉ㄦ剰錛氬鏋?pragma pack (n)涓寚瀹氱殑n澶т簬緇撴瀯浣撲腑鏈澶ф垚鍛樼殑size錛屽垯鍏朵笉璧蜂綔鐢紝緇撴瀯浣撲粛鐒舵寜鐓ize鏈澶х殑鎴愬憳榪涜瀵圭晫銆?br />銆銆渚嬪錛?br />#pragma pack (n)
struct naturalalign
{
char a;
int b;
char c;
};
#pragma pack ()
銆銆褰搉涓?銆?銆?6鏃訛紝鍏跺榻愭柟寮忓潎涓鏍鳳紝sizeof(naturalalign)鐨勭粨鏋滈兘絳変簬12銆傝屽綋n涓?鏃訛紝鍏跺彂鎸ヤ簡浣滅敤錛屼嬌寰梥izeof(naturalalign)鐨勭粨鏋滀負8銆?br />銆銆鍦╒C++ 6.0緙栬瘧鍣ㄤ腑錛屾垜浠彲浠ユ寚瀹氬叾瀵圭晫鏂瑰紡錛屽叾鎿嶄綔鏂瑰紡涓轟緷嬈¢夋嫨projetct > setting > C/C++鑿滃崟錛屽湪struct member alignment涓寚瀹氫綘瑕佺殑瀵圭晫鏂瑰紡銆?br />銆銆鍙﹀錛岄氳繃__attribute((aligned (n)))涔熷彲浠ヨ鎵浣滅敤鐨勭粨鏋勪綋鎴愬憳瀵歸綈鍦╪瀛楄妭杈圭晫涓婏紝浣嗘槸瀹冭緝灝戣浣跨敤錛屽洜鑰屼笉浣滆緇嗚瑙c?/font>

2.3 闈㈣瘯棰樼殑瑙g瓟
銆銆鑷蟲錛屾垜浠彲浠ュIntel銆佸井杞殑闈㈣瘯棰樿繘琛屽叏闈㈢殑瑙g瓟銆?br />銆銆紼嬪簭涓2琛?pragma pack (8)铏界劧鎸囧畾浜嗗鐣屼負8錛屼絾鏄敱浜巗truct example1涓殑鎴愬憳鏈澶ize涓?錛坙ong鍙橀噺size涓?錛夛紝鏁卻truct example1浠嶇劧鎸?瀛楄妭瀵圭晫錛宻truct example1鐨剆ize涓?錛屽嵆絎?8琛岀殑杈撳嚭緇撴灉錛?br />銆銆struct example2涓寘鍚簡struct example1錛屽叾鏈韓鍖呭惈鐨勭畝鍗曟暟鎹垚鍛樼殑鏈澶ize涓?錛坰hort鍙橀噺e錛夛紝浣嗘槸鍥犱負鍏跺寘鍚簡struct example1錛岃宻truct example1涓殑鏈澶ф垚鍛榮ize涓?錛宻truct example2涔熷簲浠?瀵圭晫錛?pragma pack (8)涓寚瀹氱殑瀵圭晫瀵箂truct example2涔熶笉璧蜂綔鐢紝鏁?9琛岀殑杈撳嚭緇撴灉涓?6錛?br />銆銆鐢變簬struct example2涓殑鎴愬憳浠?涓哄崟浣嶅鐣岋紝鏁呭叾char鍙橀噺c鍚庡簲琛ュ厖3涓┖錛屽叾鍚庢墠鏄垚鍛榮truct1鐨勫唴瀛樼┖闂達紝20琛岀殑杈撳嚭緇撴灉涓?銆?br />



will 2006-07-06 18:42 鍙戣〃璇勮
]]>
鏁版嵁搴撲腑瀛樺彇BMP鍥懼儚http://m.shnenglu.com/weiyan/archive/2006/07/06/9482.htmlwillwillThu, 06 Jul 2006 03:56:00 GMThttp://m.shnenglu.com/weiyan/archive/2006/07/06/9482.htmlhttp://m.shnenglu.com/weiyan/comments/9482.htmlhttp://m.shnenglu.com/weiyan/archive/2006/07/06/9482.html#Feedback1http://m.shnenglu.com/weiyan/comments/commentRss/9482.htmlhttp://m.shnenglu.com/weiyan/services/trackbacks/9482.html浜岃繘鍒跺ぇ瀵硅薄BLOB(Binary Large Object)
鍏跺瓨鍙栫殑鏂瑰紡涓庢櫘閫氭暟鎹湁鎵鍖哄埆銆傛湰鏂囧皢浠嬬粛鍒╃敤ADO鍦ㄦ暟鎹簱涓瓨鍙朆LOB鏁版嵁鐨勫叿浣撳疄鐜拌繃紼嬶紝騫剁粰鍑哄疄鐜板浘鍍忓瓨鍙栨樉紺虹殑瀹屾暣紺轟緥宸ョ▼銆?

浜屻佸墠鏈熷噯澶?

棣栧厛鎴戜滑寤虹珛涓寮犲悕涓簎serinfo鐨勮〃錛屽寘鍚笁涓瓧孌?id,username,old,photo,鍏朵腑photo鏄竴涓彲浠ュ瓨鍌ㄤ簩榪涘埗鏁版嵁鐨勫瓧孌點?

2.1 鍦⊿QL SERVER涓垜浠彲浠ュ湪Query Analyzer涓洿鎺ヨ緭鍏ュ涓嬭鍙ュ垱寤猴細

CREATE TABLE [dbo].[userphoto] (
[id] [int] IDENTITY (1, 1) NOT NULL ,
[username] [varchar] (50) NULL ,
[old] [int] NULL ,
[photo] [image] NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
鍏朵腑photo鎴戜滑瀹氫箟涓篿mage綾誨瀷鐨勫瓧孌點?

2.2 鍦ˋCCESS涓垱寤虹殑鏂規硶濡備笅錛?

寤虹珛涓寮犳柊琛ㄥ寘鎷琲d,username,old,photo鍥涗釜瀛楁錛岀劧鍚庢墦寮琛紝閫夎鍥捐彍鍗曚腑璁捐瑙嗗浘錛屽皢id璁劇疆涓鴻嚜鍔ㄧ紪鍙風殑閫掑闀挎暣鍨嬶紝username涓烘枃鏈紝old涓烘暟瀛楋紝photo涓篛LE瀵硅薄銆?
鍦ㄦ垜浠殑紺轟緥宸ョ▼涓凡緇忓寘鍚簡涓涓緩绔嬪ソ鐨凙CCESS2000鐨勫簱錛屼綘鍙互鐩存帴鎷挎潵浣跨敤銆?

涓夈佸叿浣撴楠?

3.1 BLOB鏁版嵁鐨勪繚瀛?

BLOB綾誨瀷鐨勬暟鎹棤娉曠敤鏅氱殑鏂瑰紡榪涜瀛樺偍錛屾垜浠渶瑕佷嬌鐢ˋppendChunk鍑芥暟錛孉ppendChunk鍖呭惈鍦‵ield瀵硅薄涓紝鍘熷瀷濡備笅錛?
HRESULT AppendChunk (const _variant_t & Data );
浠庡嚱鏁板師鍨嬩腑鍙互鐪嬪埌鍏抽敭鐨勯棶棰樻槸鎴戜滑闇鎶婁簩榪涘埗鏁版嵁璧嬪肩粰VARIANT綾誨瀷鐨勫彉閲忥紝涓嬮潰鎴戜滑緇欏嚭鍏蜂綋鐨勪唬鐮佸茍浣滅畝鍗曠殑鍒嗘瀽:

///鍋囪m_pBMPBuffer鎸囬拡鎸囧悜涓鍧楅暱搴︿負m_nFileLen鐨勪簩榪涘埗鏁版嵁,騫朵笖宸茬粡鎴愬姛鎵撳紑浜嗚褰曢泦瀵硅薄m_pRecordset///

char *pBuf = m_pBMPBuffer ;
VARIANT varBLOB;
SAFEARRAY *psa;
SAFEARRAYBOUND rgsabound[1];

m_pRecordset->AddNew(); ///娣誨姞鏂拌褰?
m_pRecordset->PutCollect("username",_variant_t("灝忔潕")); ///涓烘柊璁板綍濉厖username瀛楁
m_pRecordset->PutCollect("old",_variant_t((long)28); ///濉厖old瀛楁

if(pBuf){
rgsabound[0].lLbound = 0;
rgsabound[0].cElements = m_nFileLen;
psa = SafeArrayCreate(VT_UI1, 1, rgsabound); ///鍒涘緩SAFEARRAY瀵硅薄

for (long i = 0; i < (long)m_nFileLen; i++)
SafeArrayPutElement (psa, &i, pBuf++); ///灝唒Buf鎸囧悜鐨勪簩榪涘埗鏁版嵁淇濆瓨鍒癝AFEARRAY瀵硅薄psa涓?

varBLOB.vt = VT_ARRAY | VT_UI1;///灝唙arBLOB鐨勭被鍨嬭緗負BYTE綾誨瀷鐨勬暟緇?

varBLOB.parray = psa; ///涓簐arBLOB鍙橀噺璧嬪?

m_pRecordset->GetFields()->GetItem("photo")->AppendChunk(varBLOB); ///鍔犲叆BLOB綾誨瀷鐨勬暟鎹?
}

m_pRecordset->Update(); ///淇濆瓨鎴戜滑鐨勬暟鎹埌搴撲腑

鑷蟲鎴戜滑鐨勬暟鎹凡緇忔垚鍔熷湴淇濆瓨鍒頒簡鏁版嵁搴撲腑,鎺ヤ笅鏉ユ垜浠墍瑕佸仛鐨勫伐浣滀究鏄皢璇ユ暟鎹彁鍙栧嚭鏉?璁╂垜浠戶緇惂!

3.2 BLOB鏁版嵁鐨勮鍙?

瀵瑰簲浜庝繚瀛樻暟鎹椂鎴戜滑鎵浣跨敤鐨凙ppendChunk鍑芥暟錛岃鍙栨暟鎹簲璇ヤ嬌鐢℅etChunk鍑芥暟,GetChunk鐨勫師鍨嬪涓?
_variant_t GetChunk (long Length );
緇欏嚭鏁版嵁鐨勯暱搴﹀悗GetChunk灝嗚繑鍥炲寘鍚暟鎹殑VARIANT綾誨瀷鍙橀噺,鐒跺悗鎴戜滑鍙互鍒╃敤SafeArrayAccessData鍑芥暟寰楀埌VARIANT鍙橀噺涓寚鍚戞暟鎹殑char *綾誨瀷鐨勬寚閽?浠ユ柟渚挎垜浠殑澶勭悊錛屽叿浣撲唬鐮佸涓嬶細

long lDataSize = m_pRecordset->GetFields()->GetItem("photo")->ActualSize;
///寰楀埌鏁版嵁鐨勯暱搴?

if(lDataSize > 0)
{
_variant_t varBLOB;

varBLOB = m_pRecordset->GetFields()->GetItem("photo")->GetChunk(lDataSize);

if(varBLOB.vt == (VT_ARRAY | VT_UI1)) ///鍒ゆ柇鏁版嵁綾誨瀷鏄惁姝g‘
{
銆銆 char *pBuf = NULL;
銆銆 SafeArrayAccessData(varBLOB.parray,(void **)&pBuf);
銆銆 ///寰楀埌鎸囧悜鏁版嵁鐨勬寚閽?/*****鍦ㄨ繖閲屾垜浠彲浠ュpBuf涓殑鏁版嵁榪涜澶勭悊*****/
銆銆 SafeArrayUnaccessData (varBLOB.parray);
銆銆 }

}

浠ヤ笂鎴戜滑鎴愬姛瀹炵幇浜咮LOB鏁版嵁鍦ㄦ暟鎹簱涓殑瀛樺彇錛屼負浜嗚澶у鏈夌幇鎴愮殑渚嬪瓙鍙互鍙傝冿紝鏈枃鎻愪緵浜嗙ず渚嬪伐紼嬶紝鍦ㄧず渚嬪伐紼嬩腑鎴戜滑鍦ㄦ暟鎹簱涓繚瀛樺浘鍍忔暟鎹紝騫跺彲浠ュ榪欎簺鍥懼儚榪涜嫻忚銆佷慨鏀癸紝璇ヤ緥瀛愯繕娑夊強鍒板浣曠敤char *鎸囧悜鐨凚MP鏂囦歡鏁版嵁鍒涘緩BITMAP瀵硅薄鐒跺悗鏄劇ず鍑烘潵銆?br />



will 2006-07-06 11:56 鍙戣〃璇勮
]]>
SAFEARRAY浣跨敤鏂規硶紺轟緥http://m.shnenglu.com/weiyan/archive/2006/07/05/9452.htmlwillwillWed, 05 Jul 2006 12:09:00 GMThttp://m.shnenglu.com/weiyan/archive/2006/07/05/9452.htmlhttp://m.shnenglu.com/weiyan/comments/9452.htmlhttp://m.shnenglu.com/weiyan/archive/2006/07/05/9452.html#Feedback0http://m.shnenglu.com/weiyan/comments/commentRss/9452.htmlhttp://m.shnenglu.com/weiyan/services/trackbacks/9452.html l聽聽聽聽聽聽聽聽 鍒涘緩

聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 long i = 0;

聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 VARIANT va = {0};

聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 va . vt = VT_BSTR ;

聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽

聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 SAFEARRAYBOUND bounds [1] = {0};

聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 bounds [0]. cElements = 5;

聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 SAFEARRAY * psa = SafeArrayCreate ( VT_VARIANT , 1, bounds );

l聽聽聽聽聽聽聽聽 瀛樺叆鍏冪礌

聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 for ( i = 0; i < 5; i ++)

聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 {

聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 va . bstrVal = SysAllocString (L "test" );

聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 SafeArrayPutElement ( psa , & i , & va );

聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 }

l聽聽聽聽聽聽聽聽 鑾峰彇鍏冪礌

聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 for ( i = 0; i < 5; i ++)

聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 {

聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 va . bstrVal = SysAllocString (L "test" );

聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 SafeArrayGetElement ( psa , & i , & va );

聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 SysFreeString ( va . bstrVal );

聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 }

l聽聽聽聽聽聽聽聽 閿姣?/span>

聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 SafeArrayDestroy ( psa );

l聽聽聽聽聽聽聽聽 鐢熸垚 VARIANT 鍙橀噺

聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 VARIANT vsa = {0};

聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 vsa . vt = VT_ARRAY | VT_BSTR ;

聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 vsa . parray = psa ;



will 2006-07-05 20:09 鍙戣〃璇勮
]]>
閲庢寚閽?/title><link>http://m.shnenglu.com/weiyan/archive/2006/07/05/9409.html</link><dc:creator>will</dc:creator><author>will</author><pubDate>Tue, 04 Jul 2006 16:32:00 GMT</pubDate><guid>http://m.shnenglu.com/weiyan/archive/2006/07/05/9409.html</guid><wfw:comment>http://m.shnenglu.com/weiyan/comments/9409.html</wfw:comment><comments>http://m.shnenglu.com/weiyan/archive/2006/07/05/9409.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/weiyan/comments/commentRss/9409.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/weiyan/services/trackbacks/9409.html</trackback:ping><description><![CDATA[聽聽聽聽聽聽聽聽聽閲庢寚閽堬紝涔熷氨鏄寚鍚戜笉鍙敤鍐呭瓨鍖哄煙鐨勬寚閽堛傞氬父瀵硅繖縐嶆寚閽堣繘琛屾搷浣滅殑璇濓紝灝嗕細浣跨▼搴忓彂鐢熶笉鍙鐭ョ殑閿欒銆備絾鏄紝鎴戝湪鏂囦腑瑕佽鐨勶紝灝辨槸閲庢寚閽堢殑鈥滃畨鍏ㄢ濅嬌鐢ㄦ柟娉曚互鍙婂叾鍐呴儴鐨勫師鍥?<br /><br /><p>棣栧厛璇瘋浣嶇湅浠ヤ笅涓孌碘滃嵄闄┾濈殑C++浠g爜錛?/p><p></p><table class="codetable" cellspacing="1" border="0"><tbody><tr><td><code><font color="blue">void</font>聽function(聽<font color="blue">void</font>聽)<br />{<br />聽聽聽聽<font color="blue">char</font>*聽str聽=聽<font color="blue">new</font>聽<font color="blue">char</font>[100];<br />聽聽聽聽<font color="blue">delete</font>[]聽str;<br />聽聽聽聽<font color="green">//聽Do聽something</font><br />聽聽聽聽strcpy(聽str,聽"Dangerous!!"聽);<br />}</code></td></tr></tbody></table><p>涔嬫墍浠ヨ鍏跺嵄闄╋紝鏄洜涓鴻繖鏄竴孌靛畬鍏ㄥ悎涔庤娉曠殑浠g爜錛岀紪璇戠殑鏃跺欏畬緹庡緱涓鐐歸敊璇篃涓嶄細鏈夛紝鐒惰屽綋榪愯鍒皊trcpy涓鍙ョ殑鏃跺欙紝闂灝變細鍑虹幇錛屽洜涓哄湪榪欎箣鍓嶏紝str鐨勭┖闂村凡緇忚delete鎺変簡錛屾墍浠trcpy褰撶劧涓嶄細鎴愬姛銆傚浜庤繖縐嶇被浼肩殑鎯呭喌錛屽湪鏋楅攼鍗氬+鐨勪功涓湁榪囦粙緇嶏紝縐板叾涓衡滈噹鎸囬拡鈥濄?/p><p>閭d箞錛岃浣嶆湁娌℃湁瑙佽繃瀹夊叏鐨勨滈噹鎸囬拡鈥濆憿錛熶笅闈㈣鐪嬫垜鐨勪竴孌礐++紼嬪簭錛岀伒鎰熸潵鑷狢SDN涓婄殑涓嬈¤璁恒傚湪姝わ紝鎴戝彧闇瑕丆++鐨勨滅被鈥濓紝C++鐨勫叾浣欎竴姒備笉闇瑕侊紝鍥犳鎴戞病鏈変嬌鐢ㄤ換浣曠殑C++鏍囧噯搴擄紝榪炶緭鍑洪兘鏄敤printf瀹屾垚鐨勩?/p><p></p><table class="codetable" cellspacing="1" border="0"><tbody><tr><td><code><font color="blue">#include</font>聽<stdio.h><br /><br /><font color="blue">class</font>聽CTestClass<br />{<br /><font color="blue">public</font>:<br />聽聽聽聽CTestClass(聽<font color="blue">void</font>聽);<br />聽聽聽聽<font color="blue">int</font>聽m_nInteger;<br />聽聽聽聽<font color="blue">void</font>聽Function(聽<font color="blue">void</font>聽);<br />};<br /><br />CTestClass::CTestClass(聽<font color="blue">void</font>聽)<br />{<br />聽聽聽聽m_nInteger聽=聽0;<br />}<br /><br /><font color="blue">void</font>聽CTestClass::Function(聽<font color="blue">void</font>聽)<br />{<br />聽聽聽聽printf(聽"This聽is聽a聽test聽function.\n"聽);<br />}<br /><br /><font color="blue">void</font>聽main(聽<font color="blue">void</font>聽)<br />{<br />聽聽聽聽CTestClass*聽p聽=聽<font color="blue">new</font>聽CTestClass;<br />聽聽聽聽<font color="blue">delete</font>聽p;<br />聽聽聽聽p->Function();<br />}</code></td></tr></tbody></table><p>OK錛岀▼搴忓埌姝や負姝紝璇鎬綅鍙互緙栬瘧榪愯涓涓嬬湅鐪嬬粨鏋滃浣曘備綘涔熻浼氭儕寮傚湴鍙戠幇錛氭病鏈変換浣曠殑鍑洪敊淇℃伅錛屽睆騫曚笂绔熺劧涔栦箹鍦板嚭鐜頒簡榪欎箞涓琛屽瓧絎︿覆錛?/p><p>This is a test function.</p><p>濂囨悧錛熶笉瑕佹ワ紝榪樻湁鏇村鎬殑鍛紝浣犲彲浠ユ妸涓誨嚱鏁頒腑鍔犱笂涓鍙ユ洿涓嶅彲鐞嗗柣鐨勶細</p><p></p><table class="codetable" cellspacing="1" border="0"><tbody><tr><td><code>((CTestClass*)NULL)->Function();</code></td></tr></tbody></table><p>榪欎粛鐒舵病鏈夐棶棰橈紒錛?/p><p>鎴戣繖榪樻湁鍛紝鍝堝搱銆傜幇鍦ㄤ綘鍦ㄤ富鍑芥暟涓繖涔堝啓錛屽樿涓婁竴鍙ヤ笉鍙悊鍠伙紝閭d箞浠ヤ笅鍙互鍙仛鏃犳硶鏃犲ぉ浜嗭細</p><p></p><table class="codetable" cellspacing="1" border="0"><tbody><tr><td><code><font color="blue">int</font>聽i聽=聽888;<br />CTestClass*聽p2聽=聽(CTestClass*)&i;<br />p2->Function();</code></td></tr></tbody></table><p>浣犵湅鍒頒簡浠涔堬紵鏄殑錛屸淭his is a test function.鈥濆綰﹁岃嚦錛屾病鏈変換浣曠殑閿欒銆?/p><p>浣犱篃璁歌闂負浠涔堬紝浣嗘槸鍦ㄦ垜瑙g瓟浣犱箣鍓嶏紝璇蜂綘鍦ㄤ富鍑芥暟涓姞鍏ュ涓嬩唬鐮侊細</p><p></p><table class="codetable" cellspacing="1" border="0"><tbody><tr><td><code>printf(聽"%d,聽%d",聽<font color="blue">sizeof</font>(聽CTestClass聽),聽<font color="blue">sizeof</font>(聽<font color="blue">int</font>聽)聽);</code></td></tr></tbody></table><p>榪欐椂浣犲氨浼氱湅鍒扮湡鐩鎬簡錛氳緭鍑虹粨鏋滄槸鈥斺斿緱鍒扮殑涓や釜鍗佽繘鍒舵暟鐩哥瓑銆傚錛岀敱sizeof寰楀埌鐨凜TestClass鐨勫ぇ灝忓叾瀹炲氨鏄畠鐨勬垚鍛榤_nInteger鐨勫ぇ灝忋備害鍗蟲槸璇達紝瀵逛簬CTestClass鐨勪竴涓疄渚嬪寲鐨勫璞★紙璁句負a錛夎岃█錛屽彧鏈塧.m_nInteger鏄睘浜巃榪欎釜瀵硅薄鐨勶紝鑰宎.Function()鍗存槸灞炰簬CTestClass榪欎釜綾葷殑銆傛墍浠ヤ互涓婄湅浼煎嵄闄╃殑鎿嶄綔鍏跺疄閮芥槸鍙涓旀棤璇殑銆?/p><p>鐜板湪浣犳槑鐧戒負浠涔堟垜鐨勨滈噹鎸囬拡鈥濇槸瀹夊叏鐨勪簡錛岄偅涔堜互涓嬫垜鎵鍒楀嚭鐨勶紝灝辨槸鍦ㄤ粈涔堟儏鍐典笅錛屾垜鐨勨滈噹鎸囬拡鈥濅笉瀹夊叏錛?/p><ol><li>鍦ㄦ垚鍛樺嚱鏁癋unction涓鎴愬憳鍙橀噺m_nInteger榪涜鎿嶄綔錛? </li><li>灝嗘垚鍛樺嚱鏁癋unction澹版槑涓鴻櫄鍑芥暟錛坴irtual錛夈?</li></ol><p>浠ヤ笂鐨勪袱縐嶆儏鍐碉紝鐩殑灝辨槸寮鴻揩閲庢寚閽堜嬌鐢ㄥ睘浜庤嚜宸辯殑涓滆タ瀵艱嚧涓嶅畨鍏紝姣斿絎竴縐嶆儏鍐典腑鎿嶄綔鏈韓鐨刴_nInteger錛岀浜岀鎯呭喌涓彉涓鴻櫄鍑芥暟鐨凢unction鎴愪負浜嗗睘浜庡璞$殑鍑芥暟錛堣繖涓鐐瑰彲浠ヤ粠sizeof鐪嬪嚭鏉ワ級銆?/p><p>鍏跺疄錛屽畨鍏ㄧ殑閲庢寚閽堝湪瀹為檯鐨勭▼搴忚璁′腑鏄嚑涔庢鏃犵敤澶勭殑銆傛垜鍐欒繖涓綃囨枃绔狅紝鎰忓浘騫朵笉鏄儚瀛斾箼宸變竴鏍峰幓鐞㈢(鍥炲瓧鏈夊嚑縐嶅啓娉曪紝鑰屾槸鎯抽氳繃榪欎釜灝忎緥瀛愬悜璇鎬綅鍐欐槑鐧紺++鐨勫璞″疄渚嬪寲鏈川錛屽笇鏈涘ぇ瀹朵笉浣嗚鏄庣櫧what鍜宧ow錛屾洿瑕佹槑鐧絯hy銆傛潕椹簩闆墮浂涓夊勾浜屾湀浜屽崄鏃ヤ綔浜庤嚜瀹呫?/p><p><br /><b>鍏充簬鎴愬憳鍑芥暟CTestClass::Function鐨勮ˉ鍏呰鏄?/b><br /><br /></p><p>榪欎釜鍑芥暟鏄竴涓櫘閫氱殑鎴愬憳鍑芥暟錛屽畠鍦ㄧ紪璇戝櫒鐨勫鐞嗕笅錛屼細鎴愪負綾諱技濡備笅鐨勪唬鐮侊細</p><p></p><table class="codetable" cellspacing="1" border="0"><tbody><tr><td><code><font color="blue">void</font>聽Function(聽<font color="blue">const</font>聽CTestClass聽*聽<font color="blue">this</font>聽)聽<font color="green">//聽鈶?/font><br />{<br />聽聽聽聽printf("This聽is聽a聽test聽function.\n");<br />}</code></td></tr></tbody></table><p>閭d箞p->Function();涓鍙ュ皢琚紪璇戝櫒瑙i噴涓猴細</p><p></p><table class="codetable" cellspacing="1" border="0"><tbody><tr><td><code>Function( p ); </code></td></tr></tbody></table><p>榪欏氨鏄錛屾櫘閫氱殑鎴愬憳鍑芥暟蹇呴』緇忕敱涓涓璞℃潵璋冪敤錛堢粡鐢眛his鎸囬拡嬋媧燴憽錛夈傞偅涔堢敱涓婁緥鐨刣elete涔嬪悗錛宲鎸囬拡灝嗕細鎸囧悜涓涓棤鏁堢殑鍦板潃錛岀劧鑰宲鏈韓鏄竴涓湁鏁堢殑鍙橀噺錛屽洜姝ょ紪璇戣兘澶熼氳繃銆傚茍涓斿湪緙栬瘧閫氳繃涔嬪悗錛岀敱浜嶤TestClass::Function鐨勫嚱鏁頒綋鍐呭茍鏈榪欎釜浼犲叆鐨則his鎸囬拡榪涜浠諱綍鐨勬搷浣滐紝鎵浠ュ湪榪欓噷錛屸滈噹鎸囬拡鈥濅究鎴愪簡涓涓湅浼煎畨鍏ㄧ殑涓滆タ銆?/p><p>鐒惰岃嫢榪欐牱鏀瑰啓CTestClass::Function錛?/p><p></p><table class="codetable" cellspacing="1" border="0"><tbody><tr><td><code><font color="blue">void</font>聽CTestClass::Function(聽<font color="blue">void</font>聽)<br />{<br />聽聽聽聽m_nInteger聽=聽0;<br />}</code></td></tr></tbody></table><p>閭d箞瀹冨皢浼氳緙栬瘧鍣ㄨВ閲婁負錛?/p><p></p><table class="codetable" cellspacing="1" border="0"><tbody><tr><td><code><font color="blue">void</font>聽Function(聽<font color="blue">const</font>聽CTestClass聽*聽<font color="blue">this</font>聽)<br />{<br />聽聽聽聽<font color="blue">this</font>->m_nInteger聽=聽0;<br />}</code></td></tr></tbody></table><p>浣犵湅鍒頒簡錛屽湪p->Function();鐨勬椂鍊欙紝緋葷粺灝嗕細灝濊瘯鍦ㄤ紶鍏ョ殑榪欎釜鏃犳晥鍦板潃涓鎵緈_nInteger鎴愬憳騫跺皢鍏惰祴鍊間負0錛屽墿涓嬬殑鎴戜笉鐢ㄨ浜嗏斺旈潪娉曟搷浣滃嚭鐜頒簡銆?/p><p>鑷充簬virtual铏氬嚱鏁幫紝濡傛灉鍦ㄧ被瀹氫箟涔嬩腑灝咰TestClass澹版槑涓鴻櫄鍑芥暟錛?/p><p></p><table class="codetable" cellspacing="1" border="0"><tbody><tr><td><code><font color="blue">class</font>聽CTestClass<br />{<br /><font color="blue">public</font>:<br />聽聽聽聽<font color="green">//聽...</font><br />聽聽聽聽<font color="blue">virtual</font>聽<font color="blue">void</font>聽Function(聽<font color="blue">void</font>聽);<br />};</code></td></tr></tbody></table><p>閭d箞C++鍦ㄦ瀯寤篊TestClass綾葷殑瀵硅薄妯″瀷鏃訛紝灝嗕細涓轟箣鍒嗛厤涓涓櫄鍑芥暟琛╲ptr錛堝彲浠ヤ粠sizeof鐪嬪嚭鏉ワ級銆倂ptr鏄竴涓寚閽堬紝瀹冩寚鍚戜竴涓嚱鏁版寚閽堢殑鏁扮粍錛屾暟緇勪腑鐨勬垚鍛樺嵆鏄湪CTestClass涓0鏄庣殑鎵鏈夎櫄鍑芥暟銆傚湪璋冪敤铏氬嚱鏁扮殑鏃跺欙紝蹇呴』緇忕敱榪欎釜vptr錛岃繖涔熷氨鏄負浠涔堣櫄鍑芥暟杈冧箣鏅氭垚鍛樺嚱鏁拌娑堣椾竴浜涙垚鏈殑緙樻晠銆備互鏈緥鑰岃█錛宲->Function();涓鍙ュ皢琚紪璇戝櫒瑙i噴涓猴細</p><p></p><table class="codetable" cellspacing="1" border="0"><tbody><tr><td><code>(*p->vptr[1])(聽p聽);聽<font color="green">//聽璋冪敤vptr琛ㄤ腑绱㈠紩鍙蜂負1鐨勫嚱鏁幫紙鍗矲unction錛夆憿</font></code></td></tr></tbody></table><p>涓婇潰鐨勪唬鐮佸凡緇忚鏄庝簡錛屽鏋減鎸囧悜涓涓棤鏁堢殑鍦板潃錛岄偅涔堝繀鐒朵細鏈夐潪娉曟搷浣溿?/p><p>澶囨敞錛?/p><p>鈶犲叧浜庡嚱鏁扮殑鍛藉悕錛屾垜閲囩敤浜嗗師鍚嶈屾病鏈夊彉鍖栥備簨瀹炰笂緙栬瘧鍣ㄤ負浜嗛伩鍏嶅嚱鏁伴噸杞介犳垚鐨勯噸鍚嶆儏鍐碉紝浼氬鍑芥暟鐨勫悕瀛楄繘琛屽鐞嗭紝浣夸箣鎴愪負鐙竴鏃犱簩鐨勫悕縐般?br />鈶″皢鎴愬憳鍑芥暟澹版槑涓簊tatic錛屽彲浠ヤ嬌鎴愬憳鍑芥暟涓嶇粡鐢眛his鎸囬拡渚垮彲璋冪敤銆?br />鈶ptr琛ㄤ腑錛岀儲寮曞彿0涓虹被鐨則ype_info銆?/p><br /><br /><img src ="http://m.shnenglu.com/weiyan/aggbug/9409.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/weiyan/" target="_blank">will</a> 2006-07-05 00:32 <a href="http://m.shnenglu.com/weiyan/archive/2006/07/05/9409.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>VISUAL C++杞歡寮鍙戜腑鍑犱釜甯哥敤鍔熻兘http://m.shnenglu.com/weiyan/archive/2006/07/05/9408.htmlwillwillTue, 04 Jul 2006 16:26:00 GMThttp://m.shnenglu.com/weiyan/archive/2006/07/05/9408.htmlhttp://m.shnenglu.com/weiyan/comments/9408.htmlhttp://m.shnenglu.com/weiyan/archive/2006/07/05/9408.html#Feedback0http://m.shnenglu.com/weiyan/comments/commentRss/9408.htmlhttp://m.shnenglu.com/weiyan/services/trackbacks/9408.html涓銆佽緗▼搴忚嚜鍔ㄨ繍琛屻偮犅?br />聽聽聽聽聽聽聽寰堝鐩戞帶杞歡瑕佹眰杞歡鑳藉鍦ㄧ郴緇熼噸鏂板惎鍔ㄥ悗涓嶇敤鐢ㄦ埛鍘葷偣鍑誨浘鏍囧惎鍔ㄩ」鐩紝鑰屾槸鐩存帴鑳藉鍚姩榪愯錛屾柟娉曟槸鍐欐敞鍐岃〃Software\\Microsoft\\Windows\\CurrentVersion\\Run銆傚弬鑰冪▼搴忓彲浠ヨ涓嬶細(鏌ユ壘紼嬪簭鐩綍鐨勬墽琛屾枃浠訛紝瀛樺湪鍒欒繘琛屾坊鍔犳敞鍐岃〃鎿嶄綔)聽
聽聽聽聽聽聽聽聽 HKEY RegKey;聽
聽聽聽聽聽聽聽聽 CString sPath;聽
聽聽聽聽聽聽聽聽 GetModuleFileName(NULL,sPath.GetBufferSetLength(MAX_PATH+1),MAX_PATH);聽
聽聽聽聽聽聽聽聽 sPath.ReleaseBuffer();聽
聽聽聽聽聽聽聽聽 int nPos;聽
聽聽聽 nPos=sPath.ReverseFind(鈥橽\鈥?;聽
聽聽聽 sPath=sPath.Left(nPos);聽
聽聽聽 CString lpszFile=sPath+"\\****.exe";//榪欓噷鍔犱笂浣犺鏌ユ壘鐨勬墽琛屾枃浠跺悕縐奧?
聽聽聽 CFileFind fFind;聽
聽聽聽 BOOL bSuccess;聽
聽聽聽 bSuccess=fFind.FindFile(lpszFile);聽
聽聽聽 fFind.Close();聽
聽聽聽 if(bSuccess)聽
聽聽聽 {聽
聽聽聽聽聽聽聽 CString fullName;聽
聽聽聽聽聽聽聽 fullName=lpszFile;聽
聽聽聽聽聽聽聽 RegKey=NULL;聽
聽聽聽聽聽聽聽 RegOpenKey(HKEY_LOCAL_MACHINE,"Software\\Microsoft\\Windows\\CurrentVersion\\Run",&RegKey);聽
聽聽聽聽聽聽聽 RegSetValueEx(RegKey,"*****",0,REG_SZ,(const unsigned char*)(LPCTSTR)fullName,fullName.GetLength());//榪欓噷鍔犱笂浣犻渶瑕佸湪娉ㄥ唽琛ㄤ腑娉ㄥ唽鐨勫唴瀹孤?
聽聽聽聽聽聽聽 this->UpdateData(FALSE);聽
聽聽聽 }聽
聽聽聽 else聽
聽聽聽 {聽
聽聽聽聽聽聽聽 theApp.SetMainSkin();聽
聽聽聽聽聽聽聽 ::AfxMessageBox("娌℃壘鍒版墽琛岀▼搴忥紝鑷姩榪愯澶辮觸");聽
聽聽聽聽聽聽聽 exit(0);聽
聽聽聽 }聽

浜屻佽嚜鍔ㄩ厤緗暟鎹簮聽
聽聽聽 寰堝鐨勭▼搴忛兘瑕佺敤鍒版暟鎹簱緇撳悎鐨勬搷浣滐紝榪欓噷涓句緥ACCESS錛屽洜涓篈CCESS鍦ㄤ腑灝忓瀷VC緋葷粺寮鍙戜腑鏄渶甯哥敤鍒扮殑錛屽鏋滅▼搴忕殑縐繪錛屽鏋滃浜庡緢鍒濈駭鐨勭敤鎴鋒潵璇達紝浣犺繕闇瑕佷粬鍒伴厤緗潰鏉夸腑榪涜鏁版嵁婧愰厤緗殑璇濓紝閭e氨鏈夌偣璇翠笉榪囧幓浜嗐偮?
聽聽聽聽聽聽聽聽 #include <odbcinst.h>聽
聽聽聽聽聽聽聽聽 //閰嶇疆鏁版嵁婧愶紝鏁版嵁搴撳湪搴旂敤紼嬪簭鐩綍涓?榪欓噷姣斿鏁版嵁搴撴枃浠跺悕涓?**.mdb錛岀▼搴忚繍琛屾椂鍊欏彲浠ュ皢鏁版嵁搴撴枃浠舵嫹璐濆埌紼嬪簭鐩綍涓嬮潰銆偮?
聽聽聽 CString sPath;聽
聽聽聽 GetModuleFileName(NULL,sPath.GetBufferSetLength (MAX_PATH+1),MAX_PATH);聽
聽聽聽 sPath.ReleaseBuffer();聽
聽聽聽 int nPos;聽
聽聽聽 nPos=sPath.ReverseFind(鈥橽\鈥?;聽
聽聽聽 sPath=sPath.Left(nPos);聽
聽聽聽 CString lpszFileName = sPath + "\\***.mdb";//榪欓噷淇敼鎴愪綘鐨勬暟鎹簱鏂囦歡鍚嶇О聽
聽聽聽 CFileFind聽 fFind;聽
聽聽聽 if(!fFind.FindFile(lpszFileName))聽
聽聽聽 {聽
聽聽聽聽聽聽聽 ::AfxMessageBox("娌℃湁鎵懼埌鏁版嵁搴?);聽
聽聽聽聽聽聽聽 exit(0);聽
聽聽聽 }聽聽
聽聽聽 CString szDesc;聽
聽聽聽 szDesc.Format( "DSN=****;Description=****;DESCRIPTION=The DataBase For ***;FIL=MicrosoftAccess;DEFAULTDIR=%s;DBQ=%s;" ,sPath,lpszFileName);//榪欓噷***鍙峰彲浠ユ坊鍔犳垚浣犵殑鎻忚堪聽

聽聽聽 //娣誨姞鏁版嵁婧惵?
聽聽聽 if(!::SQLConfigDataSource(NULL,ODBC_ADD_DSN, "Microsoft Access Driver (*.mdb)",(LPCSTR)szDesc))聽
聽聽聽 {聽
聽聽聽聽聽聽聽 ::AfxMessageBox("32浣峅DBC鏁版嵁婧愰厤緗敊璇?");聽
聽聽聽聽聽聽聽 exit(0);聽
聽聽聽 }聽

涓夈佽緗樉紺烘ā寮忥細聽
聽聽聽 寰堝鐨勭▼搴忕殑縐繪鐨勮繍琛岀幆澧冩槸鏀瑰彉鐨勩傛湁鍙兘浣犵殑鍘熸潵寮鍙戠幆澧冩槸1024X768錛屼絾鏄埌浜嗛偅浜涙樉紺哄櫒澶т簬17鐨勬椂鍊欙紙鍒嗚鯨鐜囪秴榪囦綘鐨勫紑鍙戞椂鐨勫垎杈ㄧ巼鏃訛級錛岀▼搴忕殑鏄劇ず鍙兘灝變笉濂界湅浜嗐偮?
聽聽聽聽聽聽聽聽 DEVMODE lpDevMode;聽
聽聽聽 lpDevMode.dmPelsHeight=768;//Y鏂瑰悜璞$礌鐐孤?
聽聽聽 lpDevMode.dmPelsWidth=1024;//X鏂瑰悜璞$礌鐐孤?
聽聽聽 lpDevMode.dmDisplayFrequency=85;//灞忓箷鍒鋒柊鐜嚶?
聽聽聽 lpDevMode.dmFields=DM_PELSWIDTH|DM_PELSHEIGHT|DM_DISPLAYFREQUENCY;聽
聽聽聽 ChangeDisplaySettings(&lpDevMode,0);聽

鍥涖佸湪浣犵殑紼嬪簭涓棿鍔犺澆鍏朵粬搴旂敤紼嬪簭錛毬?
聽聽聽 浣犵殑紼嬪簭闄や簡璋冪敤鍒板悇涓ā鍧楄繘琛屽崗鍚屽伐浣滃錛圖LL錛夛紝榪樻湁鍙兘璋冪敤涓嶆槸鍚屼竴涓紑鍙戠幆澧冧笅鐨勫簲鐢ㄧ▼搴忥紝姣斿VC鐜涓嬭皟鐢―ELPHI錛孷B寮鍙戠殑鎵ц紼嬪簭錛屼綘灝卞彲浠ョ敤鍒頒笅闈㈢殑鏂規硶錛堝皢璋冪敤鐨勫簲鐢ㄧ▼搴忔嫹璐濈▼搴忕洰褰曚腑錛夛細聽
聽聽聽聽聽聽聽聽 CString sPath;聽
聽聽聽 GetModuleFileName(NULL,sPath.GetBufferSetLength (MAX_PATH+1),MAX_PATH);聽
聽聽聽 sPath.ReleaseBuffer();聽
聽聽聽 int nPos;聽
聽聽聽 nPos=sPath.ReverseFind(鈥橽\鈥?;聽
聽聽聽 sPath=sPath.Left(nPos);聽
聽聽聽 CString lpszFileName = sPath + "\\***.exe";//榪欓噷淇敼鎴愪綘鐨勮皟鐢ㄥ簲鐢ㄧ▼搴忕殑鏂囦歡鍚嶇О聽
聽聽聽 CFileFind聽 fFind;聽
聽聽聽 if(!fFind.FindFile(lpszFileName))聽
聽聽聽 {聽
聽聽聽聽聽聽聽 ::AfxMessageBox("娌℃湁鎵懼埌璋冪敤鐨勫簲鐢ㄧ▼搴忥紒");聽聽
聽聽聽聽聽聽聽 return FALSE;聽
聽聽聽 }聽
聽聽聽 else聽
聽聽聽聽聽聽聽 ShellExecute(NULL,NULL,_T("***.exe"),NULL,sPath,NULL);聽聽

浜斻佺粨鏉熻繘紼嬶細聽
聽聽聽 鍦ㄤ綘鐨勭▼搴忎腑緇撴潫鍒殑紼嬪簭榪涚▼錛岄噰鐢ㄧ殑鏂規硶鏄繘琛岃繘紼嬪垪涓撅紝鐒跺悗閲囩敤鏌ユ壘鐨勬柟娉曡繘琛岋細聽
聽聽聽聽聽聽聽聽 #include "TLHELP32.H"聽
聽聽聽聽聽聽聽聽 DWORD ProcessID[50];聽
聽聽聽 CString kkk[50];聽
聽聽聽 HANDLE SnapShot=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);聽聽
聽聽聽 PROCESSENTRY32* info=new PROCESSENTRY32;聽
聽聽聽 PROCESSENTRY32 ProcessInfo;//澹版槑榪涚▼淇℃伅鍙橀噺聽
聽聽聽 ProcessInfo.dwSize=sizeof(ProcessInfo);//璁劇疆ProcessInfo鐨勫ぇ灝徛?
聽聽聽 //榪斿洖緋葷粺涓涓涓繘紼嬬殑淇℃伅聽
聽聽聽 BOOL Status=Process32First(SnapShot,&ProcessInfo);聽
聽聽聽 int m_nProcess=0;聽聽
聽聽聽 while(Status)聽
聽聽聽 {聽
聽聽聽聽聽聽聽 CString s,str1,str2;聽
聽聽聽聽聽聽聽 s.Format("%d",ProcessInfo.cntThreads);聽
聽聽聽聽聽聽聽 str1.Format("%s",ProcessInfo.szExeFile);聽
聽聽聽聽聽聽聽 str1=ProcessInfo.szExeFile;聽
聽聽聽聽聽聽聽 kkk[m_nProcess]=ProcessInfo.szExeFile;聽聽
聽聽聽聽聽聽聽 ProcessID[m_nProcess]=ProcessInfo.th32ProcessID;聽聽
聽聽聽聽聽聽聽 if(str1=="***.exe")//***.exe灝辨槸浣犺緇撴潫鐨勮繘紼嬬殑鍚嶇О聽
聽聽聽聽聽聽聽 {聽
聽聽聽聽聽聽聽聽聽聽聽 HANDLE ProcessHandle;聽
聽聽聽聽聽聽聽聽聽聽聽 ProcessHandle=OpenProcess (PROCESS_ALL_ACCESS,FALSE,ProcessID[m_nProcess]);聽
聽聽聽聽聽聽聽聽聽聽聽 TerminateProcess(ProcessHandle,0);聽聽聽聽聽
聽聽聽聽聽聽聽 }聽
聽聽聽聽聽聽聽 Status=Process32Next(SnapShot,&ProcessInfo);聽
聽聽聽聽聽聽聽 m_nProcess++;聽
聽聽聽 }聽



will 2006-07-05 00:26 鍙戣〃璇勮
]]>
鍦╒C涓坊鍔犲搷搴旇嚜瀹氫箟鐨勬秷鎭殑浠g爜姝ラhttp://m.shnenglu.com/weiyan/archive/2006/07/02/9288.htmlwillwillSun, 02 Jul 2006 10:00:00 GMThttp://m.shnenglu.com/weiyan/archive/2006/07/02/9288.htmlhttp://m.shnenglu.com/weiyan/comments/9288.htmlhttp://m.shnenglu.com/weiyan/archive/2006/07/02/9288.html#Feedback0http://m.shnenglu.com/weiyan/comments/commentRss/9288.htmlhttp://m.shnenglu.com/weiyan/services/trackbacks/9288.html1. 棣栧厛瀹氫箟涓涓秷鎭唬鐮?/p>

#define WM_DEBUG聽聽聽聽 WM_USER + 1999

2. 鍦ㄧ獥鍙eご鏂囦歡涓坊鍔?/p>

class CStreamServerDlg : public CDialog
{
聽// Generated message map functions
聽//{{AFX_MSG(CStreamServerDlg)
...
聽//}}AFX_MSG
聽afx_msg void OnDebug(WPARAM wParam, LPARAM lParam);聽
...
}

3. 鍦ㄧ獥鍙g殑cpp鏂囦歡涓坊鍔?/p>


BEGIN_MESSAGE_MAP(CStreamServerDlg, CDialog)
...
ON_MESSAGE(WM_DEBUG, OnDebug)
END_MESSAGE_MAP()

LRESULT聽 CStreamServerDlg::OnDebug(WPARAM wParam, LPARAM lParam)
{
}

4. 鍏朵粬鍦版柟灝卞彲浠ュ彂閫佹秷鎭?/p>

pWnd->PostMessage(WM_DEBUG,聽 (WPARAM)p, 0) )


璇存槑錛?br />
#define ON_MESSAGE(message, memberFxn)
{ message, 0, 0, 0, AfxSig_lwl,
(AFX_PMSG)(AFX_PMSGW)(LRESULT (AFX_MSG_CALL CWnd::*)(WPARAM, LPARAM))&memberFxn },




will 2006-07-02 18:00 鍙戣〃璇勮
]]>
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
      <noscript id="pjuwb"></noscript>
            <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
              <dd id="pjuwb"></dd>
              <abbr id="pjuwb"></abbr>
              亚洲精品综合| 久久精品青青大伊人av| 午夜亚洲精品| 亚洲一区二区综合| 午夜伦理片一区| 欧美一区二区三区四区在线观看地址| 亚洲欧美一区二区原创| 午夜精品短视频| 久久av一区二区三区漫画| 久久爱另类一区二区小说| 久久国产主播精品| 欧美jjzz| 99精品欧美一区二区三区 | 欧美日韩二区三区| 99视频热这里只有精品免费| 亚洲成人在线视频播放| 一区二区欧美在线| 亚洲性视频h| 久热精品视频在线观看一区| 欧美国产日本高清在线| 亚洲免费观看高清在线观看| 99在线热播精品免费99热| 一本色道久久综合精品竹菊| 制服诱惑一区二区| 久久久福利视频| 欧美伦理91i| 国产精品日韩一区二区三区| 黄页网站一区| 亚洲五月六月| 欧美多人爱爱视频网站| 亚洲精品久久久久久下一站| 日韩视频在线观看国产| 欧美怡红院视频| 欧美三区免费完整视频在线观看| 国产亚洲一区在线| 亚洲小视频在线| 欧美高清一区二区| 午夜精彩视频在线观看不卡| 奶水喷射视频一区| 国产真实精品久久二三区| 夜夜嗨av一区二区三区网站四季av| 久久久精品日韩欧美| 一区二区三区久久久| 欧美**人妖| 激情综合色综合久久综合| 亚洲欧美国产精品桃花| 亚洲精品女av网站| 久久国产视频网站| 国产精品任我爽爆在线播放| 日韩视频中文字幕| 亚洲承认在线| 噜噜噜久久亚洲精品国产品小说| 国产欧美一区二区色老头 | 一区二区三区精品视频在线观看| 久久一区二区三区国产精品 | 欧美日韩精品综合| 亚洲黄色成人| 欧美电影免费观看高清完整版| 欧美伊人精品成人久久综合97| 国产精品美女久久| 亚洲欧美日韩中文在线制服| 9久re热视频在线精品| 欧美剧在线免费观看网站| 91久久嫩草影院一区二区| 一区在线观看视频| 蜜桃av噜噜一区| 国产精品亚洲综合色区韩国| 国产日韩成人精品| 欧美在线免费观看视频| 亚洲欧美一区在线| 国产亚洲欧洲| 久久只精品国产| 久久男人资源视频| 亚洲精品色婷婷福利天堂| 亚洲精品少妇30p| 国产精品igao视频网网址不卡日韩| 中文有码久久| 午夜在线一区| 亚洲国产一区二区三区a毛片| 亚洲激情一区二区三区| 欧美日韩一本到| 欧美综合第一页| 农村妇女精品| 亚洲欧美日韩国产综合在线| 欧美专区日韩专区| 亚洲精品在线免费观看视频| 亚洲精品一区二区三| 国产精品久久久久久av下载红粉 | 国产婷婷色一区二区三区四区 | 日韩亚洲欧美一区| 在线视频欧美一区| 韩日在线一区| 亚洲精品视频啊美女在线直播| 欧美色欧美亚洲另类二区| 欧美一区二区三区精品 | 免费不卡在线观看| 在线视频欧美日韩精品| 欧美一区二区三区在线| 亚洲精品国精品久久99热| 夜夜爽www精品| 国产午夜亚洲精品理论片色戒| 欧美高清在线一区| 国产乱码精品| 亚洲欧洲三级| 国产一区二区在线免费观看| 亚洲国产免费| 狠狠做深爱婷婷久久综合一区| 日韩亚洲欧美中文三级| 影音先锋久久精品| 亚洲午夜电影网| 亚洲第一精品夜夜躁人人爽| 亚洲伊人一本大道中文字幕| 最新成人在线| 久久国产一二区| 亚洲欧美日韩国产综合在线| 欧美激情一区三区| 免费精品视频| 狠狠色丁香婷婷综合影院| 亚洲女人小视频在线观看| 亚洲社区在线观看| 欧美精品在线一区| 亚洲精品久久久久久久久| 亚洲一二区在线| 在线观看日韩www视频免费| 亚洲视屏一区| 9色精品在线| 久久网站免费| 久久久久久九九九九| 欧美日韩亚洲一区二区三区四区| 久久久中精品2020中文| 国产精品最新自拍| 一区二区高清在线| 在线亚洲一区二区| 女人色偷偷aa久久天堂| 欧美va天堂| 亚洲高清在线观看一区| 久久久久国色av免费观看性色| 亚洲欧美综合国产精品一区| 欧美日韩午夜在线视频| 亚洲激情视频在线播放| 亚洲国产一区二区视频| 久久成人免费网| 久久影院午夜论| 国产视频一区欧美| 久久精品观看| 欧美电影美腿模特1979在线看| 韩日视频一区| 你懂的视频一区二区| 91久久久国产精品| 麻豆精品在线视频| 欧美午夜欧美| 99re热这里只有精品免费视频| 正在播放欧美视频| 国产精品国产精品| 亚洲欧美综合精品久久成人| 久久久久久久久久久久久女国产乱| 国产农村妇女精品一二区| 午夜久久影院| 欧美69wwwcom| 99亚洲一区二区| 国产精品久久久久9999| 久久精彩视频| 最新日韩欧美| 欧美伊人久久| 亚洲日韩欧美视频一区| 欧美性猛交一区二区三区精品| 亚洲一区视频在线| 欧美va天堂va视频va在线| 一区二区高清在线| 国产区亚洲区欧美区| 欧美91精品| 国产欧美精品在线| 一区二区黄色| 久久久爽爽爽美女图片| 亚洲精品国产视频| 国产伦精品一区| 免费国产自线拍一欧美视频| 亚洲精品欧美精品| 久久久久综合| 日韩亚洲视频在线| 国内精品美女在线观看| 欧美极品影院| 久久精品日韩欧美| 亚洲日本免费| 午夜精品三级视频福利| 欧美成人午夜影院| 亚洲欧美欧美一区二区三区| 亚洲黄色免费网站| 韩国av一区二区| 国产精品国产三级国产普通话99| 欧美一区二区在线看| 亚洲伦理在线| 亚洲第一免费播放区| 久久久91精品国产| 亚洲欧美日韩精品久久亚洲区| 亚洲国产日韩在线一区模特| 国内精品99| 国产亚洲女人久久久久毛片| 欧美天天在线| 欧美日韩一区二|