トップページ⇒tech
1001コメント311KB

Win32API 質問箱 Build8

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさんNGNG
スレ立てるまでもない、
   Win32 Application *Programmer* Interface
についての質問はこちらへどうぞ。
やさしいお兄さんたちが答えてくれるかも。
でも、質問する前に検索ぐらいしる!!

過去スレ・参考 >>2-5
0232228NGNG
>>229 >>231
ありがとー。

ところで、MultiByteToWideChar や、WideCharToMultiByte をラップした、

 std::wstring mbstr_to_wstr( const std::string& source );
 std::string  wstr_to_mbstr( const std::wstring& source );

↑のようなヘルパ関数をつくろうと思っているんだけど、
CodePage や、フラグの設定を固定したい場合は、どの設定が一番無難ですか?
経験豊かな人、誰かご教授願います。
0233デフォルトの名無しさんNGNG
======2==C==H======================================================

         2ちゃんねるのお勧めな話題と
     ネットでの面白い出来事を配送したいと思ってます。。。

===============================読者数: 138720人 発行日:2003/1/9

年末年始ボケがそろそろ収まり始めた今日このごろのひろゆきです。

そんなわけで、年末に予告したIP記録ですが実験を開始しています。

「2ちゃんねる20030107」
こんな感じで各掲示板の最下部に日付が入ってるんですが、
20030107以降になってるところはログ記録実験中ですー。

んじゃ!

────────────────────────Age2ch─
■この書き込みは、Age2chを使って配信されています。
────────────────────────────
Keep your thread alive !
http://pc3.2ch.net/test/read.cgi/software/1041952901/l50
────────────────────────────
0234231NGNG
>>232
何も考えないならとりあえず
MultiByteToWideChar(CP_ACP, 0, ...)
WideCharToMultiByte(CP_ACP, 0, ...)
でいいんじゃないの?
まずはそれからだ
0235228NGNG
VC++.NET の CRT の実装(mbtowc.c とか) を見てみました。
以下レポート

mbtowc は その内部で、MultiByteToWideChar を呼び出しています。
しかも マルチスレッド対応でした。( _MTスイッチで指定 )

問題の CodePage は、 setlocale で指定するようだけど、
"C"ロケールを設定すると、CP_ACP にセットされるみたい。
VCで作成したアプリはデフォで "C"ロケールに設定されるらしいので(未確認)、
結局 mbtowc は、↓とほぼ同じになると。
::MultiByteToWideChar( CP_ACP, MB_PRECOMPOSED | MB_ERR_INVALID_CHARS ... );

嘘言ってたらゴメンナサイ.

>>231
ありがとう。
でも、とりあえず mbtowc でもいいかなという気になりました。
0236デフォルトの名無しさんNGNG
>>792
はぁ?
0237デフォルトの名無しさんNGNG
おい!おまいら!

ttp://dailynews.yahoo.co.jp/fc/computer/2channel/

のアンケートで5を選びませんか? 目標50%
0238デフォルトの名無しさんNGNG
つまらないね。

トリップだってさ
全然ボツ。
0239デフォルトの名無しさんNGNG
IPとってる板

qb : 2ch批判要望 削除議論 削除要請 削除整理
live2 : ニュース速報
tmp : ニュース極東 ちくり裏事情 政治思想 Download
    厨房! 人権問題 バカニュース 薬・違法
    ゴーマニズム ロビー 最悪 少年犯罪
    違反の潰し方 ペット苦手 なんでもあり 学歴
0240デフォルトの名無しさんNGNG
普通に見れるけど・・・俺が変なのか・・
0241デフォルトの名無しさんNGNG
最高裁への上告は認められなくなったから、これで事実上判決確定だよ。
逆転も何もないって。
勢いで上告なんかしても一発で上告却下(門前払い)だよ。

二審も一審を支持。これに対して上告しようにも、
刑事訴訟と同様、自由に上告できるってもんでもないのです。
民事訴訟法312条 (上告の理由) 1項
「上告は、判決に憲法の解釈の誤りがあること
その他憲法の違反があることを理由とするときに、することができる。」
http://www.m-net.ne.jp/~doba/goto/hon.htm

