ソスソスVisual C++ Q & Aソスfソスソスソスソス
|
ソスEC/C++
ソスEDelphi
ソスEVisual BasicソスソスソスSソスソス
ソス@(VB2-VB6ソスソス.NETソスソスソスp)
ソスEVisual Basic(VB2-VB6)
ソスEVisual Basic .NET
ソスEVisual C++
typeofソス@structdata{
HWNDhWnd;
UINTmessage;
WPARAMwParam;
LPARAMlParam;
}DATA;
ソスフゑソスソスニに・ソスEソスE
ソスヌゑソスソスソスソスソス痰「ソスソスソスソスソスかソスソスワゑソスソスソスBソス¥ソスソスソスフにつゑソスソストゑソスCソスフ絵ソス{ソスナ勉具ソスソスソスソスソスソスソスソスxソスナゑソスソスB
ソスナゑソスソスソスホ具ソスフ暦ソスソスソスソスソスソスソスCreatThreadソスノダソスCソスAソスソスソスOソスソスHWND,UINT,WPARAM,LPARAMソスフ渡ソスソスソスソスソスソスソスソスソスソストゑソスソスソスソスソスソスソスソスニ幸ソスソスソスナゑソスソスB
ソスネゑソスソスソスソスフようソスネゑソスソスニゑソスソスソストゑソスソスソスフゑソスソスニゑソスソスソスソスソス
ソス`ソスソスソスbソスgソスvソスソスソスOソスソスソスソスソスソスソスソスソストゑソスソスト切断ソス{ソス^ソスソスソスiIDC_BUTTON3ソスニゑソスソスワゑソスソスjソスソス
ソスソスソスソスソスソスソスニゑソスソスノ趣ソスMソスソスpソスXソスソスソスbソスhソスナ終ソスソスソスソスソスソスソスソスソスソスソスナゑソスソスB
ソスソスしソスソスソスソスソス閧「ソスソスソスワゑソスソスBCreatThreadソスノ包ソスソスソスソスフ茨ソスソスソスソスソスnソスソスソスノは構ソスソスソスフゑソスgソスソスソスソスソスニはわかソスソスソストゑソスソスワゑソスソスBCreatThreadソスナ搾ソスソスソストゑソスソスワゑソスソスフゑソスCreateThreadソスノつゑソスソストゑソスしソスソスソスソスソス閧「ソスソスソスワゑソスソスB
ソスソスソスソスソスYソスソストゑソスソスワゑソスソスソスソスソス
SDKソスナ作成ソスソスソストゑソスソスワゑソスソスB
DATAソス^ソスフ変撰ソスソスソスソスツ用ソスモゑソスソスAソスソスソスフ抵ソスソスgソス埋め、ソスソスソスフポソスCソスソスソス^ソスソスソスソスソスソスノ与ソスソスソスソスホゑソスソスソスソスB
DATAdata;
data.hWnd=...
...
CreateThread(...&data...)
ソスXソスソスソスbソスhソスソスソスナゑソス:
DWORDWINAPIservice(LPVOIDarg){
DATA*pdata=(DATA*)arg;
HWNDhWnd=pdata->hWnd;
...
}
ソスソスソスネゑソスソスRソスソスソスpソスCソスソスソスナゑソスソスソスソスフでゑソスソスソスソスiソスGソスソスソス[ソスOソスAソスxソスソスソスOソスj
ソスネゑソスソスソスソスXソスソスソスbソスhソスフ包ソスソスノ撰ソスソスソスソスソスソスソスソスソスソスソスソスnソスソスソスソストゑソスソスネゑソスソスンゑソスソスソスソスナゑソスソスB
ソスモと思ソスソスソスソスソスフでゑソスソスソスソスAソスソスソスソスXソスソスソスbソスhソスソスソスナソスソスCソスソスソスフダソスCソスAソスソスソスOソスソスHWNDソスニゑソスUINTソスニゑソスソスソス謫セソスソスソスネゑソスソスソスホゑソスソスソスソスネゑソスソスナゑソスソスソスヒ?
ソス皷橸ソスLソスqソスソスソスソスソス¥ソス[ソスXソス張ゑソスソストゑソスソスソスソスワゑソスソスB
resource.h
-----------
ソスソスソスいソスソス
BOOLCALLBACKDlgWndProc(HWND,UINT,WPARAM,LPARAM);
DWORDWINAPIfnThread1(LPVOID);
voidprintTextserver(TCHAR*,LPVOID);
voidprintTextclient(TCHAR*,LPVOID);
typedefstructdata{
HWNDhWnd;
UINTmessage;
WPARAMwParam;
LPARAMlParam;
}DATA;
-----------------
main.cpp
--------------------
//ソス_ソスCソスAソスソスソスOソス{ソスbソスNソスXソスフウソスCソスソスソスhソスEソスvソスソスソスVソス[ソスWソスソス
BOOLCALLBACKDlgWndProc(HWNDhWnd,
UINTmessage,
WPARAMwParam,
LPARAMlParam)
{
///ソスネ暦ソス
caseIDC_BUTTON2:
DATAdata;
data.hWnd=hWnd;
data.message=message;
data.wParam=wParam;
data.lParam=lParam;
if(GetWindowTextLength(GetDlgItem(hWnd,IDC_EDIT3))!=0){
hThread1=CreateThread(NULL,0,fnThread1,&data,0,NULL);/*ソスXソスソスソスbソスhソス成*/
//ソスネ暦ソス
-------------------
socket.cpp(ソスXソスソスソスbソスh)
----------------
DWORDWINAPIfnThread1(LPVOIDlpV){
DATA*pdata=(DATA*)lpV;
HWNDhWnd=pdata->hWnd;
WPARAMwParam=pdata->wParam;
//ソスネ暦ソス
if(LOWORD(wParam)==IDC_BUTTON3){
SetWindowText(GetDlgITem(hWnd,IDC_EDIT4);
}
//ソスネ暦ソス
}
ソスソスしソスソスソスソスソス閧「ソスソスソスワゑソスソスB
>ソスモと思ソスソスソスソスソスフでゑソスソスソスソスAソスソスソスソスXソスソスソスbソスhソスソスソスナソスソスCソスソスソスフダソスCソスAソスソスソスOソスソスHWNDソスニゑソスUINTソスニゑソスソスソス謫セソスソスソスネゑソスソスソスホゑソスソスソスソスネゑソスソスナゑソスソスソスヒ?
ソスXソスソスソスbソスhソスノ渡ソスソスソスソスソスフはゑソスソスソスソスワでポソスCソスソスソス^ソスナゑソスソスBソスソスソスフではゑソスソスソスワゑソスソスソスB
ソスソスソスフゑソスソスニゑソスソスソスuソスソスソス轤ゥソスvソスナゑソスソス蛯、ソスB
ソス|ソスCソスソスソス^ソスヘアソスhソスソスソスXソスソスwソスソスソスソスソスソスソスソスフゑソスソスソスソスソスソスニ思ソスソスソスフゑソス
ソスネゑソスルど、ソスソスソスソス謫セソスソスソスネゑソスソストゑソスソスソスソスソスナゑソスソスヒ・ソスE
ソスナはどゑソスソスソスソスソスソス轤「ソスソスソスフでゑソスソス蛯、ソスソスソスEソスE
ソスソスしソスソスソスソスソス閧「ソスソスソスワゑソスソスB
>>ソスモと思ソスソスソスソスソスフでゑソスソスソスソスAソスソスソスソスXソスソスソスbソスhソスソスソスナソスソスCソスソスソスフダソスCソスAソスソスソスOソスソスHWNDソスニゑソスUINTソスニゑソスソスソス謫セソスソスソスネゑソスソスソスホゑソスソスソスソスネゑソスソスナゑソスソスソスヒ?
>
>ソスXソスソスソスbソスhソスノ渡ソスソスソスソスソスフはゑソスソスソスソスワでポソスCソスソスソス^ソスナゑソスソスBソスソスソスフではゑソスソスソスワゑソスソスソスB
>ソスソスソスフゑソスソスニゑソスソスソスuソスソスソス轤ゥソスvソスナゑソスソス蛯、ソスB
ソスソスソスソスソスAソスソスソスソスソスソスソスソスソスモ厄ソスソスソスソスソスネゑソスソスフゑソスソスc
ソス{ソスフゑソスソス理ゑソスソスソスソスソスソスbソスZソス[ソスWソスソスXソスソスソスbソスhソスノ会ソスソスソスソスソスソスソスソス驛ソスJソスjソスYソスソスソスソスソスvソスソスじゑソスネゑソスソスソスソスAソスニ訊ソスソスソストゑソスソスソスフゑソスソスソス?
ソスソスソスbソスZソス[ソスWソスノ対ゑソスソス髀茨ソスソスソスソスXソスソスソスbソスhソスナゑソス閧スソスソスソスフなゑソスAソスソスソスソスYESソスB
ITC(InterThreadCommunication)ソスソスソスソスヒばなゑソスワゑソスソスソスナゑソスソスB
ソスネ単ソスノ済まゑソスソスネゑソスEventソスメゑソスソスソスdソスソスソズ、ソスソスソスソスソステゑソスネゑソスProducer-Consumer-Queueソスソスソスソスソス閧ゥソスネ。
ソスソスソス閧ェソスニゑソスソスソスソスソスソスソスソスワゑソスソスIソスI
>>ソス{ソスフゑソスソス理ゑソスソスソスソスソスソスbソスZソス[ソスWソスソスXソスソスソスbソスhソスノ会ソスソスソスソスソスソスソスソス驛ソスJソスjソスYソスソスソスソスソスvソスソスじゑソスネゑソスソスソスソスAソスニ訊ソスソスソストゑソスソスソスフゑソスソスソス?
ソスワゑソスソスノゑソスソスフとゑソスソスソスナゑソスソスB
ソスIソスmソスネヒソスソスソスgソスフようソスネ奇ソスソスソスソスソスソスソスソスソスフで提示ゑソスソス黷スソスLソス[ソスソスソス[ソスhソスソス
ソスソスソスソスソスソスソストみまゑソスソスB
ITC(InterThreadCommunication)ソスヨ係ソスソスURLソス示ゑソスソストゑソスソスソスソスソスソスソスソスソスホ幸ソスソスソスナゑソスソスB
ソスニりあソスソスソスソスソスフ趣ソスソスソス|ソスソスソスソスノゑソスソスソスソスソスソス轣ォソスヘどゑソスソスソスソスうソスB
http://www.ops.dti.ne.jp/‾allergy/thread/thread.html#event
ソス答ゑソスソス閧ェソスニゑソスソスソスソスソスソスソスソスワゑソスソスB
ソスソスソスpソスソスソスソスニゑソスソスソスソス
ソス`ソスソスソスソス
HANDLE m_hEvent;
m_hEvent=CreateEvent(NULL,TRUE,FALSE,NULL); //ソスソスソスソスソスソスソスZソスbソスgソスCソスxソスソスソスgソス成
ソスソスソスト・ソスEソスH
WaitForSingleObject(m_hEvent,INFINITE);//ソスCソスxソスソスソスgソスメゑソス
ソスソスソスワゑソスソスソスソスソスソスソスxソスソスソス繧ェソスソスワゑソスソスソスBCreateEventソスナ趣ソスソスソスソスソスソスZソスbソスgソスフイソスxソスソスソスgソスソス成ソスソスソス゚ゑソスlソスフハソスソスソスhソスソスソスソスト趣ソスソスソスソスソスニ鯉ソスソスソスソスソスソスソスソスソスソスナゑソスソス蛯、ソスソスソスH
ソス_ソスCソスAソスソスソスOソスソスソスソスソスbソスZソス[ソスWソスソスけゑソスソスソス
1.ソスXソスソスソスbソスhソスノ与ソスソスソスソスラゑソスソスfソス[ソス^ソス整ゑソス
2.Eventソス発行ソスソスソスソスB
ソスXソスソスソスbソスhソスソス:
1.WaitForSingleObjectソスソスEventソスソスソスソスソスソスソスソスソスソスフゑソスメつ。
2.Eventソスソスソスソスソスソスソスソスソスソスソスソス(1)ソスソスソス逕イソスソスソスソスフで、
ソス@ソス@ソス_ソスCソスAソスソスソスOソスソスソスン定しソストゑソスソス黷スソスfソス[ソス^ソスソスヌみ、ソスソスソスソスソスソスソスソス
3.(1)ソスノ戻ゑソス
ソスソスソスホやいソスソスソスXソスソスソス閧ェソスニゑソスソスソスソスソスソスソスソスワゑソスソスB
ソスソスマ具ソスソスkソスナゑソスソスB
ソスソスソスCソスソスソスナの擾ソスソスソス
typeofソス@structdata{
HWNDhWnd;
UINTmessage;
WPARAMwParam;
LPARAMlParam;
}DATA;
DATAdata=CreateEvent(NULL,TRUE,FALSE,NULL);
ソスソスLソスナ個人ソスIソスノ1ソスCソスQソスソスソスソスソスソスソスツゑソスソスナゑソスソスB
ソスXソスソスソスbソスhソスソス
WaitForSingleObject(data,INFINITE);//ソスCソスxソスソスソスgソスメゑソス
ソスソスLソスフスソスソスソスbソスhソスソスソスフ1ソスソスソス逕イソスソスソスソス
ソス_ソスCソスAソスソスソスOソスソスソスソスン定しソスソスソスソスソスソスソスソスヌみ搾ソスソスソス
HWNDhWnd=data->hWnd;
WPARAMwParam=data->wParam;
ソスRソスフ1ソスノ戻ゑソスヘどゑソスソスソスソスソスソス轤「ソスソスソスフでゑソスソス蛯、ソスソスソスHソスソスソスフ場合ソスKソスvソスネのでゑソスソス蛯、ソスソスソスHSetEventソスヘどゑソスソスソスソスソスソスソスソスソスソスソスソスソスソスソストゑソスソスソスフでゑソスソス蛯、ソスソスソスH
ソスソスソスソスホゑソスソスソスソスソスナ托ソスマ具ソスソスkソスナゑソスソスB
ソスソスソスソスソスソスソスXソスソスソスソスソスソスソスソスソスソスト托ソスマゑソスソス黷オソスソスソスソスソスソスソスナゑソスソスB
ソスソスソスンまゑソスソスが、ソスソスソスソスソスソスdソスソスソスノ出ソスホゑソスソスネゑソスソスソスホなゑソスネゑソスソスフでソスソスXソスヘ厄ソスソスソスソスノなゑソスソストゑソスソスワゑソスソスワゑソスソスBソスソスソスソスソスソスけソスソスソスソスソスソスソスワゑソスソスソスB
ソスソスソス閧ェソスニゑソスソスソスソスソスソスソスソスワゑソスソスB
/*
*event.cpp:ソスワほろさソスソスフ茨ソスソス
*/
#include
#include
#include
structcommand{
std:stringwhat;
};
DWORDWINAPImaid(LPVOIDlpV){
command*cmd=reinterpret_cast
std::cout<<"ソスソスpソスフ折には会ソスソスソスソスネゑソスソスソスソス¥ソスソスソスtソスソスソスソスソスソスソスソスソスソスソスワゑソス¥n";
HANDLEcall=OpenEvent(SYNCHRONIZE,TRUE,"call");
boolshouldwait=true;
while(shouldwait){
DWORDresult=WaitForSingleObject(call,5000);
switch(result){
caseWAIT_OBJECT_0:
if(cmd->what=="bye")return0;
std::cout<<"ソスDソスソスソスソスA"<
break;
caseWAIT_TIMEOUT:
std::cout<<"ソスqソス}ソスソスソスソスcソスソスソスソスソスQソスソスソスワゑソスソスソスB¥n";
break;
default:
shouldwait=false;
}
}
return0;
}
intmain(){
commandcmd;
HANDLEcall=CreateEvent(NULL,FALSE,FALSE,"call");
HANDLEthread=CreateThread(NULL,0,maid,&cmd,0,NULL);
while(true){
std::cin>>cmd.what;
SetEvent(call);//ソスワほろさソスソスソストゑソス
if(cmd.what=="bye")break;
}
CloseHandle(bell);
}
>DATAdata=CreateEvent(NULL,TRUE,FALSE,NULL);
ソスネんだゑソスソスソスソス?
>ソスRソスフ1ソスノ戻ゑソスヘどゑソスソスソスソスソスソス轤「ソスソスソスフでゑソスソス蛯、ソスソスソスH
ソスソスソスソスソスソスソス[ソスv
>ソスソスソスフ場合ソスKソスvソスネのでゑソスソス蛯、ソスソスソスH
ソスmソスソスソスBソスソスソスネゑソスソスソスソスソスソスソスソスソスソスソスソスソスソスソスノゑソスソスB
>SetEventソスヘどゑソスソスソスソスソスソスソスソスソスソスソスソスソスソスソストゑソスソスソスフでゑソスソス蛯、ソスソスソスH
WaitForXXXXObjectソスノゑソスソスuソスソスソスbソスN(ソスソス‾ソスソスソス)ソスソスソスソスソスB
#ソスuソスワほろさソスソスフ茨ソスソスソスvソスソスQソスニ。
ソスソスソス゚ゑソスAソスDソスソスソスソスノ修ソスソスソス‾ソスX
ソス‾CloseHandle(bell);
ソスソスCloseHandle(call);
>ソス`ソスソスソスbソスgソスvソスソスソスOソスソスソスソスソスソスソスソスソストゑソスソスト切断ソス{ソス^ソスソスソスiIDC_BUTTON3ソスニゑソスソスワゑソスソスjソスソス
>ソスソスソスソスソスソスソスニゑソスソスノ趣ソスMソスソスpソスXソスソスソスbソスhソスナ終ソスソスソスソスソスソスソスソスソスソスソスナゑソスソスB
ソスソスソスソスソスヌむ鯉ソスソスソスADATAソス¥ソスソスソスフゑソスXソスソスソスbソスhソスノ擾ソスノ渡ソスソスソスモ厄ソスソスソスソスネゑソスソス謔、ソスネ気ソスソスソスB
ソスソスソスソスソスソスソスソスト、ソスXソスソスソスbソスhソスソスソスナダソスCソスAソスソスソスOソスソスソスフ全ソストのソスソスbソスZソス[ソスWソスソスソスソス謔、ソスソス
ソスlソスソスソストゑソスソスソスソス閧オソスワゑソスソスか。ソスナゑソスソスソスホ、ソスソスソス{ソスIソスノ止ソス゚ゑソスソスソスソスソスソス謔「ソスニ思ソスソスソスワゑソスソスB
ソスソスソスソスソスワでダソスCソスAソスソスソスOソスフソスソスbソスZソス[ソスWソスヘダソスCソスAソスソスソスOソスソスソスナ確ソスFソスソスソスA
ソス{ソス^ソスソスソスソスソスソスソスソスソス黷スソス鼾ソスノゑソスソスフ抵ソスソスソスソスソスXソスソスソスbソスhソスノ通知ソス送ゑソスソストゑソスソスソスソスソスB
ソスソスソス黷セソスソスソスネゑソスホ、ソスソスソスソスソスソスソスXソスソスソスbソスhソスフ起ソスソスソスソスソスソスソスノデソス[ソス^ソスソスnソスソスソスKソスvソスソスソスソス
ソスソスソスソスソスソスソスニ思ソスソスソスワゑソスソスB
ソスソスソスフ場合ソスAソスソスMソスソスpソスXソスソスソスbソスhソスナは「ソスリ断ソスpソスCソスxソスソスソスgソスvソスフ通知ソスソスソス轤、ソスソスソスソスソスソス
ソスリ断ソスソスvソスソスソスソスソスソストゑソスソス驍アソスニゑソスソスかソスソスワゑソスソスソスソスソスA
WaitForMultipleObjectsソスソスWSAWaitForMultipleObjectsソスナ、
ソス{ソスソスソスフ趣ソスMソスニ、ソスリ断ソスpソスCソスxソスソスソスgソスフ暦ソスソスソスソスノ対ゑソスソスト待機ソスソスソストゑソスソスソスソスA
ソスメ機ソスソスソスソスソスフ趣ソスソス_ソスナ、ソスIソスソスソスvソスソスソスナゑソスソスソスホ終ソスソスソスソスソスソスソスソスAソスソスMソスナゑソスソスソスホ趣ソスMソスソスソスソスソスソスA
ソスネど個別に擾ソスソスソスソスソスソスソスホよいソス謔、ソスノ思ソスソスソスワゑソスソスB
>ソスRソスフ1ソスノ戻ゑソスヘどゑソスソスソスソスソスソス轤「ソスソスソスフでゑソスソス蛯、ソスソスソスHソスソスソスフ場合ソスKソスvソスネのでゑソスソス蛯、ソスソスソスH
>SetEventソスヘどゑソスソスソスソスソスソスソスソスソスソスソスソスソスソスソストゑソスソスソスフでゑソスソス蛯、ソスソスソスH
forソスソスwhileソスナ。
ソスソスMソスXソスソスソスbソスhソスニゑソスソスソスソスソスソスOソスソスソスソスzソスソスソスソスソス驍ソス閧ェソスソスソスネ擾ソスソスソスソスナは必ソスvソスネゑソスソスニゑソス
ソスソスソスソスソスニ思ソスソスソスワゑソスソスソスソスAソスKソス{ソスソスソスニ云ソスソスソスソスホ「ソスソスMソスソスpソスXソスソスソスbソスhソスvソスフ責厄ソスソスソスソスソスナは。
>ソスソスソスCソスソスソスナの擾ソスソスソス
>typeofソス@structdata{
--snip--
>}DATA;
>DATAdata=CreateEvent(NULL,TRUE,FALSE,NULL);
CreateEventソスフ戻ゑソスヘイソスxソスソスソスgソスフハソスソスソスhソスソスソスナゑソスソスB
DATAソスノ托ソスソスソスネどでゑソスソスワゑソスソスし、ソスモ厄ソスソスソスソスソスソスソスワゑソスソスソスBMSDNソスソスmソスFソスソスソストゑソスソスソスソスソスソスソスソスB
ソスワゑソスソスADATAソスソスマ撰ソスソスニゑソスソスト確ソスロゑソスソスソス鼾ソスA
ソスXソスソスソスbソスhソスフ難ソスソスYソスソスソスソスソスソスソスソスソスワゑソスDATAソスソスソスソスソスソスロ証でゑソスソスソスXソスRソス[ソスvソスノゑソスソスソスソスKソスvソスソスソスソスソスソスA
ソスXソスソスソスbソスhソスQソスニ抵ソスソスノ趣ソスソスフデソス[ソス^ソスナ上書ソスソスソスソスソスソスソスツ能ソスソスソスソスソスソスソスソスネゑソスrソスソスソスソスソス苴呻ソスソス
ソスKソスvソスニなゑソスワゑソスソスB
#ソスソスソスヘ、ソスソスソスソスソスソスソスソスナ会ソスハ更ソスVソスソスソス黷スソスソスAソスワほろたソスが。
#ソスヘゑソスソスAソスソスソスdソスソスソスネゑソスソスニゑソスソスソスQソストばゑソスソスソスBソスミよこソスソスソスソスム鯉ソスソスソストゑソスソスワゑソスソスB
#ソスTソスソスソスvソスソスソスネので搾ソスソスソスソスナゑソスソスソスソスAソスソスソスソスソスフ閲ソスソスソスメのゑソスソス゚に。
CreateThreadソスナ起ソスソスソスソスソスソスソスXソスソスソスbソスhソスソスソスソスiostreamソストんだゑソス謔ュソスネゑソスソスソスソスニ。
#Win32onlyソスナ擾ソスソスソスソスノゑソスネゑソスソスナゑソスソスソスCreateThreadソスフハソスソスソスhソスソスソスソスソス
CreateThread
--snip--
Cソスフソスソスソスソス^ソスCソスソスソスソスソスCソスuソスソスソスソスソスノ記ソス^ソスソスソスソストゑソスソスソスヨ撰ソスソスソスgソスソスソスXソスソスソスbソスhソスヘ、
CreateThreadソスヨ撰ソスソスソスExitThreadソスヨ撰ソスソスナはなゑソスソスA
Cソスフソスソスソスソス^ソスCソスソスソスヨ撰ソスソスナゑソスソスソスbeginthreadソスヨ撰ソスソスソスendthreadソスヨ撰ソスソスソスgソスソスソスラゑソスソスナゑソスソスB
ソスソスソスフ包ソスソス@ソスノ従ソスソスネゑソスソスニ、ExitThreadソスヨ撰ソスソスソストび出ソスソスソスソスソスニゑソスソスノわずソスソスソスネソスソスソスソスソスソスソスソス[ソスNソスソスソスソスソスソスソスソスソスワゑソスソスB
ソスcソスbソスRソス‾ソスノ奇ソスソスモ。ソスソスソスフ通ゑソスナゑソスソスB
ソスソスソスフままほゑソスソスニゑソスソスソス
ソス@ソスワほろさソスがゑソスソスフ機ソス¥ソスソスソス‾ソスソスソスソスワゑソス
ソス@ソス@ソス@ソス@ソス@ソス@ソス@ソス@ソス@ソス@ソス@ソス@ソスcソスソス390ソスソス
ソスネんちゑソス
ソスソスソスXソスソスソス閧ェソスニゑソスソスソスソスソスソスソスソスワゑソスソスB
ソスソスソス{ソスIソスノ間茨ソスソスソストゑソスソスソスソスンゑソスソスソスソスナ托ソスマ申ソスソスソスソスネゑソスソスナゑソスソスB
ソスソスソスソスナ会ソスソスソスソスソスソスソスソスソスナゑソスソスB
ソスソスソス閧ェソスニゑソスソスソスソスソスソスソスソスワゑソスソスB