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

Win32API質問箱 Build47

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2006/11/13(月) 08:56:12
スレ立てるまでもない、Win32APIのついての質問はこちらへどうぞ。
やさしいお兄さんやお姉さんたちが答えてくれるかも。

過去スレ、関連リンクは>>2-5くらい。

■注意
・質問する前にMSDNライブラリやPlatformSDK、Google等で検索しましょう。
・日本語版MSDN Online Libraryは不完全です。英語版(http://msdn.microsoft.com/library/)の利用推奨。
・APIフックなど高度な事をしたい場合はできるだけAdvenced Windowsを読みましょう。
・言語特有の問題やIDE、MFCやVCLなどの質問はそれぞれの言語や開発環境スレで
0596デフォルトの名無しさん2006/12/02(土) 11:08:25
NTではRtlAquireResourceExclusive/RtlAquireResourceSharedがあったようですが。
0597デフォルトの名無しさん2006/12/02(土) 11:12:19
>>595
C#スレで訊いた方がええんちゃうん?
0598デフォルトの名無しさん2006/12/02(土) 11:15:23
>>595
SM_CYCAPTIONをconstで宣言しろ。
0599デフォルトの名無しさん2006/12/02(土) 11:18:22
>>595
Win32のヘッダファイルを漁って、SM_CYCAPTIONの定義を見つけて
自分でconstとかで定義する。
0600デフォルトの名無しさん2006/12/02(土) 11:42:39
>>595
そもそもC#というか、.NET Frameworkの
System.Windows.Forms.SystemInformation.CaptionHeight プロパティ
じゃ駄目なのか?
0601デフォルトの名無しさん2006/12/02(土) 12:47:34
リストビューを作ったんですけど、水平スクロールバーを消すにはどうすればいいですか?
0602デフォルトの名無しさん2006/12/02(土) 15:01:20
そのリストビューのスタイルからWS_HSCROLLを除外すればいい
0603デフォルトの名無しさん2006/12/02(土) 16:20:34
自分で作ったプログラムからメモ帳とかIEを開くにはどうすればいいですか?
0604デフォルトの名無しさん2006/12/02(土) 16:30:37
ShellExecute or ShellExecuteEx
0605デフォルトの名無しさん2006/12/02(土) 16:43:44
>>604 できました。ありがとうございます。
0606デフォルトの名無しさん2006/12/02(土) 18:30:40
>>602
具体的にはどのようにすれば良いのですか?
0607デフォルトの名無しさん2006/12/02(土) 18:38:01
すみません、また分からないところが…
自分で作ったプログラムから、
指定したcppファイルを指定したコンパイラでコンパイルするプグラムを作りたいのですが、
ShellExecuteをつかって、コンパイルするところまではできたのですが、
コンパイラからのメッセージ文(エラーが出てコンパイルできなかったとか、正常にできたとか)を、
どうやって自分のプログラムに取り込めばよいのかがわかりません。
使っているコンパイラはbcc55なので、
ShellExecute(
    NULL,
NULL,
TEXT("bcc32"),
TEXT("test.cpp > message.txt"),
NULL,
SW_SHOWNORMAL);
という感じにすれば、
message.txt で取れるかと思ったのですが、できませんでした。
どうしたらいいのか、なにかヒントを教えてもらえると助かります。
0608デフォルトの名無しさん2006/12/02(土) 18:51:15
>>606
ちったぁ自分で調べるってことしろや
>>1にも書いてあろうがよ
「ウィンドウスタイル 変更」でググるだけでいくらでも参考になりそうなものが出てくるぜ?
0609デフォルトの名無しさん2006/12/02(土) 19:22:00
>>607
パイプ
0610デフォルトの名無しさん2006/12/02(土) 19:24:48
>>607
「>」とか「2>」はcmd.exeの機能だからcmd.exeを実行してやる必要がある。
06116102006/12/02(土) 19:26:46
書いてて自信がなくなってきたが
0612デフォルトの名無しさん2006/12/02(土) 19:32:57
>>609 >>610
ありがとうございます。早速ググッて見たのですが、説明が難しかったので、勉強してきます。
0613デフォルトの名無しさん2006/12/02(土) 22:48:08
>>612
>>610は"cmd.exe /c bcc32.exe -h > message.txt"
06146072006/12/02(土) 22:55:19
まだパイプについてはよく分からないのですが、検索した結果、
下のように作ったら、思ったように動かせました。
ありがとうございました。

BOOL MyFunc_CreateProcess
     (LPSTR  lpszCommandLine,  LPSTR   lpszFilePath)
{
HANDLE            hFile;
STARTUPINFO        si;
PROCESS_INFORMATION pi;
hFile = CreateFile(lpszFilePath,GENERIC_WRITE,0,NULL,
            CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);
ZeroMemory(&si,sizeof(si));
ZeroMemory(&pi,sizeof(pi));
si.cb=sizeof(si);
si.dwFlags=STARTF_USESTDHANDLES;
si.hStdOutput=hFile;
CreateProcess(NULL,lpszCommandLine,NULL,NULL,FALSE,0,NULL,NULL,&si,&pi);
WaitForSingleObject(pi.hProcess, INFINITE);
CloseHandle(pi.hProcess);
CloseHandle(pi.hThread);
CloseHandle(hFile);
return TRUE;
}
06156072006/12/02(土) 22:57:29
>>613
リロード忘れてました。orz
そ、そんな簡単にできるんですか……orz
0616デフォルトの名無しさん2006/12/02(土) 23:09:12
でも9xにcmd.exeは無い罠。
607のようにプログラムでリダイレクトしてやるほうがいいと思う。
0617デフォルトの名無しさん2006/12/02(土) 23:24:16
じゃぁ,command.comでいいじゃん。
0618デフォルトの名無しさん2006/12/02(土) 23:44:06
%comspec%を知らないやつがこんなにいるとは・・・
0619デフォルトの名無しさん2006/12/03(日) 00:14:28
>>618
完全に忘れていた。%ComSpec%
思い出させてくれてありがとう。
0620デフォルトの名無しさん2006/12/03(日) 00:19:52
スクリプトの話しなどしていない罠
0621デフォルトの名無しさん2006/12/03(日) 00:35:34
うん。スクリプトの話なんか誰もしてないね。
0622デフォルトの名無しさん2006/12/03(日) 00:39:16
>>620pugya-
0623デフォルトの名無しさん2006/12/03(日) 01:10:17
スプリクトの話はしてもいい?
0624デフォルトの名無しさん2006/12/03(日) 01:11:04
>>623
専用スレ池
0625デフォルトの名無しさん2006/12/03(日) 01:22:22
Win32でXMLを扱うことができるAPIはありませんか?
0626デフォルトの名無しさん2006/12/03(日) 01:23:14
>>625
MSXML
0627デフォルトの名無しさん2006/12/03(日) 01:28:21
ありがとう。SDKを導入しないといけないのですね。。
チョイ仕事では済みそうにないですね。
とにかくサンキュー
0628デフォルトの名無しさん2006/12/03(日) 01:38:05
先生、%ComSpec%の使い方を教えてください! マジで!
0629デフォルトの名無しさん2006/12/03(日) 02:10:15
>>628
del %comspec%
0630デフォルトの名無しさん2006/12/03(日) 07:59:58
英語版のプロパティシートを作ったんですが、
それを実行すると日本語環境と英語環境でプロパティシート
のサイズが変わってしまいます。中身のサイズは同じよう
です。

何が原因かわかりますでしょうか?
0631デフォルトの名無しさん2006/12/03(日) 08:02:58
>>630
フォントが違うんじゃない?
0632デフォルトの名無しさん2006/12/03(日) 08:09:36
fontはダイアログプロパティにてms sans serif 9に
しています。
実際に表示されるフォントが違うかどうかは確認して
ないんですが、中身のサイズは同じようなので
違うと思ってたんですが。
0633デフォルトの名無しさん2006/12/03(日) 11:42:20
いや、親ウィンドウのフォントが違うんじゃないかと思ったんだけど。
0634デフォルトの名無しさん2006/12/03(日) 12:02:17
>>633
プロパティシート自体がトップウインドウなんです。
0635デフォルトの名無しさん2006/12/03(日) 12:28:02
FontLinkの影響か?
影響を受けないフォント(Arialとか)にしてみたらどうだろう。
0636デフォルトの名無しさん2006/12/03(日) 13:03:21
>>635
Arialにしてみましたが、だめでした。
Arialにすると、英語windowsで内部がはみ出してしまいました。
0637デフォルトの名無しさん2006/12/03(日) 14:39:36
SDKのプロパティシート関係を真面目に読んでみた。

1. ページの大きさは互換性の関係で、
指定フォントではなく'MS Shell Dlg'を基に計算される。

2. Windows2000以降では、
DIALOGEXテンプレートでDS_SHELLFONTスタイルを指定した時、
指定フォントに基づいて計算される。

訳が間違っていたらすまん。
0638デフォルトの名無しさん2006/12/03(日) 14:59:35
同じ MS Sans Serif でも日本語Windowsと英語Windowsでは(更に言うなら中国語他も)
フォントが違うよ。
プロパティーシートにする前に、普通のダイアログで試してみそ。
よって、プロパティーシートの親ウィンドウのサイズは決め打ちではNG。
0639デフォルトの名無しさん2006/12/03(日) 15:00:32
ページのそれとシートのそれとは関係が無い。
シートのDLGTEMPLATE中のそれは日英で異なる。
DLLを覗くか、シートのフォントを調べられたし。
0640デフォルトの名無しさん2006/12/03(日) 15:53:30
>>638,639
ありがとう。いろいろやってたらできたみたいです。
PROPSHEETHEADERのフラグにPSH_USEPAGELANGを追加したら
シートの大きさが同じになりました。

ただタブのフォントが若干ちがくなりましたが、
これはOKとします。
0641デフォルトの名無しさん2006/12/03(日) 20:58:46
ああごめん>>637の人もありがとう
0642デフォルトの名無しさん2006/12/03(日) 23:45:54
CreateFileの引数にFILE_FLAG_NO_BUFFERING | FILE_FLAG_OVERLAPPEDを指定して、
セクタサイズが4KByteだけど1001KByteのファイルを作成したい場合は
最後の1KB書き込むときにはCloseHandleしてCreateFileしなおすか
最初からFILE_FLAG_NO_BUFFERINGを諦めるしかないんでしょうか
0643デフォルトの名無しさん2006/12/03(日) 23:52:05
>>642
日本語でおk

とりあえず、セクタサイズは通常512byte、MOとかDVD-RAMとかで2KBの場合あり。
4KBなんてものは普通はないが。
06446422006/12/04(月) 00:07:29
>>643
すみません
セクタサイズではなくクラスタサイズでした
MSDNには、FILE_FLAG_NO_BUFFERINGフラグを指定した場合
書き込み&読み込みサイズと、バッファーのアドレスと、ファイルの書き込み&読み込み開始位置が
ディスクのクラスタサイズと一致してなければいけないと書いてありました。

そのため、クラスタサイズが4KBのディスクに1001KBのファイルを作ろうとすると
最後の1KBが書き込めなくなってしまうので

1、FILE_FLAG_NO_BUFFERINGを諦める 
  (このフラグを指定すると非同期書き込みのパフォーマンスが上がると書いてあったので、できれば諦めたくない)
2、一度ファイルを開き直してから書き込む
  (わざわざ開き直すのは面倒でスマートではない気がするので、他にいい方法があるなら避けたい)

この二つ以外に方法は無いのかと思って質問させていただきました
0645デフォルトの名無しさん2006/12/04(月) 00:07:50
アロケーションユニットサイズのこと?
0646tsurarete yarou.2006/12/04(月) 00:15:50
>>642
やったことないのでおおはずしかもしれないが、ダミーで埋めて 1004KB まで
書き込んでから、SetFilePointer() と SetEndOfFile() で余分なところを切
り捨てるんじゃだめ?
0647デフォルトの名無しさん2006/12/04(月) 00:19:07
>>644
セクタサイズ単位のはずだが。
0648デフォルトの名無しさん2006/12/04(月) 00:21:18
つーか、そんな小細工したってしなくたって、メディアの速度は変わらないよ。
0649デフォルトの名無しさん2006/12/04(月) 00:28:13
書き込みの境界さえあってれば、サイズは可変でいけた気がする。
ちなみに、大抵の場合パフォーマンスが低下するので使用はお勧めしない。
06506422006/12/04(月) 00:40:31
>>647
MSDNに思いっきりセクタサイズって書いてありましたねorz

>>646
SetFilePointerもセクタサイズ単位でしか移動できないようです

>>648
それはわかってるんですけどOSがバッファリングしなくなるので
その分早くなるのかと思いまして

>>649
>書き込みの境界さえあってれば、サイズは可変でいけた気がする。
やってみたところ、WriteFileがエラーを吐きました
GetLastErrorしてみたらエラーコードは0x57で「パラメータが間違っています。」だそうです
セクタサイズの整数倍にした場合はエラーになりませんでした。

>ちなみに、大抵の場合パフォーマンスが低下するので使用はお勧めしない。
そうなんですか・・・
こういうのはあまり詳しくないのでMSDNの記述を鵜呑みにしてました


勉強してちゃんと理解できるようになるまではFILE_FLAG_NO_BUFFERINGを諦めることにします
>>643-649
ありがとうございました
0651デフォルトの名無しさん2006/12/04(月) 01:04:39
最適化(と本人は思ってる)に凝る時期が俺にもありました。
0652デフォルトの名無しさん2006/12/04(月) 01:09:58
Win32触った奴なら、NO_BUFFERINGに夢見てしまう事が一度はあるだろうな。

>>650
NO_BUFFERINGは、ディスクキャッシュをあまり汚さずに済むのが唯一の利点かな。
FFCとかは使ってるのかもしれない。
0653デフォルトの名無しさん2006/12/04(月) 02:29:37
>>650
DBMSのように自前でバッファリングしてI/O回数の最適化を意識した処理を作っているのでなければ、
NO_BUFFERINGを使うメリットなんてないだろう。
通常のアプリくらいならやらないほうがいいと思う。
0654デフォルトの名無しさん2006/12/04(月) 03:04:42
ISOディスクイメージファイルの仕様が見つかりません。
ISO-9660ディスクの仕様なら見つかるのですが・・・
0655デフォルトの名無しさん2006/12/04(月) 06:08:24
583 名前: デフォルトの名無しさん [sage] 投稿日: 2006/12/01(金) 13:44:42
reader/writer lockってvista以上でサポートかよ。
2000でもサポートしてくれよぉ。

591 名前: デフォルトの名無しさん [sage] 投稿日: 2006/12/02(土) 02:50:20
>>583
Vistaってそういうカーネルレベルの改良意外と多いんだよね。
Win板とか行くとみんなAeroくらいしかないと思ってるみたいだけど

592 名前: デフォルトの名無しさん [sage] 投稿日: 2006/12/02(土) 09:09:33
Win板の連中は表面しか見ない(見えない)からね〜。


ntdll内で実装されているのでカーネルレベルの変更ではない。
目糞鼻糞だな。
0656デフォルトの名無しさん2006/12/04(月) 13:44:34
わざわざコピペしてまで言いたかったんだね。
0657デフォルトの名無しさん2006/12/04(月) 14:15:49
>>656
やぁ、目糞君www
0658デフォルトの名無しさん2006/12/04(月) 14:58:17
リバースエンジニアリングを行わないとntdll内で完結しているとは断言できないな
0659デフォルトの名無しさん2006/12/04(月) 15:05:14
>>654
スレ違いだが、まずは手元の適当なISOイメージが、そのISO-9660ディスクの仕様と一致しているか確かめろ。
一致しているならそれで良し、違ったらお前のググり方が悪い。
0660デフォルトの名無しさん2006/12/04(月) 15:14:47
>>654
raw image fileに仕様があると思っているのか?

>>658
素人乙
0661デフォルトの名無しさん2006/12/04(月) 15:22:02
なんか一人暴れてる馬鹿がいるな
0662デフォルトの名無しさん2006/12/04(月) 19:56:34
ド素人の質問で悪いんだが
reader/writer lockってどんなの?
APIの名前じゃ無さそうだが
0663デフォルトの名無しさん2006/12/04(月) 20:01:07
・誰かが書き込み中なら、読み込み要求は待たされ
・誰かが読み中なら、書き込み要求は待たされ
・皆読み中での、読み込み要求は待たされずにすんなり通る

をプロセス/スレッドまたいで、うまく解決できるようにする機構
0664デフォルトの名無しさん2006/12/04(月) 20:32:05
どうも
0665デフォルトの名無しさん2006/12/04(月) 21:24:00
>>654
とりあえずISOディスクイメージファイルって何ぞやってことだな.
自分用語だから誰もそれが何なのか分からない.

CD-ROM及びDVD-ROMは1セクタにつき2048バイトをデータとする論理構造を持ち
一般的にはそれの1トラックの連結ストリームをイメージファイルとするけど、CD-R
では本来の補助情報を含めた2352バイトを物理的に焼きこめることもあって、各ソフト
毎に好き勝手に独自フォーマットを持っている. (DVDはRAW焼きはできません)
また、TOC情報とかもイメージに取り込んでいるのもあるな.

ので、一般的にisoイメージと呼ばれているものはその実はそれが何なのかは、
それだけでは分からない. 一番可能性が高いのは1セクタ2048バイトなシングル
トラックイメージというだけ.
0666デフォルトの名無しさん2006/12/05(火) 00:33:47
アイコンハンドラやコンテキストメニューハンドラ等のShell Extension関連の
お勧めな書籍はありますか?
Delphiのですと下記のが一応見つかりましたが、VCでお勧めがありましたら…。
シェルプログラミング入門
ttp://www.amazon.co.jp/exec/obidos/ASIN/479730782X
0667デフォルトの名無しさん2006/12/05(火) 00:55:34
MSDN マジオススメ
0668デフォルトの名無しさん2006/12/05(火) 01:48:44
GetWindowLong()で、GWL_WNDPROCとDWL_DLGPROCの違いがわからない。
ウィンドウとダイアログの違いって?(^^;
0669デフォルトの名無しさん2006/12/05(火) 05:42:42
>>620
ExpandEnvironmentStringsの話ならおk?
0670デフォルトの名無しさん2006/12/05(火) 05:47:34
>>596
Vistaに限らずNT系の新APIに見えるものは実はntdllの非公開APIに公開の皮を
かぶせただけ、ってパターンも結構あるな。
Win9x切り捨てたので遠慮する必要がなくなったんだろう
0671デフォルトの名無しさん2006/12/05(火) 09:51:21
>>668
ttp://msdn.microsoft.com/library/en-us/winui/winui/windowsuserinterface/windowing/dialogboxes/aboutdialogboxes.asp
>Dialog boxes usually belong to a predefined, exclusive window class.
>The system uses this window class and its corresponding window procedure for both modal and modeless dialog boxes.
>When the function is called, it creates the window for the dialog box, as well as the windows for the controls in the dialog box,
>then sends selected messages to the dialog box procedure.
0672デフォルトの名無しさん2006/12/05(火) 10:15:18
初歩的な質問ですみません。

VisualC++ 2005 EE を使い始めたのですが、
VisualC++ 6.0と違ってリソースエディタがありません。

なので、無理矢理コントロールをウインドウに貼り付けて処理したいと思うのですが、
どのように貼り付ければ良いのか、参考となるサイトなど教えていただけないでしょか?
0673デフォルトの名無しさん2006/12/05(火) 10:33:34
>>672
VC6のリソースエディタなりサードパーティ製リソースエディタ使えば?BCCFormとか。
0674デフォルトの名無しさん2006/12/05(火) 10:41:56
ダイアログのWindowProc(DefDlgProc)はこんな感じ。

LRESULT API DefDlgProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
  BOOL result = FALSE;
  hwnd->DWL_MSGRESULT = 0;
  if(hwnd->DWL_DLGPROC
    && (result = CallDlgProc(hwnd, message, wParam, lParam))
  {
    //メッセージに応じてDWL_MSGRESULTかresultを返す
    return DWL_MDGRESULT or result;
  }
  else
  {
    switch(message)
    {
    /*さまざまなメッセージハンドラ*/
    case WM_XXXX:
      return 何とか
    default:
      return DefWindowProc(hwnd, message, wParam, lParam);
    }
  }
}

DlgProcはダイアログのWindowProcのフロントエンドなので、
DlgProcでデフォルト処理後に独自の処理を加えるのはメンド臭いです。
06756722006/12/05(火) 11:14:36
>>673-674
迅速なレス有難う御座います。
方法すら見当もつかなかった自分としては、お二方のご指南本当に有難いです。
やはりソースコードで全て処理するとなるとやや時間もかかり、
面倒かもしれませんが、頑張ってみようと思います。
0676デフォルトの名無しさん2006/12/05(火) 11:28:37
ドラッグ・アンド・ドロップで
DragQueryFile関数を使いパスつきのファイル名が取得できますが
パスなしのファイル名が取得できる関数はあるのでしょうか?
0677デフォルトの名無しさん2006/12/05(火) 11:30:53
パス削ったらいいがな(´・ω・`)
0678デフォルトの名無しさん2006/12/05(火) 11:37:49
PathFindFileName
06796762006/12/05(火) 11:44:27
>>678
ありがとうございます。
0680デフォルトの名無しさん2006/12/05(火) 13:35:57
>>672
その方法は面倒だが、それだって探せばいくらでも見つかる。
親のWM_CREATEで子をCreateWindow(Ex)すればいいだけ。
0681デフォルトの名無しさん2006/12/06(水) 13:52:31
WindowsでUSBメモリとかで繋いだときにそのタイミングで
接続されたイベントを取得したい場合どうすればいいでしょうか?
ipodを繋いだらitunesが起動するみたいなことがやりたいです。
msdnとかで調べたけどわかりませんでした。
お願いします。
0682デフォルトの名無しさん2006/12/06(水) 14:04:19
WM_DEVICECHANGE
0683デフォルトの名無しさん2006/12/06(水) 15:19:42
DirectXを利用しているプログラムで
日本語入力をしたいのですが
IMEに未確定文字を表示させないようにして
独自で描画することはできますか?
06846832006/12/06(水) 15:49:39
すまん、やっぱDirectXスレのほうで聞いてくる。
0685デフォルトの名無しさん2006/12/06(水) 17:10:55
>>681
SHCNE_MEDIAINSERTEDだな。
0686デフォルトの名無しさん2006/12/06(水) 19:21:50
ツールバーのあるアプリケーションを
ValidateRectで描画を更新しているのですが

VC++6.0から実行すると、ツールバーが消えてしまいますが
exeから動かすとツールバーが表示されています。

これはどうしようも無いんでしょうか。
BeginPaint〜EndPaintだとVC++6.0の実行でも問題なし
0687デフォルトの名無しさん2006/12/06(水) 21:16:06
>>686
絶対なんかやってることがおかしい。

あと「ValidateRectで描画を更新」って何だよ?
0688デフォルトの名無しさん2006/12/06(水) 21:33:28
ValidateRectって「もう描画しなくてもいいよ」って命令じゃなかったぽ?
0689デフォルトの名無しさん2006/12/06(水) 21:35:21
WM_PAINTする領域に含めなくていいよ、という命令
0690デフォルトの名無しさん2006/12/06(水) 21:37:14
その逆はそのまんまでInvalidateRect。
06912032006/12/06(水) 21:48:28
メッセージは
while( 1 )
{
 if( ::PeekMessage( &msg, NULL, 0U, 0U, PM_NOREMOVE ) )
 {
  if( ::GetMessage( &msg, NULL, 0, 0 ) <= 0 )
   return msg.wParam;

  ::TranslateMessage(&msg);
  ::DispatchMessage(&msg);
 }
}

プロシージャでは
GetClientRect( g_hWnd, &wrc );
GetClientRect( g_hTool, &trc );
wrc.top = trc.bottom;
を
case WM_TIMER:
 InvalidateRect( g_hWnd, &wrc, TRUE );
 UpdateWindow( g_hWnd );
 break;

case WM_PAINT:
 ValidateRect( g_hWnd, &wrc );
 break;
といった感じで処理しています。
たまにツールバーが出現したりして謎です。
ValidateRectの描画の更新は、すいません表現を間違えました。
0692デフォルトの名無しさん2006/12/06(水) 21:50:27
標準リストビューの行の高さって変更できますか?
やり方教えてください。
06936912006/12/06(水) 21:50:56
名前欄間違えた。
×203
○686
0694デフォルトの名無しさん2006/12/06(水) 21:51:25
そのビジーループには何か意味があるの?
06956922006/12/06(水) 21:51:31
全部の行ではなくて指定した行の高さってことです。
0696デフォルトの名無しさん2006/12/06(水) 21:52:50
TextOutで�@、�Tとかの表示の文字化けは大丈夫でしょうか。
■ このスレッドは過去ログ倉庫に格納されています