ようするに上告しても今の制度では100%無駄。
これで完全終了ってことか。
0242デフォルトの名無しさんNGNG
全然関係ない書き込みがあちこちに多発してるみたいだけど、
これって、何が原因なの?
0243デフォルトの名無しさんNGNG
根拠があって正しい情報だとしても
当事者が都合悪ければ誹謗中傷だわな

どうなっとんだ
0244デフォルトの名無しさんNGNG
>>904
>壊れやすいって新聞に投書するなり
まず1に、俺はそういうことを自分が主張したいのではなく
そういう情報を集めたいのだ。もちろん自分が書くこともあるだろうけど。

新聞はリアルタイムで会話ができない。
しかも載るか載らないかもわからない。

掲示板だと数多くの人の体験談やらなにやらがたくさん集まり
使っている人のナマの声が聞ける。それを信じるか信じないかはその人しだい。
しかし、途中で誰の手が加えられたわけでもなく
また、誰かによって省かれた部分がない意見というのは貴重だ。
書き込まれた瞬間に、自由な質問ができるのも魅力だ。

そういうのが無くなってしまう、もしくは減ってしまうというのは悲しい
0245デフォルトの名無しさんNGNG
>>242
祭り気取りなんだろ
IP取るのは管理者の勝手だが
スレ違いのレスを垂れ流されるのは邪魔でかなわん。
0246OFNトースターNGNG
OPENFILENAMEなら俺に聞け
ってほどOPENFILENAMEに詳しい人いませんか?
0247デフォルトの名無しさんNGNG
>>242
すでに批判要望板の荒らし報告にあがってるな

◆スクリプト&コピペ(乱立)荒らし報告スレ27
http://qb.2ch.net/test/read.cgi/accuse/1041678810/
0248デフォルトの名無しさんNGNG
関係ない話してるとスレが死ぬぞ
0249デフォルトの名無しさんNGNG
>>246
何が聞きたいのか、書いてみたら?
0250OFNトースターNGNG
待ってました。
コンパイルして実行してほしいです。
起動時に、名前を付けて保存のダイアログが出ます。
そのままマイドキュメントに保存すると、このプログラムでは
何も保存されないけど、エディットに結果が入ります。
その結果を教えてほしいのです。
0251OFNトースターNGNG
#include <windows.h>

LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);

int WINAPI WinMain(HINSTANCE hInst, HINSTANCE, PSTR, int) {
MSG msg;
WNDCLASSEX c;

c.cbSize = sizeof(WNDCLASSEX);
c.style = c.cbClsExtra = c.cbWndExtra = 0;
c.lpfnWndProc = WndProc;
c.hInstance = hInst;
c.hIcon= LoadIcon(NULL, IDI_APPLICATION);
c.hCursor = LoadCursor(NULL, IDC_ARROW);
c.hbrBackground= (HBRUSH)GetStockObject(WHITE_BRUSH);
c.lpszMenuName = NULL;
c.lpszClassName= "test";
c.hIconSm = NULL;

if (!RegisterClassEx(&c)) return 1;

CreateWindow(
"test", "TEST",WS_OVERLAPPEDWINDOW | WS_VISIBLE, CW_USEDEFAULT, CW_USEDEFAULT, 500, 100, NULL, NULL, hInst, NULL);

while(GetMessage(&msg, NULL, 0, 0)){
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msg.wParam;
}
0252OFNトースターNGNG
LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam) {
OPENFILENAME ofn;
TCHAR strFile[MAX_PATH] = "default";
char buf[MAX_PATH];
static HWND hEdit;
static WORD w = 1234;

switch (msg) {
0253OFNトースターNGNG
case WM_CREATE:
hEdit = CreateWindow(
"EDIT", "", WS_CHILD | WS_VISIBLE | WS_BORDER | ES_AUTOHSCROLL, 0, 0, 490, 22, hWnd, 0, ((LPCREATESTRUCT)(lParam))->hInstance, NULL);

memset(&ofn, 0, sizeof(OPENFILENAME));
ofn.lStructSize = 76;
ofn.hwndOwner = hWnd;
ofn.lpstrFilter = "DOC\0*.doc\0HTML\0*.html\0\0";
ofn.nFilterIndex = 0;
ofn.lpstrFile = strFile;
ofn.nMaxFile = MAX_PATH;
ofn.nFileOffset = w;
ofn.Flags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT;
0254OFNトースターNGNG
GetSaveFileName(&ofn);
wsprintf(buf, "strFile = %s, nFileOffset = %d", strFile, w);
SetWindowText(hEdit, buf);
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
}
return DefWindowProc(hWnd, msg, wParam, lParam);
}

