y‰SŽÒнŒ}zC/C++Ž ..
[2ch|¥Menu]
191:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/09 10:56:48
>>190
1‚‚¸‚–â‘肪‚È‚¢‚©‚Ç‚¤‚©Šm”F‚·‚é‚ñ‚¾


192:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/09 10:58:06
‚±‚ê‚Å‚à’l‚ªˆá‚¢‚Ü‚·@‚È‚º‚Å‚µ‚傤‚©
#include <iostream>
#include <windows.h>
#include <process.h>
using namespace std;
#define N 200
#define K 16
unsigned int su[K];

unsigned WINAPI f(void *p){
int n=(int)p;
for(int i=0;i<n*n;i++)su[i%K]++;}

main(){
int n;
for(n=0;n<K;n++)su[n]=0;
HANDLE hf[N];
for(n=0;n<N;n++){
hf[n]=(HANDLE)_beginthreadex(NULL, 0, f,(void*)n, 0 ,NULL);}
end:
WaitForMultipleObjects(N, hf, TRUE, INFINITE);
for(n=0;n<K;n++)cout<<n<<" no kosu "<<su[n]<<endl;}

193:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/09 11:01:05
>>192
”nŽ­‚¾‚©‚çB

194:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/09 11:03:41
192‚æ‚肱‚Á‚¿‚̂ق¤‚ª‚½‚ñ‚¶‚ã‚ñ‚©‚Æ‚¨‚à‚¢‚Ü‚·@‚Ç‚±‚ª‘Ê–Ú‚È‚ñ‚Å‚µ‚傤‚©@
#include <iostream>
#include <windows.h>
#include <process.h>
using namespace std;
#define N 200
#define K 12
unsigned int su[K];

unsigned WINAPI f(void *p){for(int i=0;i<(int)p;i++)su[i%K]++;}

main(){
int n; for(n=0;n<K;n++)su[n]=0;
HANDLE hf[N];
for(n=0;n<N;n++){hf[n]=(HANDLE)_beginthreadex(NULL, 0, f,(void*)n, 0 ,NULL);}
WaitForMultipleObjects(N, hf, TRUE, INFINITE);
for(n=0;n<K;n++)cout<<n<<" no kosu "<<su[n]<<endl;}

195:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/09 11:09:00
‘‚«Žè‚ª‘Ê–Ú‚È‚ñ‚¾‚낤B

196:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/09 11:12:06
‚±‚¤‚µ‚ñ‚³‚ꂽ’l‚ªA•ʂ̃XƒŒƒbƒh‚ÅXV‚³‚ê‚Ä‚µ‚Ü‚¤‚©‚ç‚Å‚·‚©‚Ë?
ƒƒ‚ƒŠ‚ªFD‚­‚ç‚¢“®ì‚ª‚̂낢‚Æ‚·‚邯su[E]‚Ì’l‚ðŒÄ‚Ño‚µ‚Ä
1‚ð‘«‚µ‚Ä‘‚«–ß‚·‚Æ‚«‚ÉA“¯Žž‚ɌĂÑo‚µ‚ÄŒvŽZ‚µ‚Ä‚¢‚½’l‚Å’u‚«Š·‚¦‚ç‚ê‚邯Œ¾‚¤‚±‚Ƃł·

197:189
07/11/09 11:16:26
‚¿‚á‚ñ‚ÆÅ‰‚ÉŽw“E‚µ‚Ä‚¢‚é‚Ì‚Écc(TT

198:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/09 11:18:14
¶Ü²¿½

199:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/09 11:20:38
‚±‚ê‚Æ“¯‚¶Ž–‚Å‚·‚Ë@‘¬‚­‚·‚éˆ×‚ɃXƒŒƒbƒh‚É‚µ‚½‚¢‚̂ɔr‘¼§Œä“ü‚ꂽ‚ç“Ý‚­‚È‚è‚Ü‚·‚Ë

ƒNƒŠƒeƒBƒJƒ‹ƒZƒNƒVƒ‡ƒ“

—á
ƒEƒFƒuƒy[ƒW‚Ì—ˆ–KŽÒ”‚ð•\‚·ƒJƒEƒ“ƒ^‚̃vƒƒOƒ‰ƒ€‚ð—á‚ɂƂÁ‚Äà–¾‚·‚éBƒJƒEƒ“ƒ^[‚̃vƒƒOƒ‰ƒ€‚Í‚¨‚¨‚Ü‚©‚ÉŽŸ‚̈—‚©‚ç‚È‚éB
ƒfƒBƒXƒN“™‚Ì‹L‰¯‘•’u‚©‚猻݂̃JƒEƒ“ƒ^‚Ì’l‚ð“Ç‚Ýo‚·
ƒJƒEƒ“ƒ^‚Ì’l‚ð1‘‚â‚·
ƒJƒEƒ“ƒ^‚Ì’l‚ð‹L‰¯‘•’u‚É‘‚«–ß‚·
Wikipedia€–ÚØÝ¸

200:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/09 11:24:24
”z—ñ‚Ì—v‘f‚ð LONG volatile ‚É‚µ‚ÄInterlockedIncrementB

201:187
07/11/09 11:33:53
‚¢‚¢‚±‚ÆŽv‚¢‚‚¢‚½@ƒXƒŒƒbƒh‘¤‚Ńrƒbƒg—ñ‚̌”‚𔂦‚ÄA‚»‚̌”‚ð”z—ñ‚ŕԂµ‚ăƒCƒ“‘¤‚Å‘«‚µ‚ ‚킹‚é
‚±‚ê‚Ȃ玞ŠÔ‚Ì‚©‚©‚é•”•ª‚̓XƒŒƒbƒh‚Å‚â‚Á‚Ä‚ ‚é‚©‚ç‚‘¬‚̂͂¸

202:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/09 12:39:04
ŠÂ‹«FWindowsXP VS2005 SP1 MFCƒAƒvƒŠƒP[ƒVƒ‡ƒ“ ƒ_ƒCƒAƒƒOƒx[ƒX

‚ ‚éŽs”Ì‚ÌDLLilib‚à•t‚¢‚Ä‚½‚Ì‚Åu’ljÁ‚̈ˑ¶ƒtƒ@ƒCƒ‹‚ÉŽw’èÏ‚Ývj‚ÌŠO•”ŠÖ”‚ðƒR[ƒ‹‚·‚邽‚Ñ‚ÉAˆÈ‰º‚̂悤‚ȃƒbƒZ[ƒW‚ªo—̓EƒBƒ“ƒhƒE‚ɂł܂·B

HOGE.EXE‚Ì0x7c812a5b‚ʼn‰ñ‚Ì—áŠO‚ª”­¶‚µ‚Ü‚µ‚½FMicrosoft C++‚Ì—áŠOF std::runtime_error iƒƒ‚ƒŠ‚ÌêŠ 0x0012f16cj

0x7c812a5b‚ŃOƒO‚邯‚¢‚­‚‚©ƒqƒbƒg‚µ‚Ü‚µ‚½‚ªAŒ´ˆö“Á’è‚Å‚«‚¸B
Žd•û‚È‚¢‚̂Ŋ֔ƒR[ƒ‹‚ðtry catch‚Å‚­‚­‚Á‚Ä‚àcatch‚Å‚«‚¸B
_try _except‚Å‚àŽó‚¯‚ꂸB

‚±‚̃Gƒ‰[‚͂ǂ¤‚â‚Á‚½‚ço‚È‚­‚È‚é‚Å‚µ‚傤‚©H

203:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/09 12:40:31
”ñ“¯Šúˆ—‚¶‚á‚È‚­‚Ä‚‘¬‰»‚ª–Ú“I‚Ȃ̂©ƒˆB

‚æ‚­’m‚ç‚Ë‚¥‚ñ‚¾‚ªAƒfƒ…ƒAƒ‹ƒRƒA‚Ƃ͌¾‚¦
ƒvƒƒZƒX‚Å‚à‚È‚¢’P‚È‚éƒXƒŒƒbƒh‚ÅOS‚ªƒ}ƒ‹ƒ`‚Ȉ—‚µ‚Ä‚­‚ê‚é‚ñ‚©H
ƒVƒ“ƒOƒ‹ƒRƒA‚È“®‚«‚·‚é‚È‚çAƒfƒBƒXƒpƒbƒ`‚·‚邾‚¯‚łނµ‚ë’x‚­‚Ȃ肻‚¤‚È‚ñ‚¾‚ªB

204:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/09 12:42:39
‚䂯‚苳ˆç‚ª‚Ç‚¤‚±‚¤Œ¾‚í‚ê‚Ă邯‚ÇA194‚Í‚à‚Á‚ƃ\[ƒX‚ɂ䂯‚è‚ðŽ‚½‚¹‚é‚ׂ«
•ϑԂƌ¾‚í‚ê‚Ä‚à‚»‚̂܂܂Á‚Ä‚±‚Æ‚Í^«‚ÌM‚È‚ñ‚¾‚낤‚©

205:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/09 12:45:39
>>203
‚µ‚©‚àAŽÀ‘Ԃ̓fƒBƒXƒNƒAƒNƒZƒX‚Å—¥‘¬‚³‚ê‚é‚©‚ç(“¯‚¶ƒfƒBƒXƒNã‚̃tƒ@ƒCƒ‹‚𒲂ׂéŒÀ‚è)–w‚Ç‘¬‚­‚È‚é—]’n‚ª‚È‚¢ã©B

206:202
07/11/09 12:47:30
‘‚«–Y‚ê‚Ü‚µ‚½‚ªAo—̓EƒBƒ“ƒhƒE‚É•\ަ‚ªo‚邾‚¯‚ÅA
“®ì‚ɂ͉e‹¿‚Í¡‚̂Ƃ±‚ë‚ ‚è‚Ü‚¹‚ñB
‚ ‚ÆA‚»‚ÌŽs”Ì‚ÌDLL‚É•t‚¢‚Ä‚«‚½MFC‚̃Tƒ“ƒvƒ‹ƒvƒƒWƒFƒNƒg‚ÅŽŽ‚µ‚Ä‚à“¯‚¶ƒGƒ‰[‚ªo—̓EƒBƒ“ƒhƒE‚Éo‚Ü‚·B

207:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/09 14:46:34
‚»‚ÌŽs”ÌDLL‚Ì–¼‘O‚à‘‚©‚ñ‚Æ‚¢‚¤‚±‚Ƃ̓GƒXƒp[Šó–]‚©B

208:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/09 15:54:58
const.cpp
1 #include <iostream>
2
3 void extfunc(const int &val)
4 { std::cout << val << std::endl; }
5
6 class A
7 {
8 static const int CONSTDATA = 0x100;
9 public:
10 void func()
11 { extfunc(CONSTDATA); }
12 };
13
14 int
15 main()
16 {
17 A a;
18 a.func();
19 return 0;
20 }

$ g++ --version
g++ (GCC) 4.2.3 20071014 (prerelease) (Debian 4.2.2-3)
$ g++ const.cpp
/tmp/ccN8OXMd.o: In function `A::func()':
const.cpp:(.text._ZN1A4funcEv[A::func()]+0x9): undefined reference to `A::CONSTDATA'

‚¤[‚ñEEEƒRƒ“ƒXƒgƒƒ“ƒo•Ï”‚Á‚ÄAŽQƂŎ󂯂鎖‚ªo—ˆ‚È‚¢‚ñ‚Å‚µ‚傤‚©H
extfunc(int(CONSTDATA)); ‚Æ‚·‚ê‚Î’Ê‚è‚Ü‚·‚ª‚È‚ñ‚©EEE

209:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/09 15:59:37
ƒ[ƒJ[‚É“d˜bB

210:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/09 16:19:18
>>208
’è‹`‚ª–³‚¢‚©‚猫‚¢ƒRƒ“ƒpƒCƒ‰‚È‚ç’蔃f[ƒ^‚̗̈æ‚ÍŠm•Û‚µ‚È‚¢‚炵‚¢‚Ë
i‚Ȃ̂œ–‘RƒVƒ“ƒ{ƒ‹‚à‚È‚¢j
by ƒƒCƒ„[ƒY

’è‹`‚µ‚Ă݂Ȃæ

const int A::CONSTDATA;

211:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/09 16:41:20
>>203
187‚ÌꇂŌø‰Ê‚ª‚ ‚é‚©‚Ç‚¤‚©‚͕ʂƂµ‚ÄA­‚È‚­‚Æ‚àWindows‚Å‚ÍA
ƒ}ƒ‹ƒ`ƒXƒŒƒbƒh‚Å‚à•¡”‚̘_—CPU‚ðŽg‚Á‚Ä‚­‚ê‚éB

212:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/09 16:46:47
Linux‚ɂƂÁ‚Ä‚ÍAƒXƒŒƒbƒh‚̓vƒƒZƒX‚ÆŠî–{“I‚ɂ͓¯‚¶B
]‚Á‚ÄA“Á’è‚̃XƒŒƒbƒh‚ª‚ǂ̃RƒA‚ÅŽÀs‚³‚ê‚é‚©‚Í
Œ´‘¥“I‚ɃJ[ƒlƒ‹‚ɂ䂾‚Ë‚ç‚ê‚éB

213:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/09 17:07:17
>>210
‚È‚ñ‚ÆEEE

6 class A
7 {
8 static const int CONSTDATA;
9 public:
10 void func()
11 { extfunc(CONSTDATA); }
12 };
13
14 const int A:CONSTDATA = 0x100;

‚ÅOK‚Å‚µ‚½C#define‚µ‚¿‚á‚¢‚»‚¤‚¾‚¯‚Ç‚±‚±‚͉ä–EEE
ƒTƒ“ƒNƒX‚Å‚·

214:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/09 22:00:56
>>213
‰Šú’l‚ÌŽw’è‚̓Nƒ‰ƒX’è‹`“à‚Å‚¢‚¢‚ñ‚¾‚ºB‚»‚¤‚µ‚È‚¢‚Æ”z—ñ—v‘f”‚Æ‚©‚Ì
’蔎®‚ɂ‚©‚¦‚È‚¢B

>>210
ƒNƒ‰ƒX‚̃ƒ“ƒo•Ï”‚Í’è‹`‚µ‚È‚¢ŒÀ‚èŽÀ‘Ì‚ª‚È‚­‚ÄAŽQÆ‚âƒ|ƒCƒ“ƒ^‚ðŽæ‚ë‚¤‚Æ‚·‚邯
ƒGƒ‰[‚ɂȂ邱‚Ƃ͌ˆ‚Ü‚Á‚Ä‚¢‚éB®”Œ^‚ÉŒÀ‚Á‚ĉŠú’l‚ðƒNƒ‰ƒX’è‹`“à‚É‘‚¯‚ÄA
‘‚¯‚Β蔎®‚ÉŽg‚¦‚邯‚¢‚¤“Á•ʃ‹[ƒ‹B

215:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/09 22:03:41
>>206
DLL “à‚Å throw ‚³‚ê‚Ä DLL “à‚Å catch ‚³‚ê‚Ä‚é‚ñ‚Å‚µ‚åB‰½‚à–â‘è‚È‚¢B

216:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/10 00:33:03
ˆÃ†ƒAƒ‹ƒSƒŠƒYƒ€‚ð•׋­‚µ‚Í‚¶‚ß‚½‚Æ‚±‚ë‚Ȃ̂ł·‚ªA
DES ‚â AES ‚È‚ÇAˆê”Ê“I‚ȈÆ•ûŽ®‚̃‰ƒCƒuƒ‰ƒŠ‚Í‚ ‚è‚Ü‚¹‚ñ‚©H
C ‚Å‚à C++ ‚Å‚à‚¢‚¢‚Å‚·B

‚²‘¶’m‚Ì‚©‚½A‚à‚µ‚­‚ÍŽ©ìƒ‚ƒm‚ðŽ‚Á‚Ä‚¢‚é‚©‚½Aî•ñ‚ð‚¨Šè‚¢‚µ‚Ü‚·B

;; ‚Å‚«‚ê‚Î SHA-1 ‚â base64 ‚܂őΉž‚µ‚Ä‚¢‚邯Šð‚µ‚¢‚Å‚·‚ªA
;; –³‚­‚Ä‚à\‚¢‚Ü‚¹‚ñB



217:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/10 00:39:48
•׋­‚Ȃ玩•ª‚Åì‚êBƒ‰ƒCƒuƒ‰ƒŠ‚ðŽg‚¦‚邿‚¤‚ɂȂÁ‚Ä‚à•׋­‚ɂȂç‚È‚¢‚¼
‚ ‚ÆSHA-1‚âbase64‚͈Æ‚¶‚á‚È‚¢

218:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/10 00:58:37
>>216
openssl‚Æ‚©‚©H
‚Ü‚Ÿ‚Å‚à>>217‚É1•[

219:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/10 01:07:12
>>214
‚¾‚©‚çEffectiveC++‚ÉÚ‚Á‚Ä‚¢‚邯BB

220:203
07/11/10 01:21:43
>>211-212
î•ñƒTƒ“ƒNƒXB
—Ç‚­’m‚ç‚ñ‚±‚Æ‚µ‚á‚ׂÁ‚Ä‚·‚Ü‚ñ‚©‚Á‚½B

221:187@ƒXƒŒƒbƒho—ˆ‚Ü‚µ‚½
07/11/10 03:02:08
#include <iostream>
#include <windows.h>
#include <process.h>
using namespace std;
#define N 100
#define K 320000
unsigned int su[N][256]; char fname[N][256],chk[N];

unsigned WINAPI open(void *p){
unsigned long size,n=(int)p; char *buf=new char [K+100];
HANDLE fp=CreateFile(fname[n],GENERIC_READ,0,NULL,OPEN_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);
while(1){ ReadFile(fp,buf,K,&size,NULL); if(size==0){chk[n]=0;return 0;}
for(int i=0;i<size;i++)su[n][ (unsigned char)buf[i] ]++;}}

main(){ WIN32_FIND_DATA fd;
char path[200]="d:\\aaa\\",serchpath[200];
strcpy(serchpath, path); strcat(serchpath, "*");
SetCurrentDirectory(path);
HANDLE hd = FindFirstFile(serchpath, &fd);
int n,i; HANDLE hf[N];
for(n=0;n<N;n++)for(i=0;i<256;i++)su[n][i]=0;for(n=0;n<N;n++)chk[n]=0;

for(;;){ if(chk[n]==0){
for(;;){if(!FindNextFile(hd, &fd))goto end;
if(!(fd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY))break;}
strcpy(fname[n],fd.cFileName); chk[n]=1;
hf[n]=(HANDLE)_beginthreadex(NULL, 0, open,(void*)n, 0 ,NULL);}
n++;if(n>=N)n=0;}
end: WaitForMultipleObjects(N, hf, TRUE, INFINITE);
for(n=1;n<N;n++)for(i=0;i<256;i++)su[0][i]+=su[n][i];
for(i=0;i<256;i++)cout<<i<<" no kosu "<<su[0][i]<<endl;}

222:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/10 08:40:14
>>221
>for(;;){ if(chk[n]==0){
ʼn‚É‚±‚Ìs‚É“ž’B‚·‚邯‚« n=N ‚¾‚¼B

223:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/10 10:27:45
>>219
–{‚ÍŽ‚Á‚ĂȂ¢‚̂Œm‚ç‚È‚¢‚¯‚ÇAƒNƒ‰ƒX’è‹`“à‚Ì static const ‚È®”Œ^‚ɂ‚¢‚Ä
>210 ‚Ý‚½‚¢‚ÉuŒ«‚¢ƒRƒ“ƒpƒCƒ‰‚È‚ç`v‚Á‚Ä‘‚¢‚Ä‚ ‚é‚È‚çA‚¿‚å‚Á‚Æ•s³Šm‚¾‚ÆŽv‚¤B

224:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/10 11:24:44
>ƒNƒ‰ƒX‚̃ƒ“ƒo•Ï”‚Í’è‹`‚µ‚È‚¢ŒÀ‚èŽÀ‘Ì‚ª‚È‚­‚ÄA

‚±‚ê‚Í•K‚¸‚µ‚ೂµ‚­‚È‚¢‚Æ‚¢‚¤‚±‚Æ‚ª‘‚©‚ê‚Ă邿B
‚±‚ê‚ðŽÀŒ»‚·‚éƒRƒ“ƒpƒCƒ‰‚ª‚¢‚í‚ä‚錫‚¢ƒRƒ“ƒpƒCƒ‰B
•W€‚ÅAâ‘΂ɗ̈æŠm•Û‚ª‚³‚ê‚È‚¢‚±‚Æ‚ª•ÛႳ‚ê‚Ä‚¢‚é
‚킯‚ł͂Ȃ­AŽÀ‘•ˆË‘¶‚ƂȂéBstatic const‚ȃf[ƒ^‚ÍA
Šm•Û‚³‚ê‚é‚È‚ç‚ÎA‘å’ïÓI—̈æ‚ɂȂéBƒAƒhƒŒƒX‚ð•K—v‚Æ‚·‚é
ˆ—‚ª‚ ‚éꇂɌÀ‚Á‚Äi‚±‚Ìꇂ͕K‚¸—̈æŠm•Û‚ª•K—vj—̈æ
‚ðŠm•Û‚µ‚Ä‚à‚¢‚¢‚µA–³ðŒ‚ÉŠm•Û‚µ‚Ä‚¨‚¢‚Ä‚à‚¢‚¢B
‚»‚ê‚ÍŽÀ‘•ˆË‘¶‚Æ‚¢‚¤‚±‚ÆB
—̈æŠm•Û‚ðâ‘Î‚É”ð‚¯‚½‚¯‚ê‚Îenum‚ðŽg‚¦‚΂¢‚¢B

225:224
07/11/10 11:27:22
>ƒNƒ‰ƒX‚̃ƒ“ƒo•Ï”‚Í’è‹`‚µ‚È‚¢ŒÀ‚èŽÀ‘Ì‚ª‚È‚­‚ÄA

‚Æ‚¢‚¤‚Ì‚ÍA‚à‚¿‚ë‚ñ”ñstatic‚ȃƒ“ƒo[‚ɂ‚¢‚Ăͳ‚µ‚¢B
ã‚Å‘‚¢‚½‚Ì‚Ístatic‚ȃƒ“ƒo[‚ɂ‚¢‚ÄB

226:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/10 11:34:49
>>210>>214>>223

BCC‚Å>>208‚ňø‚Á‚©‚©‚Á‚Ä’²‚ׂ½‚Æ‚«‚É
u>>208‚ÍV‚µ‚¢‹KŠi‚Å>>213‚͌¢‹KŠiv
‚Ý‚½‚¢‚È‹Lq‚ðŒ©‚½‚ñ‚¾‚ªB

ƒRƒŒ‚ªƒzƒ“ƒg‚È‚çAuŒ«‚¢v‚Æ‚©‚ ‚ñ‚Ü‚èŠÖŒW‚È‚¢‚ñ‚¶‚á‚ËH

³Šm‚ȂƂ±‚ë’m‚Á‚Ä‚élAƒtƒHƒ[plz


227:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/10 11:50:28
>>226
ƒ|ƒCƒ“ƒ^‚âŽQƂƂ©‚̃AƒhƒŒƒX‚ð•K—v‚Æ‚µ‚È‚¢ê‡‚Å‚àí‚Ƀƒ‚ƒŠŠm•Û
‚ð‹­§‚³‚ê‚邯‚¢‚¤‚Ì‚ðV‚µ‚¢‹KŠi‚Å”F‚é‚Ì‚ÍM‚¶‚ª‚½‚¢‚¯‚ÇB

³Šm‚ȂƂ±‚ë’m‚Á‚Ä‚élAƒtƒHƒ[plz

228:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/10 12:43:08
>>224
‚³‚Á‚«‚©‚çŽÀ‘•ˆË‘¶‚¾‚ÆŒ¾‚Á‚Ä‚é‚Ì‚Á‚ÄA–¼‘O‹óŠÔƒXƒR[ƒv‚É’è‹`‚µ‚½ const •Ï”‚Ì
˜b‚¶‚á‚È‚¢‚ÌH

ƒNƒ‰ƒX‚Ì static const ‚ȃƒ“ƒo•Ï”‚̓Nƒ‰ƒX’è‹`“à‚Å‚Í錾‚µ‚©‚³‚ê‚È‚¢‚Ì‚ÅA
•Ê“r’è‹`‚ª•K—vB®”Œ^‚ÉŒÀ‚Á‚ÄA錾‚ɂ‚¯‚½‰Šú’l‚ðŽ‚Â’è”Ž®‚Æ‚µ‚ÄŽg‚¦‚é
‚Æ‚¢‚¤“Á•ʃ‹[ƒ‹‚ª‚ ‚邾‚¯B

C++ 2003 ‹KŠi‚Ì 9.4.2 p2 ‚æ‚è
> The declaration of a static data member in its class definition is not a definition and may be of an
> incomplete type other than cv-qualified void. The definition for a static data member shall appear in a
> namespace scope enclosing the memberfs class definition.

“¯‚¶‚­ 9.4.2 p4
> If a static data member is of const integral or const enumeration type, its declaration in the class
> definition can specify a constant-initializer which shall be an integral constant expression (5.19). In that
> case, the member can appear in integral constant expressions. The member shall still be defined in a namespace
> scope if it is used in the program and the namespace scope definition shall not contain an initializer.


229:228
07/11/10 12:53:51
‚ A®”Œ^‚Ì static const ƒƒ“ƒo•Ï”‚ɂ‚¢‚Ä‚Í "if it is used" ‚Á‚Ä‚ ‚é‚©‚çA
’蔎®‚̈ꕔ‚Æ‚µ‚ÄŽg‚¤‚Ô‚ñ‚ɂ͒è‹`‚Í•K—v–³‚¢‚ËBŽQÆ‚âƒ|ƒCƒ“ƒ^‚ðŽæ‚ç‚ê‚é
‰Â”\«‚ª‚ ‚é‚È‚çŠÖŒW‚È‚¢‚¯‚ÇB

>208 ‚Ì—á‚à‚ ‚邵Aƒ‰ƒCƒuƒ‰ƒŠ‚Æ‚µ‚Ä’ñ‹Ÿ‚·‚邿‚¤‚ÈŽž‚ɂ͋C‚ð‚‚¯‚Ä’è‹`‚µ‚Æ‚©‚È‚¢‚Æ
‚Ü‚¸‚¢‚ËB


230:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/10 14:09:21
>>228
thx

231:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/10 14:23:44
bind1st‚âbind2nd‚Ì–ß‚è’l‚͉½‚Å‚µ‚傤‚©H
‚Ç‚¤‚¢‚¤«Ž¿‚Ì‚à‚̂Ȃ̂©H‚ ‚ÆŒ^–¼‚Æ‚©B

232:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/10 15:20:54
binder1st‚âbinder2nd

233:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/10 17:13:27
>>232
‚»‚ê‚͈ø”‚ðˆê‚‚Ƃéoperator( )‚ª’è‹`‚³‚ê‚Ä‚¢‚éŠÖ”ƒIƒuƒWƒFƒNƒg‚Ì
ƒNƒ‰ƒXŒ^‚Æ‚¢‚¤‚±‚Ƃł·‚æ‚ËH

234:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/10 17:36:10
‚»‚¤B
’¼Úbinder1st‚âbinder2nd‚ðŽg‚Á‚Ä‚à–â‘è‚Í–³‚¢‚ñ‚¾‚¯‚ÇA
‚»‚ÌꇂÍbinder1st<‚±‚±‚ð‘‚©‚È‚«‚á‚¢‚¯‚È‚¢‚Ì‚ª‚ß‚ñ‚Ç‚¢‚æ‚Ë>B

235:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/10 17:42:20
>>234
‚Ç‚¤‚àB
ƒXƒgƒ‰ƒbƒv–{‚Å—‰ð‚Å‚«‚Ü‚µ‚½B

236:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/10 18:11:21
•R–{H

237:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/10 18:14:49
“Ö{

238:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/11 15:11:11
VC6.0‚Å‚©‚©‚ꂽƒvƒƒOƒ‰ƒ€‚ðVisualStudio2005‚ɈÚA‚µ‚悤‚Æ‚µ‚Ă܂·B

‚ ‚éƒvƒƒZƒX‚Åstrtokij‚ÅAƒg[ƒNƒ“•ª‰ð’†‚ÉÓIƒŠƒ“ƒN‚µ‚½DLL‚ÌŠÖ”‚ðŒÄ‚ñ‚Å‚¢‚Ü‚·B
‚»‚ÌŠÖ”“à‚Å‚àstrtok()‚µ‚Ä‚é‚炵‚­AŠÖ”I‚¦‚ČĂÑo‚µŒ³‚Å‘±‚«‚Ìstrtok()‚ð‚µ‚æ‚¤‚Æ‚·‚邯AˆÓ}‚µ‚È‚¢’li‹ï‘Ì“I‚É‚ÍNULLj‚ª“ü‚Á‚Ä‚µ‚Ü‚¢‚Ü‚·B

MSDN‚ɂ͂bƒ‰ƒ“ƒ^ƒCƒ€ƒ‰ƒCƒuƒ‰ƒŠ‚̕łÉÓIƒŠƒ“ƒN‚È‚ç–â‘è‚È‚¢‚悤‚È‚±‚Ƃ𑂢‚Ă܂·‚ªA
‚È‚ºstrtok()‚ªÃ“IƒŠƒ“ƒN‚µ‚½ŠÖ”‚ɂЂ«‚Âç‚ê‚é‚̂łµ‚傤‚©B
‚ ‚ÆVC6.0‚Ì ‚͈ø‚«‚¸‚ç‚ê‚È‚©‚Á‚½‚̂łµ‚傤‚©B

ŠÂ‹«FXP MFC


239:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/11 15:26:26
>>238
strtok() ‚̓kƒ‹‚ð“n‚³‚ꂽ‚Æ‚«‚Ì‚½‚߂ɑO‰ñ‚Ì•ªŠ„ˆÊ’u‚ðÓI‚ȕϔ‚ÉŠo‚¦‚Ä‚¢‚é
‚±‚Æ‚ª‚ ‚éB‚¾‚©‚çAŠî–{“I‚É‚»‚¤‚¢‚¤Žg‚¢•û‚͂ł«‚È‚¢B

URLØÝ¸(msdn2.microsoft.com)(VS.80).aspx
ÓIƒŠƒ“ƒN‚Å DLL ‚Ƃ̋£‡‚ª‹N‚±‚ç‚È‚¢——R‚à‚¿‚á‚ñ‚Æ‘‚¢‚Ä‚ ‚éB
VC8(VS2005) ‚Å‚àÓIƒŠƒ“ƒN‚ÍŽg‚¦‚é‚©‚çA–¾Ž¦“I‚ÉŽw’è‚·‚ê‚Γ¯‚¶“®ì‚É
‚È‚é‚ñ‚¶‚á‚È‚¢‚ÌH

240:238
07/11/11 17:30:02
>>239
‚ ‚肪‚Æ‚¤B
Ž©•ª‚à‚»‚̕Ō©‚Ä‚½‚¯‚ÇAÓIƒŠƒ“ƒN‚·‚é‚Ì‚ÍCRT‚Å‚ ‚Á‚ÄA
‚±‚¿‚炪ì‚Á‚½DLL‚¶‚á‚È‚¢‚킯‚Å‚·‚ËB
‚»‚±‚ðŠ¨ˆá‚¢‚µ‚Ă܂µ‚½B

Œ‹‹Ç‚ǂ̃Rƒ“ƒpƒCƒ‰ƒIƒvƒVƒ‡ƒ“‚ð‘I‚ׂ΂¢‚¢‚©’²‚ׂ«‚ê‚È‚©‚Á‚½‚Ì‚Å
VC6.0‚ÌŽž‚Í“K؂ȃRƒ“ƒpƒCƒ‰ƒIƒvƒVƒ‡ƒ“‚¾‚Á‚½‚ñ‚¾‚낤‚¯‚ÇA¡‰ñ‚Ístrtok_s()Žg‚¤‚±‚Ƃɂµ‚Ü‚µ‚½B

241:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/11 17:38:52
•„†‚È‚µ®”‚¾‚ƃI[ƒoƒtƒ[‚ª‹N‚«‚È‚¢
‚Æ‚¢‚¤‚悤‚Șb‚ð‚Æ‚«‚Ç‚«Žf‚¤‚̂ł·‚ªA
‚Ç‚¤‚¢‚¤‚±‚ƂȂ̂©—‰ð‚Å‚«‚Ü‚¹‚ñcc
‹³‚¦‚Ä’¸‚¯‚Ü‚¹‚ñ‚©H

242:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/11 17:56:28
ƒI[ƒoƒtƒ[‚ª‹N‚«‚È‚¢‚È‚ñ‚Ä‚±‚Ƃ͂Ȃ¢‚̂ŖY‚ê‚Ä‚­‚¾‚³‚¢

243:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/11 18:00:02
>>241
•„†‚È‚µ®”‚ÌŒvŽZ‚Å‚ÍAÅ‘å’l‚ÌŽŸ‚ª 0 ‚Å 0 ‚Ì‘O‚ªÅ‘å’l‚Æ‚¢‚¤‚Ó‚¤‚Ƀ‰ƒbƒv‚µ‚Ä‚¢‚é
‚à‚̂Ƃµ‚ÄŒ‹‰Ê‚ª•K‚¸‚»‚ÌŒ^‚͈͓̔à‚ÉŽû‚Ü‚éA‚Æ‹KŠi‚Å’è‚ß‚ç‚ê‚Ä‚¢‚éB

ƒ‰ƒbƒv‚·‚éꇂðŽw‚µ‚ăI[ƒo[ƒtƒ[‚ÆŒ¾‚¤‚©‚Ç‚¤‚©‚Í”÷–­‚ȂƂ±‚ëB

244:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/11 18:28:41
>>243
‚È‚é‚Ù‚ÇA”[“¾‚Å‚«‚Ü‚µ‚½
‚ ‚肪‚Æ‚¤‚²‚´‚¢‚Ü‚·

245:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/11 18:50:42
‚Í‚¶‚߂܂µ‚ÄB
‰SŽÒ‚Å‚·B
C++‚ɂ‚¢‚ÄŽ¿–₪‚ ‚è‚Ü‚·B
Array‚ÆVecotor‚Ì‘S‚Ă̒l‚ðƒtƒ@ƒ“ƒNƒVƒ‡ƒ“‚É“n‚µ‚ÄAArray‚Ì‘S‚Ă̒l‚ðReturn‚µ‚½‚¢‚̂ł·‚ªA
‚¤‚Ü‚­‚¢‚«‚Ü‚¹‚ñB
ƒR[ƒ‹‚ÌŽd•û‚ÆAƒvƒƒgƒ^ƒCƒv‚Ì‘‚«•ûA‚»‚ê‚©‚çReturn‚Ì‘‚«•û‚ð‹³‚¦‚Ä‚­‚¾‚³‚¢B

‚à‚µ‚­‚ÍA‰½‚©•ʂ̕û–@‚ð‚µ‚È‚¢‚Æ‚¢‚¯‚È‚¢‚̂łµ‚傤‚©cH

‚æ‚낵‚­‚¨Šè‚¢‚µ‚Ü‚·B

246:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/11 18:58:21
>>245

Array ‚Æ‚© Vecotor ‚Æ‚©•·‚¢‚½‚±‚ƂȂ¢‚¯‚Ç
int ‚Ȃ艽‚È‚è‚Æ•Ï‚í‚ç‚ñ‚ÆŽv‚¤‚æ

Array func(Array a)
{
@/* a ‚ɂ‚¢‚Ä‚¢‚ë‚¢‚눗 */
@return a;
}

void func(Array *a)
{
@/* a ‚ɂ‚¢‚Ä‚¢‚ë‚¢‚눗 */
}

247:245
07/11/11 19:14:29
>246

Int‚âDoubleAChar“™‚ÌScalar•Ï”i‚ЂƂ‚̒l‚µ‚©ŠÜ‚܂Ȃ¢•Ï”j‚È‚ç
‚¤‚Ü‚­‚¢‚­‚̂ł·‚ªAArray‚âVector‚̂悤‚ÈCollection•Ï”i“ñ‚ˆÈã‚Ì’l‚ðŠÜ‚Þ•Ï”j‚Í
‚È‚º‚©‚¤‚Ü‚­‚¢‚©‚È‚¢‚̂ł·B

IntŒ^Array‚ɂ‚¢‚ÄA
Int myFunction(myArray[])
o
Array‚ɂ‚¢‚Ĉ—

return myArray[]G
p
‚âA
StringŒ^Vector‚ɂ‚¢‚Ä

String myFunction(myVector[])
o
myVectorˆ—
@
@return@myVector[];
o

‚̂悤‚É‚â‚낤‚Æ‚µ‚Ä‚¢‚é‚̂ł·‚ªAŠÔˆá‚¦‚Ä‚¢‚é‚̂łµ‚傤‚©cH

248:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/11 19:36:53
>>247
ƒRƒ“ƒpƒCƒ‹‚à‚Å‚«‚È‚¢ƒR[ƒh‚ð“\‚Á‚ÄuŠÔˆá‚¦‚Ä‚¢‚é‚̂łµ‚傤‚©cHv‚Á‚ÄA‰½l‚¦‚Ä‚ñ‚¾H
ƒGƒXƒp[‚Å‚à•åW‚µ‚Ä‚ñ‚Ì‚©H

‚Ƃ肠‚¦‚¸ C/C++ ‚Å‚Í‘å•¶Žš¬•¶Žš‚ª‹æ•Ê‚³‚ê‚é‚©‚çA‹æ•Ê‚µ‚ëB‚¢‚܂̂܂܂¶‚á
‚ß‚¿‚á‚­‚¿‚á‚·‚¬‚éB

ŽÀۂɃR[ƒh‚ð‘‚¢‚ăRƒ“ƒpƒCƒ‹‚µ‚ëB‚»‚µ‚½‚çƒGƒ‰[ƒƒbƒZ[ƒW‚ªo‚é‚©‚çA‚»‚ê‚ð‰ÅB

249:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/11 19:36:59
‰½‚ª‚â‚肽‚¢‚Ì‚©A‚Ü‚¾‚æ‚­‚í‚©‚ç‚È‚¢‚È‚ŸB

250:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/11 19:38:02
‚±‚ê‚ÍC/C++‚È‚ÌH
myArray/myVector‚ªƒeƒ“ƒvƒŒ[ƒg‚Ȃ̂©‚à‰ö‚µ‚¢‚¯‚Ç
STL‘O’ñ‚Ȃ炱‚¤‘‚­‚ñ‚¶‚á‚È‚¢‚©

// intŒ^‚̃xƒNƒ^‚ð’è‹`
typedef std::vector<int> myIntArray;

myIntArray myIntFunction(myIntArray array)
{
@ myArray::iterator i = array.begin();
@ myArray::iterator e = array.end();
@ while(i != e) {
@ @ // array‚ɑ΂·‚鈗(—v‘f‚É1‚ð‘«‚·)
@ @ *i += 1;
@ @ i++;
@ }
@ return array; // ˆ—Œ‹‰Ê‚ð•Ô‚·
}



251:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/11 19:42:54
‚í‚è‚¡
@ myIntArray::iterator i = array.begin();
@ myIntArray::iterator e = array.end();
‚¾‚í

252:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/11 20:08:26
for_eachŽg‚Á‚½‚Ù‚¤‚ª‚æ‚­‚ËH

253:ƒGƒXƒp[
07/11/11 20:12:05
>>247
‚»‚ÌArray‚âVector‚̓Rƒs[‚Å‚«‚È‚¢
‚¾‚©‚çŠÖ”‚É‚»‚̂܂ܓn‚·‚±‚Æ‚à•Ô‚·‚±‚Æ‚à‚Å‚«‚È‚¢

254:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/11 20:41:47
‚Ƃ肠‚¦‚¸‰½‚¾B
Int ‚Á‚ĉ½‚¾BArray ‚Á‚ĉ½‚¾BString ‚Á‚ĉ½‚¾BC/C++ ‚É‚»‚ñ‚È‚à‚̂͂Ȃ¢B

‚µ‚©‚àA‚¹‚Á‚©‚­
„Array func(Array a)
‚Á‚ăAƒhƒoƒCƒX‚à‚ç‚Á‚Ä‚é‚Ì‚ÉA
„Int myFunction(myArray[])
‚Á‚ÄŽv‚¢‚Á‚«‚è–³Ž‹‚µ‚Ă邵B

255:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/11 21:58:30
‚·‚݂܂¹‚ñƒXƒŒƒ`‚©‚à’m‚ê‚Ü‚¹‚ñ‚ªŽ¿–â‚Å‚·B

Windows Vista‚ÆVisual C++ 2005 Exp‚ÅOpenGL‚ðŽg‚¢ŠÈ’P‚ȃQ[ƒ€ƒAƒvƒŠ‚ð»ì‚µ‚Ü‚µ‚½B
—FlA‚ÌVista‹@‚ł͂Ȃñ‚ç–â‘è‚È‚­“®ì‚µ‚½‚̂ł·‚ªA—FlB‚ÌXP‚ł͓®ì‚µ‚Ü‚¹‚ñ‚Å‚µ‚½B
—FlAAB‚Æ‚à‚ÉOpenGL‚ÌDLL‚Í“ü‚Á‚Ä‚¢‚Ü‚·B

‚ǂȂ½‚©‰ðŒˆ‚̃qƒ“ƒg‚Å‚à‚¢‚¢‚̂ł²‘¶‚¶‚Å‚ ‚ê‚΂æ‚낵‚­‚¨‚Ë‚ª‚¢‚µ‚Ü‚·B

256:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/11 22:02:47
msvcr80.dll‚ª‚È‚ñ‚½‚ç‚Á‚Ä‚¢‚¤ƒGƒ‰[ƒƒbƒZ[ƒW‚¾‚Á‚½‚çA
VC++ 2005‚̃‰ƒ“ƒ^ƒCƒ€‚ð“ü‚ê‚ëB

257:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/11 22:02:51
Visual C++‚̃‰ƒ“ƒ^ƒCƒ€‚Í“ü‚Á‚Ă邩‚ËH

258:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/11 22:08:27
•·‚¢‚Ă݂½‚Æ‚±‚ëAƒ‰ƒ“ƒ^ƒCƒ€‚Í“ü‚Á‚Ă邯‚Ì‚±‚Ƃłµ‚½BƒGƒ‰[ƒƒbƒZ[ƒW‚Í
w‚±‚̃AƒvƒŠƒP[ƒVƒ‡ƒ“‚Ì\¬‚ª³‚µ‚­‚È‚¢‚½‚ßAƒAƒvƒŠƒP[ƒVƒ‡ƒ“‚ðŠJŽn‚Å‚«‚Ü‚¹‚ñ‚Å‚µ‚½B
ƒAƒvƒŠƒP[ƒVƒ‡ƒ“‚ðÄ“xƒCƒ“ƒXƒg[ƒ‹‚·‚邱‚Ƃɂæ‚è–â‘肪‰ðŒˆ‚·‚éꇂª‚ ‚è‚Ü‚·B x
‚炵‚¢‚Å‚·BVistaŠÂ‹«‚łͳí‚É“®ì‚·‚é‚̂ł·‚ªcc

259:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/11 22:22:56
‚¶‚á‚ .NET Framework‚©‚È

260:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/11 22:45:16
‚±‚ê‚©‚çVC++‚ðŠw‚ÔꇂłàMFC‚Í—LŒø‚Å‚·‚©H
‚»‚ê‚Æ‚àMFC‚Í¡ŒãŽg—p‚³‚ê‚È‚­‚È‚Á‚Ä‚¢‚­‚±‚Æ‚ª”ZŒú‚Å
.NET‚ÆCLRHi‚±‚̈Ⴂ‚͂킩‚è‚Ü‚¹‚ñ‚ªj‚ð•׋­
‚µ‚½‚Ù‚¤‚ª—Ç‚¢‚Å‚µ‚傤‚©H

261:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/11 22:46:08
>>258
ƒGƒ‰[ƒƒbƒZ[ƒW‚ŃOƒO‚Á‚½‚çA‚±‚ñ‚È‚Ìo‚Ä‚«‚½‚ª‚Ç‚¤‚æH
URLØÝ¸(rararahp.cool.ne.jp)

262:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/11 22:57:08
>>260
ŒÂl“I‚Ȉӌ©

.NET‚Å—Ç‚¢‚ÆŽv‚¤B
‚Å‚à‚Ç‚Á‚¿‚Ý‚¿A‚¿‚å‚Á‚Ɠ˂Áž‚ñ‚¾‚±‚Æ‚µ‚悤‚Æ‚·‚邯
Win32API‚ðƒKƒVƒKƒV’@‚­‚±‚ƂɂȂé‚ñ‚ÅA
‚Ü‚¸‚̓EƒBƒ“ƒhƒE‚ÉŽqƒEƒBƒ“ƒhƒE“\‚è•t‚¯‚ÄŠG‚Æ•¶Žš‚ð•\ަ‚·‚é‚®‚ç‚¢‚Í
Win32API‚ðG‚Á‚Æ‚­‚Ì‚ª—Ç‚¢‚ÆŽv‚¤B
1TŠÔ‚àŠ|‚©‚ç‚ñ‚ÆŽv‚¤‚µB

263:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/11 23:05:56
>>262
‰½‚©ˆêû.NET‚Ì–{“Ç‚ñ‚ł݂܂·B

‚¿‚Ȃ݂ÉCLR‚Í.NET‚Ƃ͊֌W–³‚¢‚à‚̂ł·‚©H
.NET‚ÍVB‚âVC#‚Å‚à‹¤’ʂɎg‚¦‚é‚à‚Ì‚ÅCLR‚ÍVC++
ŒÅ—L‚Ì‚à‚̂ł·‚©H

264:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/11 23:07:11
C++‚ł̃Q[ƒ€‚Ì‘g‚Ý•û‚ɂ‚¢‚ÄŽ¿–â‚æ‚¢‚Å‚µ‚傤‚©

Œ»ÝƒVƒ…[ƒeƒBƒ“ƒOƒQ[ƒ€‚ðì‚Á‚Ä‚é‚̂ł·‚ªAˆÈ‰º‚̂悤‚ȃ^ƒXƒNƒVƒXƒeƒ€‚Ås‚È‚Á‚Ä‚¢‚Ü‚·

class ITask
{
virtual void task()=0;
virtual void draw()=0;
};

class CEnemyZakoA : public ITask
class CEnemyZakoB : public ITask
class CEnemyFactory : public ITask
class CBg : public ITask
class CItem : public ITask

‚±‚ñ‚ÈŠ´‚¶‚ÅA‘S‚ẴIƒuƒWƒFƒNƒg‚ÍITask‚ðŒp³‚µAˆê‚‚ÌITaskƒŠƒXƒg‚É“o˜^‚µ‚Ä‚¢‚Ü‚·B
‚»‚±‚Å‹^–â‚Ȃ̂ł·‚ªATask“¯Žm‚ª˜AŒg‚·‚é‚ɂ͂ǂ¤‚·‚ê‚΂悢‚Å‚µ‚傤‚©H

—Ⴆ‚ÎuCBg‚ÌŽ‚Âw‚ǂ̂­‚ç‚¢ƒXƒNƒ[ƒ‹‚µ‚½‚©x‚Ìî•ñ‚É‚æ‚Á‚ÄACEnemyFactory‚Ͷ‚Ýo‚·Zako‚ÌŽí—Þ‚ð•Ï‚¦‚év
‚Æ‚¢‚Á‚½ê‡‚Å‚·B
ˆê‰ž‘fll‚¦‚È‚ª‚炱‚¤‚¢‚¤Žè‚ðl‚¦‚Ü‚µ‚½‚ªAˆê”Ê“I‚ɂ͂ǂ¤‚·‚é‚ׂ«‚Ȃ̂łµ‚傤‚©H

‚PEFacotry‚̂悤‚Ȃق©‚ÌTask‚Ìî•ñ‚Ɉˑ¶‚·‚é‚à‚Ì‚ÍAƒŠƒXƒg‚É“o˜^‚¹‚¸“Á•ʈµ‚¢‚·‚éiCEnemyFactry‚Æ‚µ‚ĕێ‚µ‚Ä‚¨‚­j‚ׂ«
‚QE‘¼‚ÌTask‚Ɉˑ¶‚·‚éTask‚ÍA‚»‚̶¬Žž‚É‚»‚ÌTask‚ւ̃|ƒCƒ“ƒ^‚ð‚à‚ç‚Á‚Ä‚¨‚­‚ׂ«
‚RE‘¼‚ÌTask‚ɉe‹¿‚ð—^‚¦‚éî•ñ‚ð‚܂Ƃ߂½\‘¢‘Ì‚ðŽ‚¿A‚»‚ê‚ւ̃|ƒCƒ“ƒ^‚ðtask()‚̈ø”‚Å“n‚µ‚Ä‚ ‚°‚é‚ׂ«

1‚Í‚¢‚Ü‚¢‚¿‚¾‚ÆŽv‚¢‚Ü‚·B“Á•Ê‚ª‘‚¦‚邽‚тɊǗ‚ª‘‚¦‚Ü‚·‚µA‰½‚Ì‚½‚ß‚ÌITaskƒŠƒXƒg‚Ȃ̂©‚í‚©‚è‚Ü‚¹‚ñ
2‚͂Ȃ©‚È‚©‚¢‚¢Žè‚Å‚·‚ªACBg‚ªíœ‚³‚ê‚½Žž‚Ȃǂɢ‚è‚Ü‚·ishare_ptr‚ðŽg‚¤‚ׂ«Hj
3‚Í\‘¢‘Ì‚ÉV‚µ‚¢î•ñ‚ª‰Á‚í‚邽‚Ñ‚ÉA‘S‚Ä‚ÌCXXX.cpp‚ªÄƒRƒ“ƒpƒCƒ‹‚ɂȂé‚Ì‚ª•s–ž‚Å‚·


265:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/11 23:15:15
>>264
‚±‚¿‚ç‚Ö«‚Ç‚¤‚¼B

ƒ^ƒXƒNƒVƒXƒeƒ€‘‡ƒXƒŒ
½ÚØÝ¸(gamedev”Â)

266:263
07/11/11 23:17:22
‰ðŒˆ‚µ‚Ü‚µ‚½B
“ü–å‘‚É‚à‘‚¢‚Ä‚ ‚è‚Ü‚µ‚½B

267:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/11 23:42:05
>>261
‚ ‚肪‚Æ‚¤‚²‚´‚¢‚Ü‚·IãŽè‚­s‚«‚Ü‚µ‚½I
‘¼‚É‚à•Œ¾’¸‚¢‚½•ûX–{“–‚É‚ ‚肪‚Æ‚¤‚²‚´‚¢‚Ü‚µ‚½B

268:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/12 15:09:38
‚·‚Ü‚»BJava‚âPHP‚âVB‚â‚Á‚Ä‚½‚ñ‚¾‚¯‚ÇAC++‚â‚邱‚ƂɂȂè‚Ü‚µ‚½B

MFC‚¾‚©CLI‚¾‚©’m‚ç‚ñ‚¯‚ÇA‚»‚ê‚ðã‚È‚¼‚è‚·‚邾‚¯‚ÌŒ¾ŒêŽd—l‚ª‚‚©‚ß‚é
C++‚Ì–{‚È‚¢‚Å‚·‚©Hˆê‚©‚çׂ©‚¢‚±‚Ƃ܂Œ²‚ׂé•K—v‚È‚¢‚Ì‚ÅB

C++‚àˆê‰ž‚͂킩‚Á‚Ä‚¢‚Ü‚·BMFC‚Æ‚©CLI‚ªƒ\[ƒXŒ©‚Ä—‰ð‚Å‚«‚é’ö“x‚Ì
ã•Ó‚Ì’mޝ‚ð—‰ð‚Å‚«‚é‚܂ł̕¶–@—Í‚ª‚‚­–{‚Á‚ĂȂ¢‚Å‚·‚©Hׂ©‚¢Œ¾ŒêŽg—p‚Í
“K‹X•ªŒú‚¢–{‚Å‚µ‚ç‚ׂé‚Ì‚ÅBB‚æ‚낵‚­‚¨Šè‚¢‚µ‚Ü‚·B

269:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/12 16:15:11
ƒTƒCƒY•s–¾‚̃tƒ@ƒCƒ‹‚Ì“à—e‚ð‘S•”“ǂݞ‚ÞÛ‚É
“®“I‚ȃƒ‚ƒŠ‚ÌŠ„“–‚ð‚µ‚½‚¢‚Æ‚«A‚ǂ̂悤‚É‚µ‚Ü‚·‚©H

i=0;
while(fgets(...) != NULL ){
++i;
}

‚Æ‚â‚Á‚Ä‚©‚çnew‚Æ‚©malloc‚Æ‚©‚Å”z—ñ‚ðŠm•Û‚·‚é‚Ì‚©‚È‚ 
‚Æ‚©l‚¦‚Ü‚µ‚½‚¯‚ÇA‚Ç‚¤l‚¦‚Ä‚à—]Œv‚ÈŽ–‚ð‚µ‚Ä‚¢‚邿‚¤‚Åc

270:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/12 16:29:18
>>269
‚Â[std::vector]
‚Â[realloc()]

271:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/12 17:00:39
>>269
filelength‚Æ‚©‰½‚ç‚©‚ÌŽè’i‚ðŽg‚Á‚ÄAƒtƒ@ƒCƒ‹ƒTƒCƒY‚ðæ‚É’²‚ׂÄAˆê‹C‚ÉŠ„‚è“–‚Ä‚éB

•W€“ü—Í‚âƒpƒCƒv‚̂悤‚ɃTƒCƒY‚ª‚í‚©‚ç‚È‚¢ê‡‚ÍA‚ ‚é’ö“x‚̑傫‚³‚̃uƒƒbƒN‚²‚Æ‚É
“ǂݞ‚ÝAƒuƒƒbƒN‚Ìlinked list‚ð쬂·‚éB‘å‚«‚³‚ª‚ ‚Ü‚è‘å‚«‚­‚È‚¢‚±‚Æ‚ª‚í‚©‚Á‚Ä‚¢‚é‚È‚ç
realloc‚à‚ ‚èB

272:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/12 17:21:57
>>269
ƒoƒCƒiƒŠƒ‚[ƒh‚Ńtƒ@ƒCƒ‹ƒI[ƒvƒ“‚µ‚ăV[ƒN‘€ì‚Ńtƒ@ƒCƒ‹ƒTƒCƒYŽæ“¾
ifstream
seekg
tellg

273:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/12 18:49:16
C++ ‚É this‚Á‚ĂȂ¢‚ÌH
class sample {
int power;
public setPower(int power) {
this.power=power;
}
};
‚Á‚Ä‚µ‚½‚¢‚ñ‚¾‚¯‚ÇA•¶–@“I‚ɊԈႢ‚¾‚æ‚ËH

274:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/12 18:52:55
>>273
Java‚Ƃ͈á‚Á‚ÄA
this->power


275:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/12 21:17:31
>>273
C++‚Ìthis‚̓|ƒCƒ“ƒ^

276:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/13 11:42:55
VC++2005iExpress) ‚ňȉº‚̉•ϒ·Ž©“®”z—ñ‚ðŽg‚¤ƒR[ƒh‚ª’Ê‚Á‚Ä‚­‚ê‚Ü‚¹‚ñ(g++‚ł͑åä•v‚Å‚µ‚½)
‰Â•Ï’·Ž©“®”z—ñ‚ÍC99‚©‚çƒTƒ|[ƒg‚³‚ꂽ‚炵‚¢‚Å‚·‚ªVC++ 2005‚Í–¢‘ΉžH
ŒÅ’è’·/ƒq[ƒv‚É‚·‚ê‚΂»‚ê‚ÅI‚í‚è‚Ȃ̂ł·‚¯‚ÇAÜŠp‚֗̕˜Žd—l‚Ȃ̂Ŏg‚¢‚½‚¢EEE

static cosnt int ARRAY_MAX 256

bool variable_array_test(int variable_len)
{
if (variable_len <= 0 || variable_len > ARRAY_MAX)
return false; // bad length

@char temporary[variable_len]; // << C2054 ‚ŃGƒ‰[

@return true; // ok
}

c:\ cl
Microsoft(R) 32-bit C/C++ Optimizing Compiler Version 14.00.50727.762 for 80x86

CXXFLAGS = -nologo -Zm200 -GS -Od -Zi -Gm -MDd -GR -EHsc -W


277:273
07/11/13 11:52:33
>>274-275@‚ ‚肪‚Æ‚¤I‚Ç‚¤‚¹A‚±‚ñ‚ȂƂڂ¯‚½Ž¿–â‚ɂ͕Ԏ–‚ª‚«‚ĂȂ¢‚¾‚낤
‚Æ‚¨‚à‚Á‚½‚çA—ˆ‚Ä‚½B‚¨‚©‚°‚ł悭‚í‚©‚è‚Ü‚µ‚½BŽg‚¢•û‚Æ—‹ü‚ªB
PHP‚Ì‚àŽQÆ‚¾‚©‚ç–îˆó‹L†‚È‚ñ‚¾B‚È‚é‚Ù‚ÇA‚È‚é‚Ù‚ÇB‚¨—炪’x‚­‚È‚è\‚µ–ó‚È‚¢‚Å‚·B

278:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/13 11:53:21
VC‚ÍC99‘Ήž‚µ‚Ä‚¢‚È‚¢B
ˆÈã

279:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/13 12:05:27
>>278
i'„tM;jEEE”cˆ¬Cmingw“ü‚ê‚Ä’Ý‚Á‚Ä‚«‚Ü‚·

280:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/13 12:06:32
C++‚̃Rƒ“ƒpƒCƒ‰‚Æ‚µ‚ÄŒ©‚ê‚ÎVC8‚ÍŒ‹\—DG‚È‚ñ‚¾‚ª‚Ë‚¥c

281:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/13 16:06:15
‚»‚à‚»‚àC99‚ÆC++98‚Á‚Ĉê‚ÉŽg‚¦‚é‚ÌH

282:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/13 23:14:06
C++ ‚Ì std::vector Žg‚¦‚΂¢‚¢‚¶‚á‚ñ‚Á‚ÄŽ–‚È‚ñ‚¾‚낤B

283:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/13 23:57:52
C99‚Í‚¢‚ç‚È‚¢Žq

284:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/14 01:48:09
‰Â•Ï’·ˆø”ƒ}ƒNƒ‚¾‚¯‚̓ˆƒRƒZ

285:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/14 01:50:52
‚Ç‚¤‚¹‚È‚ç__FUNC__‚à‚ ‚邯‚¤‚ꂵ‚¢B

286:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/14 02:44:38
>>284-285
—¼•û C++0x ‚É“ü‚é‚Ý‚½‚¢B‚½‚¾‚µ __FUNC__ ‚¶‚á‚È‚­‚Ä __func__ ‚ËB

287:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/14 07:41:10
‚ÅAC++0x‚Ü‚¾[H

288:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/14 10:34:46
C‚Éclass‚ª’ljÁ‚³‚ê‚é‚Ì‚àŽžŠÔ‚Ì–â‘肾‚È

289:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/14 11:41:06
‚Ä‚©C‚¢‚ç‚Ë[

290:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/14 12:53:51
ƒfƒoƒbƒOƒƒOo—ÍŠÖŒW‚ʼn•ψø”ƒ}ƒNƒŽg‚Á‚Ä‚é‚ñ‚¾‚ªA
‚±‚ê‚àŽ~‚ß‚½•û‚ª‚¢‚¢H

291:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/14 12:54:47
‚ AƒˆƒZ‚¶‚á‚È‚­‚ăˆƒRƒZ‚©

292:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/14 13:49:55
#include <string>
using namespace std;
class Palindrome{
private:
char *inputValue;
public:
Palindrome();
void setInputValue(char*);
bool isPalindrome();
~Palindrome();
};
Palindrome::Palindrome(){
this->inputValue = new char[100];
}
void Palindrome::setInputValue(char *str){
strcpy(this->inputValue,str);
}
Palindrome::~Palindrome(){
delete [] this->inputValue;
}

293:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/14 13:50:32
‚‚«
bool Palindrome::isPalindrome(){
char *aux = new char[100];
int k=0;
for(size_t i=0;i<strlen(this->inputValue);i++){
if((this->inputValue[i] >= 'A' && this->inputValue[i] <= 'Z') || (this->inputValue[i] >= 'a' && this->inputValue[i] <= 'z')){
aux[k] = tolower(this->inputValue[i]);
k++;
}}
aux[k] = '\0';
for(size_t i=0;i<strlen(aux)/2;i++){
if(aux[i] != aux[strlen(aux) - 1 - i]){
delete [] aux;
return false;
}}
delete [] aux;
return true;
}

294:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/14 13:52:03
‚‚«
#include "Palindrome.cpp"
#include <iostream>
using namespace std;
int main(){
Palindrome p;
char string[100];
while(true){
cout<<"•¶Žš‚ð“ü—Í‚µ‚Ä‚­‚¾‚³‚¢: ";
cin.getline(string,100);
if(strcmp(string,"") == 0){
break;
}
p.setInputValue(string);
cout<<"‚»‚Ì•¶Žš‚Í "<<(p.isPalindrome() == true ? "‚̓pƒŠƒ“ƒhƒ[ƒ€‚Å‚· " : "ˆá‚¢‚Ü‚· ")<<endl;
}
return 0;
}

295:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/14 13:54:09
windoesã‚Å‚±‚̂ӂ½‚‚̃vƒƒOƒ‰ƒ€‚Í“®‚­‚ñ‚Å‚·‚ªAubuntuã‚Å‚Í
ƒRƒ“ƒpƒCƒ‹‚Å‚«‚Ü‚¹‚ñB

‚¾‚ê‚©A’¼‚µ‚Ä‚à‚炦‚Ü‚·‚©H

296:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/14 13:57:24
ƒGƒ‰[ƒƒbƒZ[ƒW‚­‚ç‚¢Ú‚¹‚ë

297:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/14 14:09:02
ƒRƒ“ƒpƒCƒ‹‚Å‚«‚½‚µAŽÀs‚à‚Å‚«‚Ă邿‚¤‚¾‚ªc
(Ubuntu 7.10 / g++ 4.1)

‚Ü‚³‚©gcc‚ŃRƒ“ƒpƒCƒ‹‚µ‚悤‚Ƃ͂µ‚ĂȂ¢‚¾‚낤‚È

298:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/14 14:16:52
‚·‚݂܂¹‚ñgcc‚ŃRƒ“ƒpƒCƒ‹‚µ‚Ü‚µ‚½B
‚Ç‚¤‚â‚Á‚Ä‚±‚ñ‚Ï‚¢‚é‚·‚é‚ñ‚Å‚·‚©H
‹³‚¦‚Ä‚­‚¾‚³‚¢B

299:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/14 15:07:13
ã‚É‘‚¢‚Ä‚ ‚邿‚¤‚É g++ ‚Å‚àƒ_ƒ‚È‚ÌH

300:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/14 15:07:54
>>298@‚»‚ñ‚È‚±‚Æ‚æ‚èA‚³‚Á‚³‚ƃGƒ‰[ƒƒbƒZ[ƒW“\‚ê‚æB

301:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/14 15:18:14
>>299
g++ ‚ŃRƒ“ƒpƒCƒ‹‚Å‚«‚Ü‚µ‚½B
‚Ç‚¤‚à‚·‚݂܂¹‚ñ‚Å‚µ‚½B
‚‡{{‚Æ‚¢‚¤‚Ì‚ð’m‚è‚Ü‚¹‚ñ‚Å‚µ‚½B

302:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/14 16:12:07
>>297
Ž¿–â‚Å‚·B
ƒRƒ“ƒpƒCƒ‹‚Ío—ˆ‚½‚ñ‚Å‚·‚ªAŽÀs‚ªo—ˆ‚Ü‚¹‚ñB
g++ aMain.cpp -o aMain
‚ł͉½‚à‹N‚±‚ç‚È‚¢‚ñ‚Å‚·‚ª‚Ç‚¤‚â‚Á‚ÄŽÀs‚µ‚½‚ñ‚Å‚·‚©H

303:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/14 16:14:59
gcc‚̓Rƒ“ƒpƒCƒ‰ƒRƒŒƒNƒVƒ‡ƒ“‚¾‚©‚çC++“Á‰»‚̃‰ƒCƒuƒ‰ƒŠ‚ð’T‚µ‚Ä‚­‚ê‚È‚¢B
g++‚ÍC++ƒRƒ“ƒpƒCƒ‰‚¾‚©‚çC++“Á‰»‚̃‰ƒCƒuƒ‰ƒŠ‚à’T‚µ‚Ä‚­‚ê‚éB

304:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/14 16:16:51
–¾Ž¦‚µ‚È‚©‚Á‚½ê‡AŽÀsƒ‚ƒWƒ…[ƒ‹‚̓JƒŒƒ“ƒgƒfƒBƒŒƒNƒgƒŠ‚Éa.out‚Æ‚¢‚¤–¼‚łł«‚éB
ŽÀs‚·‚é‚É‚ÍA./a.out‚Å‚¢‚¢B

‚Â[‚©A‚»‚Ì’ö“x‚ÌŠî‘b’mޝ‚à‚È‚µ‚ɃRƒ“ƒpƒCƒ‹‚È‚ñ‚Ä‚·‚é‚È‚æw

305:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/14 16:18:11
>>302
‰½‚µ‚½‚¢‚ÌH‚»‚ê‚Å aMain ‚Æ‚¢‚¤ƒtƒ@ƒCƒ‹‚ª‚Å‚«‚Ä‚é‚ÌH
‚Å‚«‚Ä‚¢‚¦‚ê‚ÎA ./aMain ‚Æ‚·‚ê‚Α–‚é‚Í‚¸‚¾‚¯‚ÇB

306:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/14 16:26:34
‚±‚ê‚̓Xƒ‹[‚µ‚½‚Ù‚¤‚ª‚¢‚¢‚È

307:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/14 16:40:07
a.out‚ª‚Å‚«‚Ü‚¹‚ñBaMain.o‚¾‚¯‚Å‚«‚Ü‚·B
./aMain‚¾‚Æpermission denied ‚ƂȂÁ‚Ä‚µ‚Ü‚¢‚Ü‚·B

308:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/14 16:45:08
–â‘è‰ðŒˆ‚µ‚Ü‚µ‚½B./aMain‚ł͎Às‚Å‚«‚È‚­‚Ä‚à
g++ aMain.cpp -o aMain && ./aMain
‚ÅŽÀs‚Å‚«‚Ü‚µ‚½B
‚¨‘›‚ª‚¹‚µ‚Ä‚·‚݂܂¹‚ñ‚Å‚µ‚½B

309:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/14 17:40:55
‚È‚ñ‚¶‚á‚»‚è‚áB
‚½‚¾‚̃^ƒCƒvƒ~ƒX‚È‹C‚ª‚·‚é

310:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/14 18:06:04
>>308
‚»‚ñ‚Ȃɂ ‚¹‚炸‚ÉAUnix Œn‚Ì CUI Žg‚¢‚©‚½‚Ì–{”–‚¢‚Ì‚Å
—Ç‚¢‚©‚çˆêû“Ç‚Þ‚Æ‘å•ªŽžŠÔ‚Ìß–ñ‚É‚È‚é‚ÆŽv‚¤‚æ‚§B

311:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/14 20:33:43
Šî–{“I‚ȃ|ƒCƒ“ƒ^‚ÌŽ¿–â‚Å\‚µ–ó‚È‚¢‚ñ‚Å‚·‚ªB
malloc‚ȂǂŊm•Û‚³‚ê‚ĂȂ¢—̈æ‚ð’m‚é•û–@‚Í‚ ‚è‚Ü‚¹‚ñ‚©H

char *str;
str=(char *)malloc(sizeof(char)*2);

for(int i=0; i<5; i++){
if( (str+i) == NULL)
//–¢Šm•Û
}
‚Ý‚½‚¢‚ÈŒ`‚ł킩‚ê‚΂¢‚¢‚ñ‚Å‚·‚ªA•K‚¸‚µ‚àNULL‚ª“ü‚Á‚Ă邯‚ÍŒÀ‚ç‚È‚¢‚Ì‚ÅcB

‚æ‚낵‚­‚¨Šè‚¢‚µ‚Ü‚·B

312:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/14 20:40:37
Šm•Û‚µ‚½ƒTƒCƒY‚ðŠo‚¦‚Ä‚¨‚­B

313:311
07/11/14 20:41:58
>>312
‚È‚é‚Ù‚ÇEEEB
‚â‚Á‚Ï‚èA‚»‚¤‚¢‚¤•û–@‚µ‚©‚È‚¢‚ñ‚Å‚·‚©EEE
‚¹‚ß‚Ätry catch‚ª‚ ‚ê‚ÎA‹­ˆø‚Éo—ˆ‚»‚¤‚È‚ñ‚Å‚·‚¯‚Ç‚ËB

‚Ç‚¤‚à‚ ‚肪‚Æ‚¤‚²‚´‚¢‚Ü‚µ‚½B


314:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/14 20:46:31
‚Ä‚¢‚¤‚©‚»‚̃\[ƒX“Ë‚Áž‚݂ǂ±‚ë–žÚ‚¾‚©‚ç•׋­Šæ’£‚낤‚ÈB

315:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/14 20:47:44
Ž©•ª‚ªŠm•Û‚µ‚½ƒƒ‚ƒŠ‚̃AƒhƒŒƒX‚ƃTƒCƒY‚ðŽ‚Â\‘¢‘̂łà’è‹`‚·‚ê‚ÎH

316:311
07/11/14 21:14:02
>>314
‹ï‘Ì“I‚ɂǂ̂ ‚½‚è‚Å‚µ‚傤‚©H
‚æ‚낵‚­‚¨Šè‚¢‚µ‚Ü‚·B

>>315
‚È‚é‚Ù‚ÇB
‚»‚Ì•û–@‚àŒŸ“¢‚µ‚Ă݂܂·B

317:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/14 21:18:32
DLL‚ÅŠm•Û‚³‚ꂽƒƒ‚ƒŠ‚Í‚»‚ÌDLL‚ʼnð•ú‚µ‚È‚¢‚Æ‚¢‚¯‚È‚¢‚Æ•·‚«‚Ü‚µ‚½B

‚»‚±‚Å‚¨•·‚«‚µ‚½‚¢‚̂ł·‚ªA—Ⴆ‚Έȉº‚̂悤‚Èê‡
@EƒAƒvƒŠƒP[ƒVƒ‡ƒ“A‚ªDLL_B‚ÆDLL_C‚ðŽQÆ
@EDLL_BŽ©g‚àDLL_C‚ðŽQÆ
DLL_B‚ªDLL_C‚ÅŠm•Û‚µ‚½ƒƒ‚ƒŠ‚ð
ƒAƒvƒŠƒP[ƒVƒ‡ƒ“A‚©‚烊ƒ“ƒN‚³‚ꂽDLL_C‚ʼnð•ú‚·‚é‚̂͑åä•v‚Ȃ̂łµ‚傤‚©H
‚æ‚낵‚­‚¨Šè‚¢‚µ‚Ü‚·B

318:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/14 21:33:27
>>317
OK‚¾‚¯‚ÇALocalAlloc‚É‚·‚ê‚΂»‚ñ‚È‚±‚Æ‹C‚É‚µ‚È‚­‚Ä‚à‚¢‚¢‚ñ‚¶‚á‚ËH

319:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/14 21:42:20
‚¢‚âAWin32‚È‚çLocalŒn‚æ‚èHeapŒn‚¾‚ë

320:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/14 21:55:12
>>316
>if ( ( str + i ) == NULL )
‚±‚Ìs‚ÅAi‚É2ˆÈã‚Ì’l‚ª“ü‚Á‚½Žž“_‚ŃAƒEƒgB
Šm•Û‚³‚ê‚Ä‚¢‚È‚¢—̈æ‚ðŽQÆ‚·‚邱‚ƂɂȂéB
NULL‚Ƃ̔äŠr‚à–³ˆÓ–¡B
‰Šú‰»‚³‚ê‚Ä‚¢‚È‚¢—̈æ‚̓Sƒ~‚ª“ü‚Á‚Ä‚¢‚é‚Ì‚ÅNULL‚©‚Ç‚¤‚©‚È‚ñ‚Ă킩‚ç‚È‚¢B



321:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/14 22:06:29
‚»‚à‚»‚àŽQƂł«‚ĂȂ¢A‚»‚êB

322:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/14 22:07:09
>>318
LocalAlloc, HeapAlloc, GlobalAlloc
‚Á‚Ä–¼‘O‚ªˆá‚¤‚¾‚¯‚ł͖³‚¢‚ñ‚Å‚·‚ËB
’m‚è‚Ü‚¹‚ñ‚Å‚µ‚½B

>>319
HeapŒn‚͂悯‚¢‚ȃIƒuƒWƒFƒNƒg‚ª•K—v‚ɂȂé‚̂ł ‚Ü‚èŽg‚¢‚½‚­‚È‚¢‚Å‚·EEE
‚»‚±‚ªŠÌ‚Æ‚¢‚¤‹C‚à‚µ‚Ü‚·‚ª

323:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/14 22:09:06
>>320
‚»‚ꂪo—ˆ‚È‚¢‚©‚玿–â‚«‚½‚ñ‚¾‚ë
o—ˆ‚é‚È‚çAŠù‚É‰ðŒˆ‚µ‚Ă邶‚á‚ñ‚—

‚»‚à‚»‚à
„‚±‚Ìs‚ÅAi‚É2ˆÈã‚Ì’l‚ª“ü‚Á‚½Žž“_‚ŃAƒEƒgB
‚±‚ê‚𔻒肵‚½‚¢‚Á‚ÄŒ¾‚¤Ž¿–â‚Ȃ̂ÉA‚»‚̃ŒƒX‚̓iƒ“ƒZƒ“ƒX‰ß‚¬‚é

324:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/14 23:06:43
>>320
„‚±‚Ìs‚ÅAi‚É2ˆÈã‚Ì’l‚ª“ü‚Á‚½Žž“_‚ŃAƒEƒgB
’P‚È‚éƒ|ƒCƒ“ƒ^‚É”Žš‚ð‘«‚µ‚½’l‚ðŒ©‚½‚¾‚¯‚ʼn½‚ŃAƒEƒg‚È‚ñ‚¾H
*‚‚¯‚ÄŽQÆ‚µ‚Ä‚é‚È‚ç‚Æ‚à‚©‚­EEE


325:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/14 23:14:37
>>322
ƒq[ƒvƒnƒ“ƒhƒ‹‚Íí‚ÉGetProcessHeap()‚Å“¾‚½‚à‚Ì‚ðŽg‚¤‚±‚Ƃɂ·‚ê‚ÎA
Local/Global‚Æ”ä‚×AV‚½‚È–Ê“|‚³‚ª¶‚Ü‚ê‚邱‚Ƃ͂Ȃ¢‚ÆŽv‚¤‚¼B

326:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/14 23:39:43
‚»‚à‚»‚àLocal‚ÆGlobal‚Á‚Ä‚©‚È‚è‘O‚ÉMS‚ªŽg‚¤‚Ì‚â‚߂ĂÁ‚Ä‚¢‚Á‚ĂȂ©‚Á‚½H

327:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/15 01:27:02
‚à‚¤CoTaskMemAlloc‚Å‚¢‚¢‚æ

328:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/15 01:59:11
>>324
”z—ñ—v‘f”‚ð’´‚¦‚½‚Æ‚±‚ë‚ðŽw‚·‚悤‚Ƀ|ƒCƒ“ƒ^‚É‘«‚µŽZ‚·‚邯–¢’è‹`“®ì‚ɂȂéB

C99 6.5.6 p8 ‚æ‚èi C++ ‚Å‚Í 5.7 p5 ‚É“¯‚¶•¶–Ê‚ª‚ ‚éj
> If both the pointer operand and the result point to elements of the same array object, or one past the last element
> of the array object, the evaluation shall not produce an overflow; otherwise, the behavior is undefined.

‚±‚Ìꇂ¾‚Æ—v‘f” 2 ‚Ì char ”z—ñ‚Ƃ݂Ȃ¹‚é‚©‚çA 2 ‚܂ł͑åä•v‚Å 3 ˆÈã‚ŃAƒEƒg‚ËB

329:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/15 02:05:54
ƒ|ƒCƒ“ƒ^‚Í*‚‚¯‚ÄŽQÆ‚µ‚È‚¯‚ê‚ÎA’P‚È‚é”Žš‚¾‚æB
‚µ‚©‚àAƒ|ƒCƒ“ƒ^•Ï”‚É‘ã“ü‚µ‚½‚킯‚Å‚à‚È‚­A’P‚É+3‚ð‚â‚Á‚Äif‚Å”äŠr‚µ‚½‚¾‚¯‚Å‚µ‚åH

‚»‚Ì•¶–Ê‚Í
*(str+i)‚̂悤‚ÉŽQÆ‚µ‚½ê‡‚âAstr+=i‚̂悤‚ɉÁŽZ‚ðs‚Á‚½ê‡‚Å‚ ‚Á‚Ä
str+i‚Å‚ÍA‰½‚̈Ӗ¡‚à‚È‚¢‚©‚ÆB

ŽŽ‚µ‚Ă݂ê‚Εª‚©‚邯Žv‚¤‚¯‚Ç
char *str;
‚É
if( (str+5000)!=NULL)
‚Á‚Ä‚â‚낤‚Æ
if( (str+50000000)!=NULL)
‚Á‚Ä‚â‚낤‚ÆAƒGƒ‰[‚Ío‚é‚Í‚¸–³‚¢‚æB

330:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/15 02:23:13
>>329
> *(str+i)‚̂悤‚ÉŽQÆ‚µ‚½ê‡‚âAstr+=i‚̂悤‚ɉÁŽZ‚ðs‚Á‚½ê‡‚Å‚ ‚Á‚Ä

‚»‚ñ‚È‚±‚Ƃǂ±‚É‚à‘‚¢‚ĂȂ¢B p + n ‚Æ‚¢‚¤Ž®Ž©‘̂ɂ‚¢‚Äq‚ׂ½•”•ª‚¾‚æB
* ‚ÅŽQÆ‚µ‚½‚è = ‚Å‘ã“ü‚µ‚½‚è‚·‚é‘O‚̘bB

331:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/15 02:43:49
‚È‚ñ‚Åuˆê‚ÂŒã‚ëv‚Ý‚½‚¢‚È•\Œ»‚·‚é‚ñ‚¾‚낤
ˆêuAu‚¶‚á‚ ‚Ó‚½‚ÂŒã‚ë‚Ȃ炢‚¢‚Ì‚©‚æv‚Æ‚©Žv‚Á‚Ä‚µ‚Ü‚Á‚½‚æ

332:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/15 10:42:18
>>330
Žd—l‚̓ǂݕû‚í‚©‚Á‚ĂȂ¢‚¾‚ëB
ƒvƒƒOƒ‰ƒ€‚̕׋­‚©‚ç‚Í‚¶‚ß‚½‚Ù‚¤‚ª‚¢‚¢‚ËB

333:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/15 10:57:22
>>332
‚Ç‚±‚ð‚Ç‚¤“Ç‚ñ‚¾‚ç >329 ‚Ý‚½‚¢‚ȉðŽß‚ɂȂé‚Ì‚©‹³‚¦‚Ä‚­‚¾‚³‚¢B

334:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/15 11:24:57
>>328

‰ÁŒ¸‰‰ŽZŽq

ƒ|ƒCƒ“ƒ^ƒIƒyƒ‰ƒ“ƒh‹y‚Ñ‚»‚ÌŒ‹‰Ê‚Ì—¼•û‚ª“¯‚¶”z—ñƒIƒuƒWƒFƒNƒg‚Ì—v‘fA–”‚Í
”z—ñƒIƒuƒWƒFƒNƒg‚ÌÅŒã‚Ì—v‘f‚ðˆê‚‰z‚¦‚½‚Æ‚±‚ë‚ðŽw‚µ‚Ä‚¢‚éê‡A‰‰ŽZ‚É
‚æ‚Á‚ÄAƒI[ƒo[ƒtƒ[‚ð¶‚¶‚Ă͂Ȃç‚È‚¢B‚»‚êˆÈŠO‚Ìê‡A“®ì‚Í–¢’è‹`
‚Æ‚·‚éB

‚ ‚­‚܂Ŗ¢’è‹`‚Æ‚¢‚Á‚Ä‚¢‚é‚Ì‚¾‚©‚çA‹KŠiã‚͉½‚Å‚à‚ ‚蓾‚éA‚‚܂è
ŽÀ‘•ˆË‘¶‚Æ‚¢‚¤‚±‚ƂɂȂé‚ËB>>329‚ÌŒ¾‚Á‚Ä‚¢‚éAƒGƒ‰[‚ªo‚È‚¢
‚Æ‚©ŽQÆ‚µ‚È‚¯‚ê‚Î’P‚Ȃ锎š‚É‚È‚é‚Æ‚¢‚¤‚±‚Æ‚ÍA‘½‚­‚ÌŽÀ‘•‚ª‚»‚¤
‚È‚Á‚Ä‚¢‚邾‚¯‚Å‚ ‚Á‚ÄAstr+5000‚̉ÁŽZ‰‰ŽZ‚ʼn¼‚ɃNƒ‰ƒbƒVƒ…‚·‚éŽÀ‘•‚ª
‚ ‚Á‚Ä‚àA‚»‚ê‚Í‹KŠi‚É‚Í]‚Á‚Ä‚¢‚邱‚ƂɂȂéBŒ‹‹ÇA‚±‚Ìê‡A
“®ì‚Í–¢’è‹`‚¾‚©‚çŽÀ‘•‚Ü‚©‚¹B

‚Ȃ̂ÅAŒµ–§‚É‚Í>>328‚̈ӌ©‚ª³‚µ‚¢‚ÆŽv‚í‚ê‚éB

335:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/15 13:04:40
ŽÀÛAƒ^ƒCƒg‚ȃƒ‚ƒŠ‹óŠÔƒ‚ƒfƒ‹‚ðŽ‚Á‚Ä‚¢‚éŽÀ‘•‚Å‚ÍAŠ„‚Æ—eˆÕ‚É‹N‚±‚蓾‚éB
—Ⴆ‚Îint array[2]‚ɑ΂µ‚Äarray‚ª0xfff0‚ɃAƒTƒCƒ“‚³‚ê‚Ä‚¢‚é‚©‚à‚µ‚ê‚È‚¢B
ƒ|ƒCƒ“ƒ^‚àint‚à16bit‚È‚çAarray + 4‚ª0‚ɂȂÁ‚Ä‚µ‚Ü‚¢ANULL‚Æ‹æ•ʂł«‚È‚­‚È‚Á‚Ä‚µ‚Ü‚¤B
# —¬Î‚É‘¦ƒNƒ‰ƒbƒVƒ…‚Í‚µ‚È‚¢‚¾‚낤‚¯‚Ç‚ËB

336:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/15 14:02:36
‹«ŠE‚Ì–â‘è‚̓|ƒCƒ“ƒ^“Á—L‚̘b‚¶‚á‚ ‚è‚Ü‚¹‚ñ‚Ë

337:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/15 17:44:01
‚»‚ꂪ‚Ç‚¤‚©‚µ‚Ü‚µ‚½‚©?

338:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/15 17:57:27
‚‚܂茩“–ˆá‚¢

339:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/15 18:16:43
‚Ç‚±‚ª?
‚»‚à‚»‚à’N‚©A‹«ŠE‚̘b‚È‚ñ‚Ä‚µ‚Ä‚¢‚é‚ñ‚Å‚·‚©?

340:ƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñ
07/11/15 18:31:33
>>336‚ªêˆá‚¢‚ÈŒ‚ɂ‚¢‚Ä

341:wolf Ÿ8VH3XAqjlU
07/11/15 22:09:24
>>311
*** For your reference ***

Windows. _heapwalk (CRT)
URLØÝ¸(msdn2.microsoft.com)(VS.80).aspx

Linux 2.4x
src\drivers\char\drm\sis_ds.c "void mmDumpMemInfo( memHeap_t *mmInit )"


ÅVƒŒƒX•\ަ
ƒXƒŒƒbƒh‚ÌŒŸõ
—ÞŽ—ƒXƒŒˆê——
˜b‘è‚̃jƒ…[ƒX
‚¨‚Ü‚©‚¹ƒŠƒXƒg
¥ƒIƒvƒVƒ‡ƒ“‚ð•\ަ
‰É‚‚Ԃµ2ch

4987“ú‘O‚ÉXV/97 KB
’S“–:undef