ここまで。
0255OFNトースターNGNG
僕は、ofn.lStructSize = 76; でしか使えません。
ofn.lStructSize = 88; でofnが使える人の結果も知りたいです。
0256デフォルトの名無しさんNGNG
>>255
msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/WinUI/WindowsUserInterface/UserInput/CommonDialogBoxLibrary/CommonDialogBoxReference/CommonDialogBoxStructures/OPENFILENAME.asp
0257デフォルトの名無しさんNGNG
荒らしかと思った…
0258デフォルトの名無しさんNGNG

・・・・・・・それが何か?
0259231NGNG
>>235
ありゃ。確かにCP_ACPみたいだな。嘘ついてスマソ。
VC6以前ではまった気がしたんだが…。
printf("%S", L'あ');
とかできるようになったのかな??
0260256NGNG
>>255
typedef struct tagOFN {
     :
#if (_WIN32_WINNT >= 0x0500)
void * pvReserved;
DWORD dwReserved;
DWORD FlagsEx;
#endif // (_WIN32_WINNT >= 0x0500)
} OPENFILENAME, *LPOPENFILENAME;

なぜ
ofn.lStructSize=sizeof(OPENFILENAME)
としないのか
0261デフォルトの名無しさんNGNG
精神病患者のオナニーサイト
http://www.enjoy.ne.jp/~gokaino1/
0262デフォルトの名無しさんNGNG

ちょっと聞きたいんだけど、
Win32API の構造化例外を、C++ でハンドリングするとき、

try{ ::InitializeCriticalSection( &cs ); } // 構造化例外を投げる可能性のあるAPI関数
catch( ※ ){ ... }

※ の部分には何を書けばいいのか教えてください。
DWORD でいいのかな?
素直に __try 〜 __except( エラータイプ ) で囲むべき?
0263デフォルトの名無しさんNGNG
...
0264デフォルトの名無しさんNGNG
うそだと思われるけど、catch( ... ){ 
0265デフォルトの名無しさんNGNG
_set_se_translator()、なんてな。
0266デフォルトの名無しさんNGNG
そういえば、昔、「あー、複数の例外にいちいちcatchかくの面倒やな〜
よし、とりあえずcatch(...)しとこ。」とかやってたら、そのtryのなかで
Access Violationが発生してたことに気づかなかったことがあったなぁ。
なんで、catchに行くのか理解できなかった覚えがあえる
0267デフォルトの名無しさんNGNG
BackupRead()とBackupWrite()でOwner,DACL,SACLを全部コピーできる、
Robocopy + SCopy + α みたいなミラーリングプログラムを作っているのですが、
ハマっています。 ご存じの方いたら教えてください。

SE_RESTORE_NAME特権を有効にすると、BackupWrite()で書込み権を持っていない
ディレクトリにファイルを書き戻せますが、書き込み権の無いディレクトリ中に
サブディレクトリを掘るにはどうしたらいいのでしょうか?

どうも、ディレクトリをBackupWrite()する場合、CreateDirectory()してから
BackupWrite()で属性情報だけ書き戻すしかないみたいですが、
CreateDirectory()はERROR_ACCESS_DENIEDになってしまいます。

CreateDirectory()するときだけACLを変更するのも何か違う気がするし...
0268デフォルトの名無しさんNGNG
>>262
_set_se_translator と、マクロを使ったほうがいいのでは…?

struct structured_exception; // Win32API構造化例外クラス

// 例外送出関数と、初期化関数
void trans_st_except( UINT e, EXCEPTION_POINTERS* pe ){
 throw structured_exception( e, pe );
}
// main か WinMain のアタマで呼び出す
void init_structued_exception_hander(){ _set_se_translate( trans_st_except ); }

// マクロ expr には例外を送るような式とか関数を入れると
#define SE_TEST( expr ) \
 __try{ (expr); } \
 __finally{}

使用例
 try{ SE_TEST( ::InitializeCriticalSection( &cs ) ) }
 catch( structured_exception& se )
 {
  (エラー処理)
 }

なんかわからんもんがすっ飛んでくるよりもいいでしょ。
0269デフォルトの名無しさんNGNG
赤信号、皆で渡れば怖くないってやつじゃないか。
0270デフォルトの名無しさんNGNG
つまらなくなるね。
0271デフォルトの名無しさんNGNG
ネタにマジレス北國新聞
0272デフォルトの名無しさんNGNG
 思ってる事をそのまま言ってしまうと行為=無責任発言
ということ。
 正当性がある意見なら、実社会でも言える。
 内部告発なんかも、実社会でも十分可能。
0273デフォルトの名無しさんNGNG
がんがれ
0274デフォルトの名無しさんNGNG
串設立&串解禁きぼん
0275デフォルトの名無しさんNGNG
======2==C==H======================================================

         2ちゃんねるのお勧めな話題と
     ネットでの面白い出来事を配送したいと思ってます。。。

===============================読者数: 139038人 発行日:2003/1/10

なにやら、連日メルマガだしてるひろゆきです。

そんなわけで、ログ記録実験ですが、いちいちサーバ指定するのが面倒なので、
全部のサーバに入れてみました。

重くなって落ちたりしてもご愛嬌ってことで。。。

んじゃ!

────────────────────────Age2ch─
■この書き込みは、Age2chを使って配信されています。
────────────────────────────
Keep your thread alive !
http://pc3.2ch.net/test/read.cgi/software/1041952901/l50
────────────────────────────
0276デフォルトの名無しさんNGNG
NYでログ取ってる方、いらっしゃいますか?
0277デフォルトの名無しさんNGNG
なんとなく分かりました。thx
0278デフォルトの名無しさんNGNG

     ま た  ま さ と  か!

0279デフォルトの名無しさんNGNG
ひろゆきツマンネー!!
0280デフォルトの名無しさんNGNG
288 :ひろゆき ◆3SHRUNYAXA :03/01/08 17:56 ID:rLfxQ17l
>厨房板は本当に閉鎖なのか?
初耳。
0281デフォルトの名無しさんNGNG
うそをうそと
0282デフォルトの名無しさんNGNG
600,000,036…
0283デフォルトの名無しさんNGNG
近藤朋(享年15)
今日午前4時前、幸田駅の線路脇の道路でキャッチボールしていた中学3年生4人組がいた。
ところが、ボールが線路に入った。
幸田駅の線路に、ボールを取りに入った、中学3年生の女子1名が、貨物列車に
ばばばばばピィー―  きゃ〜!  ブァプアあああああああー―――――――ン!!!!!!

0284デフォルトの名無しさんNGNG
ご愛嬌・・・
被害の大きさに差がありそうだけども。
誹謗中傷一番垂れ流しってどこかねぇ?
0285デフォルトの名無しさんNGNG
さあゲームの始まりです

愚鈍な警察諸君

ボクを止めてみたまえ

ボクは殺しが愉快でたまらない

人の死が見たくて見たくてしょうがない

汚い野菜共には死の制裁を

積年の大怨に流血の裁きを

SHOOLL KILLER

学校殺死の酒鬼薔薇
0286デフォルトの名無しさんNGNG
トラックバーにTBM_SETPOSを毎回送りつづけてスライダーを動かしながら、
他のウィンドウにボタン操作のメッセージを送るようにしたいのですが、
この状態だと他のウィンドウへのWM_COMMANDメッセージが送られず、操作できません。
どうすればできるのでしょうか?お願いです。教えて下さい。
0287デフォルトの名無しさんNGNG
すいません。おかしな操作をしてフォーカスを勝手に変えてたのが原因でした。
ちゃんと操作できました。さようなら。
0288デフォルトの名無しさんNGNG
じゃあなぜ今回になって
俺達を見限ったのだ?
0289デフォルトの名無しさんNGNG
ナイスw
0290デフォルトの名無しさんNGNG
sports3フカーツ?
0291デフォルトの名無しさんNGNG
ウィンドウやコントロールのキャプションは SetWindowText で
変更できるけど、メニューのキャプションを変更するには
どうすればいいですか?
(「最近使ったファイル」のようにしたいけど、あれは毎回
メニューを作り直している?)

それとアクティブでなくなると消えてしまうウィンドウ
(メニューやポップアップ)をスパイで捕まえる方法があったら
教えてくらはい
0292デフォルトの名無しさんNGNG
>それとアクティブでなくなると消えてしまうウィンドウ
>(メニューやポップアップ)をスパイで捕まえる方法があったら
>教えてくらはい

えっ?定数でhMenu取るの?勇者だね君は
0293デフォルトの名無しさんNGNG
>291
とりあえずSetMenuInfoとか書いてみる・・・
0294デフォルトの名無しさんNGNG
ほい
hMenu=GetMenu(hWND);
hMenuPlayThru=CreateMenu();
AppendMenu(hMenuPlayThru,MF_ENABLED|MF_STRING,n,sz);
AppendMenu(hMenu,MF_ENABLED|MF_STRING|MF_POPUP,(UINT)hMenuPlayThru,sz);


0295291NGNG
ガーン変更でしか?作るのかとオモタユ
0296291(本物)NGNG
>>292-295
あ、ありがと〜
AppendMenu と ModifyMenu でできました〜
0297デフォルトの名無しさんNGNG
SPY++みたいに、実行時に任意のウィンドウの情報を得るにはどうすればいいですか?
0298山崎渉NGNG
218.145.25.77:80
218.145.25.14:80
50.51.32.202.ts.2iij.net:80
cache146.156ce.scvmaxonline.com.sg:8080
cache50.156ce.scvmaxonline.com.sg:8080
12.119.64.42:80
ce590-gdl01.terra.net.mx:80
seton03.terra.net.mx:80
218.65.110.14:80
ce590-gdl02.terra.net.mx:80
0299デフォルトの名無しさんNGNG
自己解決
マウスキャプチャして
MapWindowPoints と WindowFromPoint
でなんとかなりそうですね。

しかし今まで色々調べてたのに、質問してすぐ見つかるとは・・・。
板汚しすまそ。
0300300getNGNG
     ∧∧   )      (´⌒(´
  ⊂(゚Д゚⊂⌒`つ≡≡≡(´⌒;;;≡≡≡
        ̄ ̄  (´⌒(´⌒;;
      ズザーーーーーッ
0301山崎渉NGNG
(^^)
0302デフォルトの名無しさんNGNG
ツリービューの新スタイルのTVS_FULLROWSELECTって
VisualC++5.0じゃビルドできませんか?
DLLのバージョンは5.81なので大丈夫だと思うんですが
未定義ですってエラーが出てしまいます。
0303デフォルトの名無しさんNGNG
簡単な二重起動防止を過去ログ参考にMutexで実装しようと思ってますが
二重起動を防止するときに、先に起動していたプログラムへ任意のイベントなどを
SendMessageなどで送ることはできないでしょうか?
同じプログラムが起動されたら先に起動していたプログラムにある動作をさせたいのですが。
もしかして、ウインドウハンドル捕まえて、それ宛にメッセージ送るだけ?
0304デフォルトの名無しさんNGNG
>>303
Mutexにこだわらないなら、FindWindowで二重起動防止。
ウィンドウクラス名が重複している場合は使えんが・・・

ウィンドウクラス名に依存するのが嫌なら、名前付きイベントを使うのも良いかと
0305デフォルトの名無しさんNGNG
>>303 サンプルコード山のように書かれてるよ。探せ。
0306デフォルトの名無しさんNGNG
DHCぐらいしか知らん
0307デフォルトの名無しさんNGNG
>>303
ウィンドウ持つのが嫌ならスレッドメッセージというのもあるけども。
0308デフォルトの名無しさんNGNG
>>302
できる。
ヘッダファイルだけそろえてやればいい。
もしくはその定数を自分で定義してやってもオケ。
たしかBCC5.5.1とかには入ってるはずなので、落として差し替える!
0309デフォルトの名無しさんNGNG
Win32コンソールアプリでコンソールにCGを表示させることは無理ですか?
いや、AAじゃなくてな。
0310デフォルトの名無しさんNGNG
コンソールにグラフィック表示機能があれば可能だろうけど
聞いたこと無いねえ
0311デフォルトの名無しさんNGNG
コンソールを直訳すれば操作卓だから UI は規定されないのだろうが、
一般にコンソールと言ったら CUI が常じゃないか?
0312デフォルトの名無しさんNGNG
まあ、どうしてもと言うなら GetConsoleWindow() でウィンドウハンドル取って、
あとは煮るなり焼くなり犯すなり。
0313デフォルトの名無しさんNGNG
char FindPath[256];
strcpy(FindPath, "c:\\*");
hFind=FindFirstFile(FindPath, &FData);
ここで FindPath[0]=0;としても
この後のFindNextFileに影響無しで良いですか?
0314デフォルトの名無しさんNGNG
GetConsoleWindow()
 Windows NT/2000/XP: Included in Windows 2000 and later.
 Windows 95/98/Me: Unsupported.

とか書いてあるけどナー。
0315デフォルトの名無しさんNGNG
>>313
多分無いと思うけど、何なら試してみたら?
0316デフォルトの名無しさんNGNG
んなもん質問実験してる暇にもうひとつバッファ作ればいいだろ。
0317デフォルトの名無しさんNGNG
コンパネの画面でウィンドウのタイトルバーの色や選択色などを設定するけど
あそこで設定したものってどうやってプログラムから取得するの?
現状としては選択色が取得したいんですが。
0318313NGNG
>>315
試した。
ちゃんと動くっぽいけど本当に大丈夫か知りたくて・・
0319デフォルトの名無しさんNGNG
>>317
GetSysColor()では不満か?
0320デフォルトの名無しさんNGNG
カーソルがメニューの外に移動したかどうかを知る方法を調べています。
メニューを表示してカーソルをメニューの外に移動させると、
アイテムが一つも選択されていない状態ができます。
このことを教えてくれるメッセージなどありますでしょうか。
御存知の方いらっしゃいましたら、どうかよろしくお願いいたします。
0321デフォルトの名無しさんNGNG
関数ImmNotifyIMEが、
WindowsXP環境だけ失敗するのですが、
何かご存知の方居りませんか?
0322デフォルトの名無しさんNGNG
Win32の勉強始めたばかりなんですが一般的な学習法ってなんでつか?
Petzold本に出てるようなファンクションをかたっぱしから試してどう動くかを学ぶとか?
ちなみに目標は自家製の本格的なテキストエディタ作成でつ。
0323デフォルトの名無しさんNGNG
・Petzoldのサンプルを少し改造してはその結果を確認
・大学ノートを用意し,憶えたことを必ずメモする
・糞使いづらいMSDNの調べ方に慣れる

以上を繰り返せばテキストエディタは53行で書ける
0324デフォルトの名無しさんNGNG
ファイル名
名無しさん.txtが、名無し~1.txt であるとき、
名無しさん.txtを名無し~1.txtにリネームするには、どーやったらできますか?
MoveFile("名無しさん.txt", "名無しさ~1.txt");
ってしても成功して、そのまんまなんですけど。
0325デフォルトの名無しさんNGNG
両方同じファイル名なんじゃないの。ロングとショートの。
0326デフォルトの名無しさんNGNG
>>325
そうなんですけど、ロングをショートにしたいんです。
0327デフォルトの名無しさんNGNG
>>326
意図が不明だけど一回nanasi.txtを中継すれば良いんじゃないの。
0328デフォルトの名無しさんNGNG
>>318
一般にWin32APIはハンドル作った時点で情報のコピーを
作るからユーザー側で用意したバッファは壊してOK
>>321
詳細なテキストサービス…でぐぐってもオフにする方法しか
出てこないな。たぶんその関係だとは思うんだが
0329デフォルトの名無しさんNGNG
>>327
9xだとトンネリングというOSの余計なお世話のせいで
それでもうまくいかない可能性がある
0330デフォルトの名無しさんNGNG
>>327
すみません。それだと、nanasi.txtが既に存在しているかも
チェックしないとならないんですね。それがめんどいのです。
TempFileでも中継することにしますか。
うーん。なんかないものか。
0331デフォルトの名無しさんNGNG
>>329
え?じゃ、>>330もだめか。
■ このスレッドは過去ログ倉庫に格納されています