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

Win32API質問箱 Build23

レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさんNGNG
- 過去スレ
Build22:http://pc5.2ch.net/test/read.cgi/tech/1092524669/
Build21:http://pc5.2ch.net/test/read.cgi/tech/1090422324/
Build20:http://pc5.2ch.net/test/read.cgi/tech/1088140233/
Build19:http://pc5.2ch.net/test/read.cgi/tech/1084697545/
Build18:http://pc5.2ch.net/test/read.cgi/tech/1081702990/
Build17:http://pc5.2ch.net/test/read.cgi/tech/1077470361/
Build16:http://pc2.2ch.net/test/read.cgi/tech/1073830065/ ★
Build15:http://pc2.2ch.net/test/read.cgi/tech/1069339866/ ★
Build14:http://pc5.2ch.net/tech/kako/1065/10653/1065328397.html
Build13:http://pc5.2ch.net/tech/kako/1059/10595/1059549320.html
Build12:http://pc5.2ch.net/tech/kako/1056/10560/1056033645.html
Build11:http://pc5.2ch.net/tech/kako/1052/10526/1052651750.html
Build10:http://pc5.2ch.net/tech/kako/1047/10478/1047819779.html
Build9:http://pc5.2ch.net/tech/kako/1044/10449/1044929160.html
Build8:http://pc5.2ch.net/tech/kako/1040/10409/1040964626.html
Build7:http://pc3.2ch.net/tech/kako/1036/10366/1036654893.html
Build6:http://pc3.2ch.net/tech/kako/1032/10325/1032548635.html
Build5:http://pc3.2ch.net/tech/kako/1028/10285/1028580373.html
Build4:http://pc3.2ch.net/tech/kako/1023/10233/1023361418.html
Build3:http://pc.2ch.net/tech/kako/1017/10170/1017072275.html
Build2:http://pc.2ch.net/tech/kako/1006/10067/1006783012.html
Build1:http://pc.2ch.net/tech/kako/991/991576947.html
(★は「いやー ごめんなさい。」に巻き込まれた模様
0002デフォルトの名無しさんNGNG
- MSDN Online
http://www.microsoft.com/japan/msdn/default.asp
- 猫でもわかるプログラミング
http://www.kumei.ne.jp/c_lang/
- Platform SDK Update
http://www.microsoft.com/msdownload/platformsdk/sdkupdate/
- Google
http://www.google.com/

Win32 API入門
http://black.sakura.ne.jp/~third/system/winapi/win.html
WIN32 Programming
http://www7.plala.or.jp/keny01/win32/
Win32 SDK Programming
hhttp://www7.plala.or.jp/keny01/windows/win32/
0003デフォルトの名無しさんNGNG
(´゚Д゚`)
0004デフォルトの名無しさんNGNG
2げっとー
はじめてやった わーい
0005デフォルトの名無しさんNGNG
がーん
0006デフォルトの名無しさんNGNG
> WIN32 Programming
> http://www7.plala.or.jp/keny01/win32/
これリンク切れてるよ
0007デフォルトの名無しさんNGNG
>>6
修正忘れてた。
http://www7.plala.or.jp/keny01/windows/win32/
0008ほんたまNGNG
おみゃ〜らよ、WideCharToMultiByteを使って、unicodeをsift-jisに変換すると、漢字はちゃんと変換されるのに、半角英数は文字化けするのよ。
unicodeが「4F 00 4B 00 27 59 0B 4E B9 5B 50 5B」の場合、これは「OK大下容子」の意味だ。
これをchar型の文字列pctextに取得して、この時点でpctextの内容をMessagBoxで表示してみると「ok'Y・Nケ[P[」だ。
これをWideCharToMultiByteを使って変換し、変換した文字列temptextを表示してみると「?大下容子」になっているんだ。
おみゃ〜らよ、なぜOKはちゃんとならないのかな?
これ、教えれ、ばかおみゃ〜ら、こら!!!!!!!
0009デフォルトの名無しさんNGNG
>>8
氏ね
0010ほんたまNGNG
>>9
こら、教えれ、ばかこら!!!!
0011デフォルトの名無しさんNGNG
一応はっとく

Build15:ttp://saba.haiiro.info/uploader/file/0587.html
Build16:ttp://saba.haiiro.info/uploader/file/0588.html
0012デフォルトの名無しさんNGNG
>>1
おつ。

>>11
いただきます。
0013デフォルトの名無しさんNGNG
お前ら、よく聞け。

アプリを常にタスクバーの前面に置くために、
タスクバーを親に指定してウィンドウを表示しているヤシいると思う。
XPSP2適用後だと、その前面表示アプリのせいで、
スタートボタンから展開されるはずのポップアップ形式のメニューなどが、
不意に閉じてしまう現象が起こるようになった。

XPSP2では、親をタスクバーにしているアプリは要注意だ。
0014デフォルトの名無しさんNGNG
親をタスクバーにする理由を教えて欲しい
HTND_MOSTTOPだっけ?
そんな感じの指定すりゃいいのに
0015デフォルトの名無しさんNGNG
�d�j
0016デフォルトの名無しさんNGNG
>>14
> アプリを常にタスクバーの前面に置くために
0017デフォルトの名無しさんNGNG
>>1
<< "乙";
0018デフォルトの名無しさんNGNG
HWND_MOSTTOPじゃならないんだ
0019デフォルトの名無しさんNGNG
�d$
0020デフォルトの名無しさんNGNG
ListViewむかつく。
なんで、カラムを追加するときはindexを指定するのに
アイテムを追加するときはデータの中にindexが含まれてるんだ?
0021デフォルトの名無しさんNGNG
はぁ?
0022デフォルトの名無しさんNGNG
>>20の発言を重く見たゲイツは強権を発動
$70兆を投与し現行のWindows全てにパッチを当て
リストビューアイテム追加時のデータからindexを分離した

897 名前:デフォルトの名無しさん[sage] 投稿日:04/02/29(水) 22:21:15
ListViewむかつく。
変更が少ないカラムは良いけど、
アイテムデータにはindexを含めろよ。別管理マンドクセ。
0023デフォルトの名無しさんNGNG
今年の2月29日は日曜日じゃなかったか?
0024デフォルトの名無しさんNGNG
ぐだぐだだな。
0025デフォルトの名無しさんNGNG
コントロールパネルの地域のオプションに基づいた日付や数値の整形をしたいのですが
その情報はどこで得られるのでしょうか。
0026デフォルトの名無しさんNGNG
>>25
日付はGetDateFormat、
数値はGetNumberFormatで整形できる。
形式を知りたいだけならGetLocaleInfo。
0027デフォルトの名無しさんNGNG
>>26
ありがとうございました、そのまんまですね。
GetDateFormat/GetTimeFormatは見つけていたのにNumberFormatは見落としていたようです。
0028デフォルトの名無しさんNGNG
IShellFolder2::GetDetailsOfでループを回してカラムを取得しているのですが、
所有者の次、作成者の前に details.str が L"" の要素が列挙されます。
エクスプローラのカラムのカスタマイズでは出てこないのですが、これは何なのでしょうか?
002928NGNG
GetDefaultColumnState/SHCOLSTATE_HIDDENでふるいに掛けて自己解決しました。
0030デフォルトの名無しさんNGNG
エディットボックスについてです。
EM_REPLACESELで文字を最後に追加した時に、
勝手にスクロールしないようにするにはどうすれば良いでしょうか?
スクロールバーの位置を弄ってみたんですがだんだんずれて行きます。
SDKだけで作ってます。
いい方法があれば教えてください。
リッチエディットでも構いませんっ
003130NGNG
すみません、解決しました。
0032デフォルトの名無しさんNGNG
アプリ開発プログラマーからの視点で聞きたいのですが、
MapFanやデジタル全国地図などのように、オンラインで多ユーザーの同時アクセス、
大きめのデータのやりとり(地図ベクトルデータ)を前提にしたシステムを
作る場合、データ送受信においてはどういったアプローチがベストでしょうか?

0033デフォルトの名無しさんNGNG
32
ロードバランサー & LAMP
0034デフォルトの名無しさんNGNG
//下のようなコードがあるのですがWM_NOTIFYメッセージが送られてきません。
//何が悪いのでしょうか?
#include <windows.h>
static LRESULT CALLBACK WndProc( HWND hwnd, UINT msg, WPARAM wp, LPARAM lp ) {
NMHDR* nmhdr;

switch( msg ) {
case WM_DESTROY:
PostQuitMessage( 0 );
break;

case WM_NOTIFY:
nmhdr = (NMHDR*)lp;

if( nmhdr->code == BN_CLICKED ) {
// hogehoge
}
break;

default:
return DefWindowProc( hwnd, msg, wp, lp );
}
return 0;
}
//続きます
0035デフォルトの名無しさんNGNG
//続きです
extern int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd ) {
WNDCLASSEX wcex; HWND hwnd; MSG msg; BOOL res;

wcex.cbSize = sizeof(wcex);
wcex.style = 0;
wcex.lpfnWndProc = WndProc;
wcex.cbClsExtra = 0;
wcex.cbWndExtra = 0;
wcex.hInstance = hInstance;
wcex.hIcon = LoadIcon( NULL, IDI_APPLICATION );
wcex.hCursor = LoadCursor( NULL, IDC_ARROW );
wcex.hbrBackground = (HBRUSH)COLOR_WINDOW;
wcex.lpszMenuName = NULL;
wcex.lpszClassName = "test";
wcex.hIconSm = NULL;
RegisterClassEx( &wcex );

hwnd = CreateWindowEx( 0, "test", "test", WS_OVERLAPPEDWINDOW, 0, 0, 300, 300, NULL, NULL, hInstance, NULL );
CreateWindowEx( 0, "BUTTON", "test", (WS_CHILD|WS_VISIBLE), 100, 100, 100, 100, hwnd, (HMENU)0x1000, hInstance, NULL );
ShowWindow( hwnd, nShowCmd );
UpdateWindow( hwnd );

while( ( res = GetMessage( &msg, NULL, 0, 0 ) ) != 0 ) {
if( res > 0 ) {
TranslateMessage( &msg );
DispatchMessage( &msg );
}
}
return 0;
}
0036デフォルトの名無しさんNGNG
Delphiスレから移動して参りました。

ListViewを仮想リストビューとして使っています。
項目の表示などはちゃんと出来ているのですが、
Shiftを使用した複数選択をした際に、選択情報が
LVM_GETNEXTITEM などに反映されないようです。
(LVM_GETNEXTITEM で選択アイテムを数えるプログラムを書いてみましたが
Shiftによる選択を除いて、ちゃんと動作しました。)

これは、ListViewの仕様なのでしょうか?
003734NGNG
すいません。ボタンとかには送らないとMSDNに書いてありました。∧||∧
003836NGNG
すいません、>>36の質問は取り消させて頂きます。
どうやら、Delphi での私の書き方が悪かったようです。
この件を確認してくださった方がいらっしゃたら、すいません。
0039デフォルトの名無しさんNGNG
>ボタンとかには送らないとMSDNに書いてありました。

そりゃそうだ。通知メッセージは、コントロールが親に送るもんだから

BN_CLICKED なら WM_COMMAND だよ
0040デフォルトの名無しさんNGNG
WNDCLASSEXの、
cbWndExtra→Set[Get]WindowLong
cbClsExtra→Set[Get]ClassLong
がわかったのですが、これはどのように使い分ければいいのですか?
0041デフォルトの名無しさんNGNG
>>40
cbWndExtra→ウィンドウ毎に固有のデータを格納
cbClsExtra→ウィンドウクラスから作られた全てのウィンドウが共有するデータを格納
0042デフォルトの名無しさんNGNG
ビットマップ読み込みして、そこに文字を書き込むプログラムを作っています
Windows2000、XPpro(日本語、英語版)、Windows98(日本語版)では文字が縦に
出力されるのですが、Windows98の英語版でのみ、文字列が横並びに出力されて
しまいます。
読み込みをしているビットマップのサイズは縦x横=828x1165ですが、
何かWindows98での制限とかあるのでしょうか?

hDCCC = GetDC(0);
hBitmapDIB = ::CreateDIBSection(hDCCC,bif,DIB_RGB_COLORS,(VOID**)&pDIB,NULL,0);

hDCBB = CreateCompatibleDC(hDCCC);
ReleaseDC(0,hDCCC);
hBMMM = (HBITMAP)SelectObject(hDCBB,hBitmapDIB);

hFOnt = CreateFont(iFontHeight,0,2700,2700,FW_REGULAR,FALSE,FALSE,FALSE,DEFAULT_CHARSET,
OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,PROOF_QUALITY,
FIXED_PITCH | FF_MODERN,NULL);
hFOOO = (hFOnt)SelectObject(hDCBB,hFOnt);
SetBkMode(hDCBB,TRANSPARENT);

TextOut(hDCBB,dwX,dwY,buf,strlen(buf));
::CopyMemory( (BYTE*)m_lpNewImage + m_nHeaderSize,pDIB, m_nImageSize );
SelectObject(hDCBB,hFOOO);
SelectObject(hDCBB,hBMMM);
DeleteObject(hFOnt);
DeleteObject(hBitmapDIB);
DeleteDC(hDCBB);
0043ほんたまNGNG
おみゃ〜らよ、Win32APIでRECT構造体を使う関数ってよくあるだろ?
あれは、別にRECT構造体でなくてもいいんだぞ。
自分でKINTAMA構造体をつくって、そのメンバをOMANKO1、OMANKO2,OMANKO3,OMANKO4という4つのint型にして、
rect.left、rect.right、rect.top、rect.bottomのかわりに、
KANTAMA.OMANKO1、KANTAMA.OMANKO2、KANTAMA.OMANKO3、KANTAMA.OMANKO4をつかってもまったく問題ないぞ!!!
0044ほんたまNGNG
おみゃ〜らよ、RECT構造体ばかりではないぞ!
WINで定義されている構造体は全部そうだ。
おみゃ〜らよ、WINで定義されている構造体を使う必要はまったくない。
メンバの型と数さえ同じなら、自分で好き勝手な構造体を作って、それを使ってもまったく問題ない!!!
おみゃ〜らよ、知らなかったろ?
0045デフォルトの名無しさんNGNG
>>44
詰め物の位置や数も気にしないで良いんですか?
0046ほんたまNGNG
>>45
正確に言うと、詰め物で気にしなければならないのは、数、型、順番だ。
逆に言うと、詰め物の数、型、順番さえ合っていれば、WIN定義の構造体を使わなくてもいいってことだ。
自分で好き勝手な構造体をつくって使えばいい。
0047デフォルトの名無しさんNGNG
>>46
詰め物の型って?
0048デフォルトの名無しさんNGNG
彼は詰め物=構造体の各メンバだと解釈したらしい。
0049デフォルトの名無しさんNGNG
CreateWindowでクライアント領域にはっ付けたボタンのキャプションのフォントを
変更するにはどうすればよいのでしょう?
005049NGNG
↑フォントというかサイズが大きいので小さくしたいのです。
0051デフォルトの名無しさんNGNG
WM_SETFONT
0052デフォルトの名無しさんNGNG
>>51
危うくオーナードローに踏み切りかけました。ありがとうございまs
0053デフォルトの名無しさんNGNG
ほんならやー、CRectオブジェクトへのポインタは
RECT構造体へのポインタにキャストしても
使えるねんでーたぶん。
0054デフォルトの名無しさんNGNG
あ、ポインタじゃなくてもいいか
0055デフォルトの名無しさんNGNG
何でほんたまは当たり前のことを説明してるだけなのに偉そうなんですか。
誰か教えてください、
0056デフォルトの名無しさんNGNG
スレッドが二つ、スレッド1とスレッド2あったとします。
スレッド1からスレッド2にPostMessage()で
ある構造体typedef struct foo_tag{...}FOO;をポインタで渡す場合、自動変数で渡した方がいいのでしょうか?
それともmallocした方がいいのでしょうか。
どういう指針で考えたらいいのでしょうか?

(1)FOO foo;
PostMessage(hwnd,MSG,&foo,0);
(2)FOO *foo
PostMessage(hwnd,MSG,foo,0);
0057デフォルトの名無しさんNGNG
1は消滅する
005856NGNG
すみません、日本語がおかしかったので再度。

スレッドが二つ、スレッド1とスレッド2あったとします。
スレッド1からスレッド2にPostMessage()で
ある構造体typedef struct foo_tag{...}FOO;を渡す場合、自動変数で渡した方がいいのでしょうか?
それともmallocした方がいいのでしょうか。
どういう指針で考えたらいいのでしょうか?

(1)FOO foo;
PostMessage(hwnd,MSG,&foo,0);
(2)FOO *foo
PostMessage(hwnd,MSG,foo,0);
0059デフォルトの名無しさんNGNG
1は消滅する
006056NGNG
>>57
渡された側でディープコピーすれば値はわたるが、
他のスレッドがこのPostMessageを呼び出す関数を使ったときにこのfooのスタック領域を上書き(初期化)してしまうということですね。
0061デフォルトの名無しさんNGNG
>>60
んー?「このPostMessageを呼び出す関数を使ったとき」に限らないよ?
0062デフォルトの名無しさんNGNG
違う。PostMessageはSendMessageじゃない。
変数の生存期間の問題なんで自分でタイミングを完全に理解できてないと
自動変数を使うのはまずい。
0063デフォルトの名無しさんNGNG
>>62
つまりSendMessageは同期関数で、PostMessageは非同期関数。
非同期関数はメッセージを渡したらすぐにリターンするから、Postされた側は処理を継続できる。
タイミングとは、Postされた後にその渡された&fooを呼び出した側でまた操作する(消去したり、値を変えてしまう)のはいつか
ということですね。
0064デフォルトの名無しさんNGNG
スタックってスレッド毎に独立してるんじゃなかったか?
だったらSendだろうがPostだろうが自動変数は使えないだろ。
006564NGNG
ごめん、なんか勘違いしてた。
わすれてください
0066デフォルトの名無しさんNGNG
排他制御した方が良いような希ガス。
0067デフォルトの名無しさんNGNG
矩形でないところへ bitmap の絵を貼り付けるため、24 bit color の色を
SetPixel() で、HDC に埋めていますが、色が元のとは違います。
元のは、暗い褐色なのに、青黒いのです。HDC の設定でなにか必要に思え
るのですが、なんでしょうか。BeginPaint() 以降なにもしていません。
006867NGNG
>>67
自己レス。B と R が逆だった。うかつ。
0069デフォルトの名無しさんNGNG
>矩形でないところへ bitmap の絵を貼り付けるため

リージョン使って SelectClipRgn してから BitBlt するのが普通
0070デフォルトの名無しさんNGNG
WindowsのIDはどうやって取得しますか?
マイコンピュータ右クリック→システムのプロパティ→全般タブで
使用者: のところに出ている xxxxx-xxx-xxxxxxx-xxxx の文字列のことです.
0071デフォルトの名無しさんNGNG
レジストリ

HKEY_LOCAL_MACHINE の Software\Microsoft\Windows\CurrentVersion
0072デフォルトの名無しさんNGNG
>>71
thx!!
0073デフォルトの名無しさんNGNG
MultiByteToWideCharなんかのWideChar(UNICODE)ってのは
終端ヌルも含めオール2バイト(UTF-16?)でいいのですか?
WORD境界にそろえろと言われたもので調べています。
0074デフォルトの名無しさんNGNG
>終端ヌルも含めオール2バイト

そうだと思います。
0075デフォルトの名無しさんNGNG
>>73
2バイト単位の符号であることは確かです。
最近はサロゲートペアをサポートしているようなので1文字=2バイトとは限りませんが。
007673NGNG
了解です
WORD単位ならOKなので。ども
0077デフォルトの名無しさんNGNG
C+ウィンアプリ+SDKのメッセージループ外で、
PostQuitMessage or PostMessage(WM_APP)を行っても大丈夫でしょうか。
メッセージループ外でそれらを行い、メッセージループに入った時、
待ち状態にならないように、すぐにメッセージ処理を行いたいのですが。
0078デフォルトの名無しさんNGNG
>>77
大丈夫だったと思う。
007977NGNG
>>78
分かりました。ありがとうございました。
0080デフォルトの名無しさんNGNG
>>77

むしろメッセージループ内で行ってるのを見たことないけど
0081デフォルトの名無しさんNGNG
最初にPeekMessage呼び出してメッセージキューを作っておく必要があるんじゃないの?
0082デフォルトの名無しさんNGNG
DefWindowProcは、他のメッセージをやった後、行うのはダメなのでしょうか。
0083デフォルトの名無しさんNGNG
デフォルト処理が自前処理と重なってわやなことになる場合もあるから
メッセージの説明をMSDNで確認すれ
0084デフォルトの名無しさんNGNG
>>83
調べてみます。ありがとうございました。
0085デフォルトの名無しさんNGNG
>>83
わや?
0086デフォルトの名無しさんNGNG
STRRET::uTypeがSTRRET_OFFSETの場合、
返ってくる文字列はワイド文字列なんでしょうか?
MSDNにはpidlの先頭からのオフセットとしか書いてないし、
STRRET_OFFSETを返す例を見つけられないので調査も出来ないです。
0087デフォルトの名無しさんNGNG
>>86
ぐぐった限りでは char* にキャストしている例ばかりがヒットした。
もしかして SHGetFileInfoA と SHGetFileInfoW で違うのかもしれない。
あいまいですまん。
0088デフォルトの名無しさんNGNG
RFC2104に記述されているHMAC:メッセージ認証のための鍵付ハッシング
について実装したいと思っているのですが、実装方法分かる方
いらっしゃいますでしょうか?

通常通りハッシュ生成を行い、RFCに記述されている
H(K XOR opad, H(K XOR ipad, text))
の通り計算を実装すると正しく出力されたのですが

APIヘッダとか見ているとHMAC_INFO構造体とか色々用意されていて
自分で実装しなくても算出してくれそうなのですが使い方どうも
よくわかりません。

CryptCreateHashのhKeyに正しいKeyを渡せば上手くいきそうな
雰囲気なのですがそのhKeyが?(これであっているか不明ですが)

とりあえず困らないのですけど気になってしょうがない。
008987NGNG
>>86
ヘッダ見たら
#define STRRET_OFFSET 0x0001 // Use STRRET.uOffset to Ansi
って書いてあった。orz
なら ANSI 文字列でいいのだろう。
009067NGNG
>>69
ヒントを有難う。3次元座標の空間に bitmap を浮かべて、マウスで
空間を動かすと、台形になったりひし形になるのを試している。
パース修正っていうのかな。
0091デフォルトの名無しさんNGNG
>>89
ありがとうございます。
まさかMSDNに書いてない事がヘッダに書いてあるとは。
大変参考になりました。
0092デフォルトの名無しさんNGNG
Sleep(1)って本当に1ミリ秒なんですか?
なんか使っててもっと長いようなんですが。。。
0093デフォルトの名無しさんNGNG
Sleep(1)なら最低でも1ミリ秒以上は戻ってこない。いつ戻ってくるかはなんの保証も無い。
0094デフォルトの名無しさんNGNG
使えないAPIですね。さすが糞OS。
0095デフォルトの名無しさんNGNG
正確な計測を行いたければ代替手段がありますが何か?
0096デフォルトの名無しさんNGNG
timeBeginPeriod() で Sleep() の精度も変化
0097デフォルトの名無しさんNGNG
>>94
最低でも1ミリ秒は、他のプロセスやスレッドにCPU処理を譲るという意味で、
ちゃんと役に立っているよ。
糞OSなのもわかるけど、正しい使い方をしないで糞というのもどうかと。
0098デフォルトの名無しさんNGNG
彼はWindowsを憎んでいるのです
0099デフォルトの名無しさんNGNG
ボケーしね,とりあえず怒った
0100デフォルトの名無しさんNGNG
>>94
ちなみにLinuxのリアルタイム処理はもっと使えない。
0101デフォルトの名無しさんNGNG
つーかリアルタイムOS使えよ
0102デフォルトの名無しさんNGNG
ソフトしかわからん奴の限界
0103デフォルトの名無しさんNGNG
>>102
最近ハードウエアについて学んだ学生さんですか?
0104デフォルトの名無しさんNGNG
まだ10年の若輩者です
0105デフォルトの名無しさんNGNG
義務教育10年目
0106デフォルトの名無しさんNGNG
計測をするなら、お手軽なのはGetTickTimeを使う
出来るだけ正確に測定したい場合は、QueryPerformanceを使う
0107デフォルトの名無しさんNGNG
>>106
QueryPerformanceCounterって
一部の古いPentiumProマザーボードで正常な値を取得できないとか
一部のマルチプロセッサ環境で異常な値を返す場合があるとか
SpeedStepやCnQなどのクロック変化で正確な時間が測れない場合があるとか
噂やネットで聞くがどうなんだろう
0108デフォルトの名無しさんNGNG
GetTickTime
0109デフォルトの名無しさんNGNG
>>107
やねうらお氏のWebページか、書籍に詳しく書かれてる。
ちゃんとまとめてあるし、実験&考察までしているのはここだけじゃないか?
0110デフォルトの名無しさんNGNG
またうらおか
0111デフォルトの名無しさんNGNG
WM_GETMINMAXINFOが通知されるときの
MINMAXINFOのデフォルト値を調べることってできますか?
ウィンドウプロシージャの中でやるのはナシ
0112デフォルトの名無しさんNGNG
DefWindowProc(hwnd, WM_GETMINMAXINFO...)
0113デフォルトの名無しさんNGNG
>>112
アリガトゴザマス
でも、lParamには一体何を渡せば・・・。
0114デフォルトの名無しさんNGNG
シンプルな枠なしウィンドウ
(2chブラウザで >>番号 にマウスを移動させると出現するポップアップのようなもの)
を作りたいのですが、これはWIN32APIの周りをいじると実現できるのでしょうか?
以下、試しにrubyで書いてみたのですが、こんな大げさなウィンドウを作る必要がなくて、
テキスト情報をもっとシンプルにポップアップしたいのですが…

require 'Win32API'
msgbox = Win32API.new('user32', 'MessageBox', 'LPPI', 'I')
msgbox.call(0, 'Message Box', 'test', 0)

ご存じのかた、情報のポインタだけでも教えていただけないでしょうか。
0115デフォルトの名無しさんNGNG
>>114
2chブラウザのポップアップウインドウは普通ToolTipをつかっているはず
0116デフォルトの名無しさんNGNG
Win2k以降でIShellDetailsはIShellFolder2に取って代わられたと書いてあるのですが、
特定のフォルダ(タスク等)でIShellFolder2の取得に失敗します。
タスクの場合は、IShellDetailsの生成に成功するのですが他のフォルダの場合は
IShellDetailsに失敗してIShellFolder2で成功するようです。

IShellFolder2生成
if (失敗)
 IShellDetails生成
 if (失敗)
  エラーか、独自処理

って感じで良いんでしょうか?
>For Windows 2000 and later systems, IShellDetails is superseded by IShellFolder2.
を見るとObsoleteな扱いになってるように見えるのですが。
0117デフォルトの名無しさんNGNG
>>113
自分のウィンドウにWM_GETMINMAXINFOが来たときのlParamには何が入ってる?
0118デフォルトの名無しさんNGNG
>>117
というよりも、どちらかと言うと、
その値を調べたいのです
やっぱりWM_GETMINMAXINFOに張りついてないと
いけないんでしょうかね・・・
0119デフォルトの名無しさんNGNG
だから呼び出し元でMINMAXINFO構造体を用意して、
lParamにそのアドレスを渡せっていう話だろ。
0120114NGNG
>>115
ありがとうございます。試しに以下のコードでTooltipを表示してみたのですが、
require 'vr/vrcontrol': require 'vr/vrtooltip'
class Form4ToolTip < VRForm
include VRDrawable
AREA = [0,0,110,110]
def construct
self.caption = "tooltip"; self.move 10,10,110,110
tt = createTooltip; tt.addToolArea AREA,"てすと"
end
end
VRLocalScreen.start(Form4ToolTip)

できれば、元になるウィンドウ無しにツールチップだけ表示することはできないでしょうか。
たとえばIEのテキスト入力画面でカーソルの位置に突如ポップアップを出すとか。

babylonとかドクターマウスとか、翻訳系のアプリケーションの場合には、
元になるウィンドウ関係なしにポップアップ表示が実現されているのですが、
あーいうのはどうやってプログラムを組めばよいのでしょうか…ご存じの方教えてくださいm(__)m
0121デフォルトの名無しさんNGNG
>>119
初期化なしでいいんですか?
0122デフォルトの名無しさんNGNG
>>116
Windows 2K 以降のシステムに対しては、IShellDetails は IShellFolder2 で置き換えられました、
みたいな意味だから例えば Win98 や NT の頃に出た Shell Namespace Extension の中には、
IShellDetails しか実装していないものもある。
0123デフォルトの名無しさんNGNG
WM_*の値がいくつであるか、一覧が乗っているサイトが
ありましたら、URLを教えてください。

通常は、マジックナンバーは使わないのですが、
メッセージ処理の研究をしていて、来たメッセージのmsg.messageを
ウィンドウなどに表示したとき、どのWM_*か知りたいのです。
0124デフォルトの名無しさんNGNG
>>123
WinUser.h見たほうが早いと思うが…。
0125デフォルトの名無しさんNGNG
>>124
なるほど。ありがとうございました。
0126デフォルトの名無しさんNGNG
Spy++じゃダメなの?
0127デフォルトの名無しさんNGNG
CreateWindowでモーダルを作ろうと思っているのですが、
DS_SYSMODALはどこかのウィンドウの「子」として作らなければ関数失敗しますか?
自分は失敗するのですが。。
0128デフォルトの名無しさんNGNG
CreateWindowで、自プログラムのメインウィンドウを作る場合、
そのウィンドウの親ウィンドウとして、
GetDesktopWindowで得たウィンドウハンドルを指定するべきなのでしょうか?
それとも、NULLを指定するべきでしょうか?
0129デフォルトの名無しさんNGNG
リングレベルを変更するAPIを教えて下さい。
0130デフォルトの名無しさんNGNG
お前ごときに変更されてたまるか。
0131デフォルトの名無しさんNGNG
>>128
どっちでもいい。
0132デフォルトの名無しさんNGNG
終了ボタンを押した時に、GetMessageから出るメッセージを教えてください。

調べてみると、WM_NCLBUTTONDOWNが出ているみたいなのですが、
それはバーとか非クライアント領域で共通のものなので、
他に出ていると思うのですが、分かりませんでした。

WM_CLOSEは、コールバックの方では出ているようなのですが、
GetMessageからは、出ていないようです。
0133デフォルトの名無しさんNGNG
>>131
それぞれ値が全く違うので気になりました。
NULLを指定した場合には、
一体何を親ウィンドウとしているのでしょうか?
NULLは標準的なやり方ではないのですか?
0134デフォルトの名無しさんNGNG
>>133
Spy++でみると、どっちで作ってもオーナーウインドウは(なし)になる。
0135134NGNG
ちなみに、マルチモニタ(4枚)環境。
0136デフォルトの名無しさんNGNG
>>132
GetMessageからメッセージが出てくる順番は先入れ先出しのキューだから、
即座に反応してほしいメッセージは直接ウィンドウプロシージャへ送られる。

0137デフォルトの名無しさんNGNG
WindowsOSのプロセスは厳密には親子関係にはないそうですが、
子プロセスが先に終了しても全く問題はないということですか?
0138デフォルトの名無しさんNGNG
>>132
アレコレあるけど最終的(の1っ歩前)は、WM_SYSCOMMAND で SC_CLOSE が来てると思うよ。
普通のウィンドウなら。
0139132NGNG
>>136>>138
ありがとうございます。もう一度試してみます。
0140デフォルトの名無しさんNGNG
ファイルの切り取りや貼り付けをする一般的な方法ってどんなものでしょうか?
とりあえず思いつくのは、コンテキストメニューを取得して、verbに"cut"や"paste"を指定することなのですが
もっと一般的な方法ってないでしょうか?
SHFileOperationみたいな物が用意されていそうな雰囲気があるのですが。
0141デフォルトの名無しさんNGNG
>>137
そう。子プロセスが終了するまで親は停止するようなプログラムも作れるし、親が終了しても子はそのまま残るし。
0142デフォルトの名無しさんNGNG
>>141
ゾンビらないのですか?
優秀なOSですね。
0143デフォルトの名無しさんNGNG
ゾンビって終了したにも関わらずそのステータスを誰にも
取得されていないプロセスのことじゃなかったっけ?
なんか大きな勘違いしてるカキコを2chでよく見かけるけど。
0144デフォルトの名無しさんNGNG
あの、マウスのカーソルって条件によって形を変えられるじゃないですか。
例えば場所によって一般的なアローであったり手の形であったり、エディットボックスのときも変わりますよね。
そこでなのですが、自分以外のプログラムによって変わったカーソルの形が画面に表示されるときに
何になっているのかということを取得することってできませんか?
また、カーソルの形の画像自体を取得できなくてもある位置からある違った位置にカーソルを動かした時に
そのカーソルの画像が変わったかいなかを取得できるだけでもかまいません。
画像判定以外でどうにかならないかと考えております。
お知恵を貸していただける方がいらっしゃいましたらお願いします。
0145デフォルトの名無しさんNGNG
HCURSOR SetCursor(HCURSOR hCursor);
の戻り値を保存して
次判定するときに参考にするんじゃだめ?
0146デフォルトの名無しさんNGNG
マナーの悪いプログラム、嫌いです。
0147デフォルトの名無しさんNGNG
自分で登録したタスクトレイのアイコン上に
マウスカーソルが行った事を知るにはどうすればいいんでしょう?

WM_MOUSEMOVEだと、どういう条件だかわからんけど
がしがし飛んできてるみたいで。。。
WM_MOUSEMOVEでどうにかするものなのかな?

0148デフォルトの名無しさんNGNG
>>147
はぁ?NOTIFYICONDATA.uCallbackMessage
0149147NGNG
>>148
言葉足らずですまん
uCallbackMessageで受け取った時のことねん

今もぐぐってるけど、WM_LBUTTONDOWNとかの
クリック系しか無くて、困ってるんです
0150デフォルトの名無しさんNGNG
最後にlparam=WM_MOUSEMOVEがきたときのマウス座標(p1)を
記憶しておいて、タイマーでマウスの座標(p2)を定期的にチェック
してp1==p2ならアイコン上、違ったらアイコン外とみなすのはどうかね?
試してないけど。
0151147NGNG
下げ忘れてた、すまん

>>150

うーむ、こういう案になるのかぁ
入った時と出た時だけ捕まえるとか。。。無理( ・ω・)?

まぁ、もう暫く頭の中で練ってみます
ありがとうです
0152デフォルトの名無しさんNGNG
リスト構造のデータを管理するときは積極的にHeapCreateするべきでしょうか?
0153デフォルトの名無しさんNGNG
>>140
IShellLinkみたいなやつがあった筈。
0154デフォルトの名無しさんNGNG
Win2KSP4
C++Builder5で
::MessageBeep(MB_OK)
とかやっても音が出ないんです

普段操作してる時は音出ます
VSは持ってないのでテストできないんですが
こういう症状出た事ある人いますか?
0155デフォルトの名無しさんNGNG
他のアプリでメッセージボックスが出る時にも音が出てないのか?
出てなければ環境の問題。

他のが出てておまいのが出ないなんてのはまずあり得ないはず。
0156154NGNG
ペイントなんかだとダイアログの時音が出るけど
・・・C++Builderで作ってるソフトからだとダイアログの時音が出ない!

なんだこりゃ・・・?
C++ Builder の環境疑うべきかな?
0157154NGNG
解決しました
TweakUIでサウンド殺してました
すんません、ゆるして・゚゚(´□`。)°゚。ワーン
0158デフォルトの名無しさんNGNG
IContextMenuを使ったプログラムを作ると、
Spy++で見るメッセージのネスとレベルがとんでもない勢いで増えていくんですがこんなモンですか?
エクスプローラのネストレベルもどんどん増えていくみたいなのですが。
0159デフォルトの名無しさんNGNG
DialogBoxParamがモーダルになってくれません。
オーナーウィンドウがNULLでもモーダルにする方法はないでしょうか?
0160デフォルトの名無しさんNGNG
>>159
どういう理由でモーダルでないと判断したんだ?
0161デフォルトの名無しさんNGNG
>160
アプリから呼ばれるDLLを開発しており、アプリからDLLを呼んでダイアログを
開いたところ、呼び出し側アプリのウィンドウが操作できてしまう。。。
0162デフォルトの名無しさんNGNG
DialogBoxParam(m_hInstance,
 MAKEINTRESOURCE(IDD_ReaderSelectDlg),
 0,
 DialogProcEntry,
 (LPARAM)this);

…3番目が0じゃだめなの???
0163デフォルトの名無しさんNGNG
アプリウィンドウをオーナーに出来ない理由があるのか?
0164デフォルトの名無しさんNGNG
アプリウィンドウのハンドルの取得方法がわからないのでNULLを渡しています。
自分(ダイアログ)を開いた親、もしくは
アプリのTopLevelウィンドウがわかればいいのだけれど…
0165デフォルトの名無しさんNGNG
普通呼ぶとき渡してもらうだろ
0166デフォルトの名無しさんNGNG
今回作っているものは渡してもらえません(T.T)
0167デフォルトの名無しさんNGNG
>166
最初から設計のやり直し。
はい次の方どうぞ。
0168デフォルトの名無しさんNGNG
ったく2ちゃんねらは役にたたねぇなw
0169デフォルトの名無しさんNGNG
EnumWindowで探すか?
0170デフォルトの名無しさんNGNG
そのあとGetWindowThreadProcessIdかな。
最初からEnumThreadWindowsでもいいかも。
0171デフォルトの名無しさんNGNG
>>168
同意
0172デフォルトの名無しさんNGNG
>>171
じゃあ何故オマイラはここにいるのですか?
0173デフォルトの名無しさんNGNG
>>172
役に立たない人間だからです
0174デフォルトの名無しさんNGNG
>>161
システムモーダルにすれば操作できないよ
0175sageNGNG
あるウィンドウAを親としてWS_CHILDスタイルを指定しないでウィンドウBを作ったとき
Bから見たAをオーナーウィンドウ、、というんですよね。違ってるでしょうか。

GetWindowでGW_OWNERを指定した場合は必要なAのハンドルが得られるのですがGetParentを使用した場合に関数が失敗します。

(GetParent)
「指定したウィンドウがトップレベルウィンドウの場合は、オーナーウィンドウのハンドルが返ります。指定したウィンドウが
トップレベルのオーナーを持たないウィンドウだった場合、および関数が失敗した場合は NULL が返ります。」

GetParentでオーナーを取得できているのにGetParentでオーナーが存在していないという事になっている(?)のは何故なのでしょうか。
間違い指摘してくださいお願いします。
0176デフォルトの名無しさんNGNG
>>175
とりあえずGetLastError()してみては
0177671NGNG
ドキュメントの間違い。ずっと前から。
0178デフォルトの名無しさんNGNG
プロセスの親子関係が曖昧なんだから、
ウィンドウの親子関係くらいはシンプルでハッキリと作ったらいいのに。
0179デフォルトの名無しさんNGNG
はっきりしてるよ。親子関係と所有関係を混同してる人が多いだけで。
GetParent() はオーナーを返さないのも名前からいって妥当だと思うけどね。
0180デフォルトの名無しさんNGNG
すっげー、このヒト。名前だけでAPIの全貌つかんじゃってるよ。
当然とか言い切っちゃってるし。


>The GetParent function retrieves a handle to the specified window's parent or owner.
>指定された子ウィンドウの親ウィンドウまたはオーナーウィンドウのハンドルを返します。

0181デフォルトの名無しさんNGNG
>>180
当然とは言ってないわけだが
0182175NGNG
sageを今やっと理解しました175です。ありがとうございます。

>>176さん

使った事がない関数なので調べて見ます。
今時間がないので試せませんが、夜試してみようと思います。

>>177さん

あ、MSDNの文書自体が間違っているということですか??
考えもしませんでした。そういえば日本語のMSDNは誤植が多いって誰かが・・。
英語も勉強しなくては

>>178さん

僕も自分が親とオーナーのをちゃんと識別できているかどうかすらわかってない感じです。
子は親の領域内に表示されるウィンドウ、オーナーに所有されたウィンドウというのは
オーナーが閉じられたときに自身も閉じられてしまうようなウィンドウ、あとは上に書いたことをつけたしたような認識です。

>>179さん

やっぱりMSDNが誤植でGetParentはオーナーを返さないんですね。
自分も親子関係と所有関係の違いをよくわかっておりません。
「オーナーウィンドウ 親ウィンドウ 違い」でググって解説は見つけたのですが、
特にオーナーについて具体的に何を指しているのかわかりませんでした。
教えてください、お願いします。

ありがとうございました。
0183デフォルトの名無しさんNGNG
>>182

英語ですけど。

Win32 Window Hierarchy and Styles

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnwui/html/msdn_styles32.asp
0184144NGNG
GetCursor()で取得しようとしたんですがカーソルが矢印でもハンドでも
同じ値しか返してくれません一体どうすればいいんでしょうか・・・P_q
0185デフォルトの名無しさんNGNG
>>184
これかな。

マイクロソフト サポート技術情報 - 230495
HOWTO:現在のカーソルのハンドルを入手します。
http://support.microsoft.com/?kbid=230495
0186デフォルトの名無しさんNGNG
>>184
最終手段だけど、APIフックでSetCursor()をフックしちゃえば?
0187デフォルトの名無しさんNGNG
x64コンパイラを含んだPlatform SDKを入手したいのですが、
どうやったら入手できますか?
MSDN以外にも、betaplaceから入手できるとCマガジンに書いて
あったのですが、Guest IDを聞かれるだけで、メールなども来ていません。
0188175NGNG
>>180さん

あれ。

>The GetParent function retrieves a handle to the specified window's parent or owner.
>指定された子ウィンドウの親ウィンドウまたはオーナーウィンドウのハンドルを返します。

MSDNの内容は誤植じゃないって事でしょうか?

GetLastErrorをGetParentの直後に使ってみました。関数はハンドルを返しませんが(関数失敗?)
LastErrorの戻り値をデバッグモードで調べると0になっていました。
0のエラーコードは「正常に終了している」とどこかの掲示板のログにありましたし
MSDNのFormatMessageのサンプルコードをほぼ完全にコピペしてエラーメッセージを表示しましたが
やはり、「操作を正しく完了しています」的なメッセージでした。

ダラダラごめんなさい。GetParentはオーナーは返さないという結論でいいのでしょうか?

0189デフォルトの名無しさんNGNG
> GetParentはオーナーは返さないという結論

すくなくとも Windows95,2000 では、返しませんね。
古い Win32API のヘルプでは

The GetParent function retrieves the handle of the specified child window's parent window.

となっていて、オーナーのハンドルを取得できるとは書いていない。いつからか、取得できる
という事になっているが、自分は成功したことはありません。

GetWindow() か、WS_CHILD スタイルが無いことを確認してから GetWindowsLong() では
取得できますね。
0190デフォルトの名無しさんNGNG
CreateFileの第六引数・ファイル属性のFILE_ATTRIBUTE_ENCRYPTEDの説明に
このファイルまたはディレクトリを暗号化するよう指示します。
とありますけど、実際にはどうなるんですかね?このフラグでファイルに数値入れたりしても
特に何も変わってないようにみえるんですけど
0191デフォルトの名無しさんNGNG
CreateFileしたユーザ自身が見たら、暗号化されて見えなくてなくて当たり前だと思うが。
0192デフォルトの名無しさんNGNG
>>190
調べてないけど、FATとNTFSでは挙動が違うんでないかい?
FATでそんなめんどくさいことサポートしてないでしょ。
0193デフォルトの名無しさんNGNG
スレッドがサスペンド状態かどうかを知る方法はあるのでしょうか。
たとえばVCLのTThreadクラスでは、Suspendedプロパティを設定してから
実際にサスペンドさせるので、スレッド自身がサスペンドする場合には
このプロパティは厳密にはあてにはならないと思います。
スレッドハンドルは終了しないとシグナル状態にならないようだし、
何か方法はないものでしょうか。
0194デフォルトの名無しさんNGNG
>>182 WS_POPUPの場合、GetParent()はオーナーを返す。
0195デフォルトの名無しさんNGNG
>>193
VCLって何?

というか、サスペンド状態ってあんまり使わんと思うんだが
(通常はイベント待ちになってるっしょ)
汎用の何かを作るの?
0196デフォルトの名無しさんNGNG
>>195
193じゃないけど、VCL = Visual Component Library の略で
Delphi、C++Builder で使われてるクラスライブラリ
0197デフォルトの名無しさんNGNG
>>193
WaitForSingleObject
0198デフォルトの名無しさんNGNG
>>193
SuspendThreadして戻り値見るとか?
0199193NGNG
>>195
VCL知らんっすか。まァそうかもしれませぬな。
>>196さん、さんくすっす。

あんまりスレッドを作ったり終了したりすると原因不明のメモリリークがあるとか
聞くし(真偽は不明)、どうせ必要なスレッドならサスペンドで待機させといて
必要なデータを設定→Resumeの方が効率いいかなー、とオモテそんな仕組みを
考えております。

>>197
なんのハンドルを?サスペンドでもシグナル状態になるの?

>>198
考えましたけど、一瞬でもスレッドの動作を阻害するのでやだなあと。
でも一応案のひとつです。
0200デフォルトの名無しさんNGNG
>>190
ファイルを暗号化するには専用のAPIを使う必要がある
暗号化属性ビットを直接いじっても駄目
0201デフォルトの名無しさんNGNG
なんだDel厨か…
0202デフォルトの名無しさんNGNG
>>193
待機させるならCreateEventのハンドルとかでイベント待ちする方が賢いと思うけど。
SuspendThreadはワーカスレッド側の都合に関係なく止まるから普通は使わないよ。
0203デフォルトの名無しさんNGNG
質問です。
複数のアイコンを1つのファイルにまとめるためにdllを作るというのはありですか?
試してみたところ、dllはソースファイルに何も書かなくてもビルドできるようなので
正直驚いているところです。

正しいアイコン書庫ファイルの作り方は何なのでしょうか?
0204デフォルトの名無しさんNGNG
>>203
WinAPIで取り出せるからdllでいいと思うけど。
0205デフォルトの名無しさんNGNG
拡張子はICLにするのが一般的なんかしら。
ttp://www.venus.dti.ne.jp/~mueji/tips/tips07.htm
0206デフォルトの名無しさんNGNG
>>205
情報有難うございました。
リンクページによると、dllはある種のアイコン書庫ファイル扱いされてるみたいですね。
.iclファイルという専用のフォーマットがあることは全く知りませんでした。
勉強になりました、サンクスです。ノシ

ちなみに自分がVC6SP4で生成したソースなしdllでのサイズについて触れますと、
2,238[Byte] × 219個 を組み込んだ状態で、557,056Byteのdllファイルとなったので、
オーバーヘッドは、557,056-490,122 = 66,934[Byte]でした。
0207デフォルトの名無しさんNGNG
おーい、ICLは専用フォーマットじゃないよ。
アイコンしか入っていないDLLを、それとわかるように拡張子変えてるだけ。
0208デフォルトの名無しさんNGNG
ListViewコントロールのスクロールバー位置についての質問です。
垂直スクロールバーが一番下に来ているかどうか知りたいのですが以下のようなコードで問題ないのでしょうか?
nPos+nPageがnMaxより1大きいのが気になるのですが‥‥

::SCROLLINFO si;
si.cbSize = sizeof(si);
si.fMask = SIF_ALL; //SIF_POS | SIF_RANGE;
::GetScrollInfo(hWnd, SB_VERT, &si);
if ((si.nPos + si.nPage - 1) == si.nMax)
  //要スクロール
else
  //スクロール不要

0209デフォルトの名無しさんNGNG
>>206
リンカの/NOENTRYでもう少しサイズは小さくならないか?
0210デフォルトの名無しさんNGNG
Windows であるディレクトリ以下のファイルのコピー,移動,削除などを
監視したいんだが,

FindFirstChangeNotification

を使えば,それが起きたことを教えてくれるが,
なんていうファイルのどうしたのか(コピー? 移動? 削除?)は
これじゃわからん.

これを知る方法ない?
0211デフォルトの名無しさんNGNG
>>210
NTならそういうAPIが使えるが、そうでないなら自分でリストアップするしかない。
と記憶してる。
0212210NGNG
リストアップっていうのは?
どうやんの?
0213デフォルトの名無しさんNGNG
>>212
変更前にファイルリストを作っておいて変更後と比較する
0214デフォルトの名無しさんNGNG
>>213

常駐して,アクション(ファイル操作)が起こりしだい
リアルタイムで知りたいんだけど,
その方法じゃ無理やんけ
0215デフォルトの名無しさんNGNG
アクションが起きるたびにファイルリストを随時更新するんだよ
0216デフォルトの名無しさんNGNG
さよか。
0217210NGNG
>>215

1つのドライブぜんぶ監視したいんだが,
そんなことやってられっか
いくらメモリくうかわからんし,
CPU もおおいそがしだよ
0218デフォルトの名無しさんNGNG
そうですか
0219210NGNG
誰かいい知恵だせよ
0220デフォルトの名無しさんNGNG
さいな
0221デフォルトの名無しさんNGNG
ファイルI/OのAPIをフックすればできるけど、特殊なAPIの呼び出しかたしてたり
圧縮・暗号化されてる実効ファイルとかだとちょっと面倒。
0222206NGNG
>>207
早とちりでしたか。orz
0223デフォルトの名無しさんNGNG
>>210
NT系でいいんなら ReadDirectoryChangesW を非同期で使えば?
0224デフォルトの名無しさんNGNG
つーか210では「あるディレクトリ」とか言ってるのに
「1つのドライブぜんぶ」とかいきなり前提条件変えるし
0225デフォルトの名無しさんNGNG
もう相手すんなよ。
0226デフォルトの名無しさんNGNG
(´,_ゝ`)プッ
しょせんここのレベルはこの程度だよ
0227210NGNG
あなたたちには、失望したわ。
0228210NGNG
自己解決したので、もう来ません。
0229デフォルトの名無しさんNGNG
何事もなかったかのように次の人どうぞ↓
0230デフォルトの名無しさんNGNG
>>223に答え教えてもらっておいて「自己解決」か。
プッ
0231193NGNG
>>202
もちろん、ワーカスレッドの都合を無視して無理やりサスペンドさせるような
作りにはしていません。
おっしゃるとおりに今までイベントオブジェクトで連携を取っていたんですが、
ワーカスレッドが自発的に停止する場合に問題だったのです。
スレ違い気味になるので詳しくは書きませんが、別のアプローチで解決しそうです。
0232デフォルトの名無しさんNGNG
詳しく書け
0233デフォルトの名無しさんNGNG
SHChangeNotifyRegister() は9xでも隠しAPIとして存在しているはず。
0234193NGNG
>>232
>>201にむかついたので、Del厨は引っ込みますよーだ。
0235デフォルトの名無しさんNGNG
>>233
SHChangeNotifyRegisterはアテにならない。
0236デフォルトの名無しさんNGNG
>>235
それは当然。ソフトウェア的に実現しているに過ぎないからね。
SHChangeNotify() をちゃんと呼んでくれるプログラムしか対応できない。
エクスプローラでの操作が反映される程度だろう。

9x でリアルタイムに反映させようと思ったら、ドライバ書くしかないんじゃないか?
0237デフォルトの名無しさんNGNG
分割ウィンドウを作ろうと思ってがんばってるんですが、どうしても
みてくれが悪くなります。
MFCのCSplitterWndと同様の効果を得られるようにするにはどのように
すればよろしいのでしょうか?
0238デフォルトの名無しさんNGNG
MFCと同じように書く
0239188NGNG
>>189さん

遅れてすいません。
なるほど!詳しくどうもありがとうございました!
これでスッキリ寝れます。

みなさんどうもありがとうございました。
0240デフォルトの名無しさんNGNG
別スレで同じことを書きましたがスレ違いだったみたいなので
こちらで質問します。

MCIで動画を再生するプログラムを作っているのですが
MCIWndCreateでWS_CHILDを指定して再生させています。
ですがこのままだと再描画がされません。
親のウィンドウにはWM_PAINTが来るのですが、
どのように再描画させれば良いかが不明です。

どなたかご存知ないですか?
0241デフォルトの名無しさんNGNG
>>240
InvalidateRect
0242デフォルトの名無しさんNGNG
NamedPipeなんですけどクライアント側でWaitNamedPipeを使って待つようにしてます。
ほぼ同時刻にクライアント側から書き込もうとすると1つはタイムアウトでエラーになります。
サーバー側でのインスタンスの数は1つでも制限なしでも変わらす。

同時刻に接続に行って両方とも読むいい方法は無いですか?
0243デフォルトの名無しさんNGNG
設定の保存にレジストリを使いたいんですが、レジストリに書き込むにはどうしたらいいんでしょうか。
HKEY_CURRENT_USER\SOFTWARE\Microsoft\sample (仮)に
名前 Height 値 200

という感じで記録したいんです。
0244デフォルトの名無しさんNGNG
>>243
自分で調べてみてそれが分からない程度ならばプログラムをやめろ
0245デフォルトの名無しさんNGNG
>>243
RegSetValueEx

これでわからなければ残念だが 244 の言うとおり
0246デフォルトの名無しさんNGNG
チェックボックスを縦一列にびっしり並べたいのですが、
一つ一つの縦幅の値をどのようにして決定したらよいかわかりません。
WM_CTLCOLORBTNでデバイスコンテキストを受け取れば、
GetTextMetricsで文字の高さを得て近い事はできるかなあと思いましたが
もっと綺麗な方法があるかなと思って質問させていただきました。
よろしくおねがいします。
0247デフォルトの名無しさんNGNG
プリンタなどの特殊なDC以外では、文字列の高さはフォントで決まる。どこでもいいから
スクリーン関係のHDCを取得して、使用するフォントで高さを一回求めればいい。

GetDC(0) でもいいんじゃないの、たぶん。
0248デフォルトの名無しさんNGNG
醜悪なインターフェイスの典型
0249デフォルトの名無しさんNGNG
統一されたインターフェイスの典型
0250デフォルトの名無しさんNGNG
TrueTypeフォントデータからLineTo,MoveToで描画可能な線情報を
抽出したいのですが、何かいい方法はないでしょうか?

【現在のロジック】
DIBに文字を描画 → 輪郭だけのビットマップ画像(袋文字状態)を作成 →
ビットマップの輪郭を一筆書き線の情報に変換

一筆書き線の情報をLineTo,MoveTo描画すると元の文字の輪郭らしきものにはなるが
美しくない。

TrueTypeフォントデータから直接LineTo,MoveTo座標を抽出する方法があればベストです。
どなたか知ってらっしゃる方がいればよろしくお願いいたします。
0251デフォルトの名無しさんNGNG
GetGlyphOutline
曲線データだけどね。
0252デフォルトの名無しさんNGNG
>>250
ベジェ曲線かBスプライン曲線について学んだ後の
方がいいと思うよ
0253デフォルトの名無しさんNGNG
ファイルのマッピング管理をOSに任せる為に、
メモリマップドファイルを使っています。
この時、メモリへの書き込みに応じて
自動的にファイルサイズを拡張するにはどうしたらいいでしょうか。

試しにCreateFileMappingにmaximumSizeを与えてみたところ、
メモリにアクセスしなくてもmaximumSizeのサイズでファイルが作成されるようです。

OSがページフォルトを検出して勝手に拡張してくれると非常に楽なのですが、
不可能であれば代替策を教えていただけると助かります。
0254デフォルトの名無しさんNGNG
>>253
不可能です。代替策もありません。
一度マッピングを破棄して、再度マップしなおす他に方法はありません。
実装方針を見直すしかないと思います。
0255デフォルトの名無しさんNGNG
>>254
ということは、自分でキャパシティを設けて、アクセスの度にチェック、
キャパシティを超えていたらコミット、というコードを書くのと大差ないわけですね。

あ、でも基本的に読み書きがランダムだから、
必要な部分だけファイルから読み出したり書き出したりするよりかは
再マップした方がいいのかもしれません。

やりたい事はバーチャルなファイルシステムに類するような事なのですが。
0256デフォルトの名無しさんNGNG
>>255
class CFileMap : {
public:
void* Map(fpos_t start, size_t length);
void* MapNext(size_t length);
};
みたいなクラスで適当に大き目のサイズだけマップしつつ必要に応じて再マップってのが
良いような気がします。ReadしてWriteするよりかは性能でると思う。

扱うデータが動画等の巨大なものでなければ、処理中はすべてオンメモリで処理するコードでも
良いような気もしますけど、それではまずそうですか?
0257253=255NGNG
>>256
にゃるほど。

> 処理中はすべてオンメモリ

それはマッピングせずにということですか?
それだと初回の読み出しに全て読み出さなきゃいけないので無駄が多いと思うのですが、
イマイチ理解出来ていなそうなので解説お願いします。
0258デフォルトの名無しさんNGNG
>>257
ファイルサイズ分のメモリを、とりあえず
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/memory/base/creating_guard_pages.asp
で説明されているような Guard Page で割り当てておいて、初回アクセス時に実際にファイルから読み込む、
というようなノリです。

でもメモリ領域とファイルとの関連を管理しなきゃいけないので、あまり面白くないですね。
トリッキーだし。
0259253NGNG
>>258
Guard Pageって面白いですね。
フォルト検出に近い事が自分で出来るのか。

でも毎回テストしなくてはいけないという点でやはり不便ですね。
かといって、毎回再マップしてると開放の度に強制的なコミットで重たそうな気もします。
テストしてみないとなんとも言えませんが。
0260デフォルトの名無しさんNGNG
Shellプログラミングについての日本語本てある?
ShellってIShellFolderとかね。
0261デフォルトの名無しさんNGNG
>>259
毎回テストする必要はないんでない?
ガードページを読み書きすると、SEH が投げられるので、SEH のハンド
ラでガードを解除してファイルをロードして、SEHが投げられたところ
から実行を続行すればいいような。
0262デフォルトの名無しさんNGNG
親が使っているノートパソコンにはマウスを付けているんですが、キーボード手前の
ポインタを動かせる装置が誤動作をするらしくて、勝手にマウスポインタが動いたり、
クリックされたりするらしいのです。
それでどうにかしろと言われたのでマウスのクリック(できれば移動も)を封じることに
しようと思うのですが、この場合はSetWindowsHookExを使うという方向でよいでしょうか?
0263デフォルトの名無しさんNGNG
>>262
素直にタッチパッドの禁止をして置け。
・メーカのサポートデスク
・取り説
・オンラインヘルプ
のどれかでそのやり方がわかるだろ。
0264デフォルトの名無しさんNGNG
>>263
さっきまで練習にちょうどいいやって思ってやってましたが、技量が足りないような
気がしてきました。やっぱそちらの手段をとるべきですね。
ただ、そのノートはPentiumの233とかいう古いもので、しかも一月くらいに知り合いから
三万か五万で買ったものらしいです。

とりあえず明日にでもサポートに電話してみようと思います。
板違いになりますのでここらで失礼します。レスありがとうございました。
0265デフォルトの名無しさんNGNG
Pentium233 noteで3〜5万は高いな…
0266デフォルトの名無しさんNGNG
Windows 2000で
CreateToolhelp23Snapshot(TH32CS_SNAPMODULE,PID)
にいったきり、戻ってこない場合があるのですが
回避方法とかないでしょうか?
0267デフォルトの名無しさんNGNG
23 じゃだめだろ、32 では?

っていうボケはともかく Win2k なら PSAPI を使った方がいいよ
0268デフォルトの名無しさんNGNG
API学ぶのに一番適した参考書は何?
0269デフォルトの名無しさんNGNG
msdン
0270253NGNG
>>261
そうですね。勘違いでした。
ひとまず頑張ってみます。ありがとうございました。
0271266NGNG
WinBugsに書いてあったのをコピペしたので、23になっていました。すみません。

PSAPI使うしかないんですかね?
kernelに実装されているので、動かないことがあるのが
なんとなく悔しくて質問してしまいました。

ありがとうございました。>>267
0272デフォルトの名無しさんNGNG
>>247
ディスプレイのDCなら、どのウィンドウで取得したものでも
フォントの高さは同じなんですね。わかりました。ありがとうございました。
レス遅れてすいません。
0273246NGNG
ただいま。
今試してみたのですが、サイズを文字の高さであるして並べると
押してみるとわかるのですが微妙に重なってました。
このコントロールをきちんと丁度表示でき、それでいて余らないサイズを
知る方法はありますか?おしえてくださいお願いします。
0274デフォルトの名無しさんNGNG
>>273
ボックス部分やテキスト部分をどのくらいの大きさで描画するかは
チェックボックスの勝手だろうから決められないんじゃない?
将来のOSでまたデザインが変わるかもしれないよ。

もしも使う環境を限定していいんだったら、
フォントの高さにどれくらい加えればちょうどいいかを
実際に測って決め打ちしちゃえば?
0275246NGNG
あぁ、これと限定できない問題ってことですね。
そうなるとフォントの高さにこれくらいなら大丈夫だろうという
値を加えて作るくらいしかないのですかね

どうもありがとうございました
0276デフォルトの名無しさんNGNG
単に GetWindowRect() では駄目なの?
0277デフォルトの名無しさんNGNG
oioi
0278デフォルトの名無しさんNGNG
レッドカード?
0279デフォルトの名無しさんNGNG
そのGetするRectはWhoがSetするのだ?
0280デフォルトの名無しさんNGNG
Checkbox の高さは 8 Dialog Units。
スクリーン座標系に変換するには、適切なフォントが設定されたウィンドウでMapDialogRectを使う。
でよかったと思うけど。

ちなみに1行分の EDIT は 12 Dialog Units。
0281デフォルトの名無しさんNGNG
>>280
そういったコントロールメトリクスの一覧とかって
どこかにまとめられていますか?
0282デフォルトの名無しさんNGNG
>>280
それってGetDialogBaseUnitsが元になってない?←MSDNにはそこまで書いていない
全く高さが合わないんすけど。
俺の指定したDLGTEMPLATEの中身がおかしいのかな?
一応指定したフォントでSET_FONTが各コントロールに送られているのだけれども。
0283282NGNG
あ。勘違いでした
忘れてくださいぃぃぃ
0284デフォルトの名無しさんNGNG
別にイイジャン、それもひとつの解決方法。
俺がユーザーだったら文句言うけどw
0285デフォルトの名無しさんNGNG
WindowsのAPIでしりとりしよう!
0286デフォルトの名無しさんNGNG
いくぞ!
SetWindowRegion()
0287デフォルトの名無しさんNGNG
別スレ立てた方がいいかな、これ
0288デフォルトの名無しさんNGNG
>>286
否、ChangeServiceConfig2
0289288NGNG
間違えて書き込んでしまった…
0290デフォルトの名無しさんNGNG
あのぉ、gdi.dllとかのソースはどこかで見れないんでちゅかあ?
0291デフォルトの名無しさんNGNG
>>290
マイクロソフトに訊け
0292デフォルトの名無しさんNGNG
プログラマなら機械語ぐらい嫁
0293デフォルトの名無しさんNGNG
リバースエンジニアリングでタイーホ
0294デフォルトの名無しさんNGNG
>>291
( ´_ゝ`)ウフーン
0295デフォルトの名無しさんNGNG
別スレッドからSendMessageしたところ
送られたスレッドが送り元スレッドでEnterされたクリティカルセクションの開放を待っていて
両スレッドだんまりになってしまいました。
PostMessageなら大丈夫ということで、
送りたかったメッセージWM_SETTEXTをpostしたのですがどうやら無視されてしまいます。
WM_SETTEXTはpostできないのでしょうか?
0296デフォルトの名無しさんNGNG
>>295
MSDNでPostMessageの説明嫁。

> 非同期メッセージ関数(PostMessage、SendNotifyMessage、
> SendMessageCallback の各関数)を使って、WM_USER 未満の
> メッセージ(メッセージの値が 0x8000 未満)を送信する場合は、
> メッセージのパラメータでポインタを使うことはできません。

無視される理由がここにあるのかは別の問題だけど。
0297デフォルトの名無しさんNGNG
SetSystemPowerStateで休止状態、或いはサスペンドにした後、
ある時刻に自動復帰するようににはどのようにすればいいのでしょうか?
0298デフォルトの名無しさんNGNG
>>296
メッセージループは止めないようにしてSendMessageに変えました
0299デフォルトの名無しさんNGNG
>>297
タスクをスケジュールする
0300デフォルトの名無しさんNGNG
>>296
変な説明だな
動的に割り当てたメモリへのポインタも渡せない、と聞こえる
0301デフォルトの名無しさんNGNG
SendMessageとSendNotifyMessageの違いって何?
もしかしてWM_NOTIFYって、SendNotifyMessageでしか送っちゃいけない?
0302デフォルトの名無しさんNGNG
SendNotifyMessageは別スレッドにMessageを送るとすぐに制御が返る。
0303デフォルトの名無しさんNGNG
>>302
つまりSendMessageとPostMessageの中間ってことかしら。
0304デフォルトの名無しさんNGNG
>>303
そんな感じだわな
0305デフォルトの名無しさんNGNG
クールバーにメニューバーを入れることって出来るんですか?
0306デフォルトの名無しさんNGNG
メニューバーを移動したいと思うユーザーがどれほどいるでしょうか
0307デフォルトの名無しさんNGNG
答えられないので論点をずらして逃げようとしてる人がいますね
0308デフォルトの名無しさんNGNG
>>305
WTLのソースなり、猫 ttp://www.kumei.jp/c_lang/sdk4/sdk_311.htm なりを参考に。
基本的に面倒くさい。
0309デフォルトの名無しさんNGNG
>>308
ありがとうございます。
「猫でも〜」に紹介されていたんですか、気が付きませんでした。

>>306
痛い所を突いてきますね・・・
ちょっとした画像処理ツールを作ろうと思ってWin32APIをいじくってるんですが、
ウィンドウのデザインばかりが気になってちっとも本題に入ることができません。
IEがこんなデザインにしたから気になるんですよ。
IEのバカッ!(><)
0310デフォルトの名無しさんNGNG
IEやOfficeみたいなUIにしてくれっていうユーザも結構いるんだよね
0311デフォルトの名無しさんNGNG
最近sdk始めてみたんですがこれどうでしょうか?
ttp://up.isp.2ch.net/up/0672f2c6c31e.zip
0312デフォルトの名無しさんNGNG
↑ウィルス
0313デフォルトの名無しさんNGNG
>>312
神
0314デフォルトの名無しさんNGNG
通報しますた
0315デフォルトの名無しさんNGNG
binutilsにあるreadelfみたいにPEオブジェクトファイルの
構造を分りやすい形で表示してくれるツールとかありますか?
MS純正のものでもなくてもいいです。フリーのツールでも。
0316デフォルトの名無しさんNGNG
PEオブジェクトファイルの
構造を分りやすい形で
解説してくれたら作りますよ。
0317デフォルトの名無しさんNGNG
自己レスです。
>link /dump /all hello.obj
これで見れました。
0318デフォルトの名無しさんNGNG
>>282
GetDialogBaseUnit は、ウィンドウやフォント等指定する引数もなく常にシステムフォントの
メトリクスをもとにした値を返します。んで使い物にならない。MapDialogRectがお勧め。
もう解決したみたいだけど、読んでる人向けに補足ですた。
0319デフォルトの名無しさんNGNG
>>309
ちょっとした物作るんでGUIはちまちまいじりたいんならVBやDelphiみたいな
RADツール使うといいんじゃないか?すくなくともDelphiならマウスでぽちぽち
配置していくつかプロパティいじればできたと思う。
全部RADでやってもいいし、コアはC++でやってもいい。
0320デフォルトの名無しさんNGNG
突然質問で失礼します。
CDialogの継承クラスにおいて
ワーカスレッドからメインスレッドに15msecおきに
SendNotifyでユーザ定義メッセージを送って
関数を実行させようとしています
しかし、どうしてもランダムに
200msec前後の遅延が発生します
どうにか15msecぐらい間隔で目的の関数を
呼び出すことはできないでしょうか?
どうか、アドバイスをよろしくお願いします
0321デフォルトの名無しさんNGNG
ウィンドウメッセージを使ってその精度が維持できると思っているのが間違い。
timeSetEvent() でもつかったら?
0322デフォルトの名無しさんNGNG
初心者の質問に答えていただきあいがとうございました。
0323デフォルトの名無しさんNGNG
モードレスで作成したプロパティシート(ページではない)を削除する
方法ってどうしたらいいのでしょう?
モードレスにしたプロパティシートのハンドルを引数にして
DestroyWindowでおこなうとWindows APIバイブル2のサンプルCD
(CHAPTER4のGETTABCT.MAK)ではなっているのですが、VC.NET2002
でおこなうと、終了処理の後にハングしてしまいます。
宜しくお願いします。
0324デフォルトの名無しさんNGNG
ReadDirectoryChangesW を使って,
全ドライブのファイル操作の監視をしたい.

CreateFile で監視するディレクトリィのハンドルをとって,
わたしてやるんだが,例えば,cドライブを見たければ,
"c:\\" とか指定すればいいんだが,
全ドライブを指定することはできないだろうか?

GetLogicalDriveStrings で生きてるドライブ名をとって,
個別にそれぞれ CreateFile で開いて,
ReadDirectoryChangesW で監視するってのは
あほらしくてやってられない.

一発でできないだろうか?
0325デフォルトの名無しさんNGNG
休止状態から指定時刻に復帰するプログラムを作りたいのですが、どのAPIを使用すれば良いのでしょうか?
アドバイスお願いします。
0326デフォルトの名無しさんNGNG
>>324
盲目的に全ドライブ監視は危険。メディアの入れ替えで恐ろしいことが起こる。
やるなら個別でやるべき。
0327デフォルトの名無しさんNGNG
他のアプリが最大化しているか、などの状態を取得するAPIありますか。
0328デフォルトの名無しさんNGNG
>>324
漏れの6連装CDドライブをガチャガチャ言わすのはオマエか!
0329デフォルトの名無しさんNGNG
>>327
ウィンドウを列挙して、ウィンドウが最大化しているかどうか調べれば良いかと
0330デフォルトの名無しさんNGNG
ありがとうございます。
列挙と言うとEnumWindowとかですか?
具体的なキーワードを頂けるとありがたいです。
0331デフォルトの名無しさんNGNG
半角を全角にするAPIはありませんか?
0332デフォルトの名無しさんNGNG

void replace(char* text,char* key,char* rep)
{
  char *p,buf[256];
  p = strstr(text,key);

  while(p!=NULL){
    *p='\0';
    strcpy(buf,p+strlen(key));
    strcat(text,rep);
    strcat(text,buf);

    p = strstr(p+strlen(rep),key);
  }
}

[使い方]

replace(buf,"ア","ア");
replace(buf,"イ","イ");
replace(buf,"ウ","ウ");
replace(buf,"エ","エ");
replace(buf,"オ","オ");
replace(buf,"カ","カ");
replace(buf,"キ","キ");
replace(buf,"ク","ク");
replace(buf,"ケ","ケ");
replace(buf,"コ","コ");
replace(buf,"サ","サ");
0333デフォルトの名無しさんNGNG
>>331
LCMapString
0334デフォルトの名無しさんNGNG
>>333
さんくすくす。
0335デフォルトの名無しさんNGNG
>>327
IsZoomed
IsIconic
GetWindowPlacement
0336デフォルトの名無しさんNGNG
>>335
おおー、ありがとうございます
0337デフォルトの名無しさんNGNG
>>321
マルチメディアタイマを使ってみたのですが
10000回に1度くらいの割合で
イベント10回くらいをスルーしちゃって
コールバック関数内で呼び出してある関数が
実行されてないようです
どうしてでしょう?
コールバック関数内の処理を軽くしても
改善されませんでした
原因に心当たりのある方
是非アドバイスをよろしくお願いします
実行されていないようです
0338デフォルトの名無しさんNGNG
俺を最強のプログラマにするAPIはありませんか?
0339デフォルトの名無しさんNGNG
TerminateProcess(>>338, 0)
0340 ◆FIcNi4f8js NGNG
>>337
必ずコールバックされると思っているのが間違い。
コールバック関数の中で前回呼ばれた時のシステム時間との時間差を計算して、
呼ばれなかった分の穴埋めを行う処理をしないといけない。
0341デフォルトの名無しさんNGNG
ウィンドウの枠の上下左右の一箇所だけ枠なしとかにすることはできる
でしょうか?
0342 ◆FIcNi4f8js NGNG
SetRegion とか LayeredWindow とかを使うとできるよ。
0343デフォルトの名無しさんNGNG
>>341
WM_NCHITTEST と WM_NCCALCRECT と WM_NCPAINT と WM_NCACTIVE あたりを
自前で実装すれば可能。
0344デフォルトの名無しさんNGNG
>>337
1.コールバック関数から SendNotifyMessage を呼んでいる時、メインスレッドで
  直前のメッセージ処理が終わるまで待っている状態。
  メッセージを使わないようにする。
  表示の更新だけなら InvalidateRect のみとか、
  直接 dc 取得してワーカースレッドから描いてしまうとか。
2.GDI に対して描画要求を過剰に繰り返し行うと起こる現象。
  描画部分を小さくしたり、DrawDibDraw とか DirectDraw を使えば良くなるかも。
0345デフォルトの名無しさんNGNG
>>340
コールバック関数内にグローバル変数の
イベント発生カウンタを持っているのですが
そのカウンタとコールバック関数内の
一部の関数が走った回数が一致しません
イベントカウンタの方が大きい値になります
従って、コールバック関数は呼ばれているのですが
その中の関数が走ってないように見えます
どうしてでしょうか?
0346341NGNG
>>342,343
さんくすこ
0347デフォルトの名無しさんNGNG
>>345
ファイルIOはそれなりに高速なので、ログでも書き出して動作を検証すべき。
あとコールバック処理中に再びコールバックが呼ばれるケースとかも考慮するべき。
0348デフォルトの名無しさんNGNG
>>347
ありがとうございます
0349デフォルトの名無しさんNGNG
VS.NETで作成できるWindowsインストーラーでサイレントインストール時に
インストール先をiniファイルなどやオプションなどに記述して
変更する方法はないものでしょうか。
宜しくお願いいたします。
0350デフォルトの名無しさんNGNG
微妙にすれ違い
0351デフォルトの名無しさんNGNG
IMEが変換を確定したタイミングはどうやって知る事ができますか
0352デフォルトの名無しさんNGNG
>>351
WM_IME_COMPOSITION とかでどう?
0353デフォルトの名無しさんNGNG
>>349
こちらへどうぞ。

インストーラー相談室
http://pc5.2ch.net/test/read.cgi/tech/997727326/
0354デフォルトの名無しさんNGNG
「未解決の外部シンボル
"int __cdecl InitInstance(struct HINSTANCE__ *,int)"
(?InitInstance@@YAHPAUHINSTANCE__@@H@Z)
が関数 _WinMain@16 で参照されました。」
というエラーが出るのですが、何をリンクすればこのエラーがなくなるのでしょうか?
#includeしているのは
#include <windows.h>
#include <windowsx.h>
#include <winsock2.h>
#include <stdlib.h>
#include "resource.h"
なのですが、、、このエラーだけはどうすれば回避できるのか
わかる方がいましたら教えてください。
0355デフォルトの名無しさんNGNG
>>354
リンクするライブラリが足りないとか?
0356デフォルトの名無しさんNGNG
Win32 API の CreateThread を使うときに,
実際スレッドで動かす函数として
ある特定の型の函数への指示子をわたしてやるんだが,
この函数って大局じゃないとうまく動かない.

類の要員函数ではいけないの?
0357デフォルトの名無しさんNGNG
氏ね
0358デフォルトの名無しさんNGNG
>>354
恐らくなにかのサンプルをコンパイルしようとしてるかどっかからのコピペ
コードなんだと思うけどInitInstanceは普通自分で定義するんじゃないか?
ソース全部見ないと正確にはわかりません。

>>356
クラスメンバなら大丈夫。そうじゃないときは暗黙のうちにthisがわたされる
から無理。4番目のパラメータにthisわたしてクラスメンバからメンバ関数を
呼び出せばいいと思う。
0359デフォルトの名無しさんNGNG
>>354
InitInstance というと AppWizard が自動生成するスケルトンに入っている関数か?
CreateThread に渡そうとして引数を変えたのにプロトタイプを直し忘れたとか、そーゆーオチか?
0360デフォルトの名無しさんNGNG
354です。MAPI.Libをリンクするとそのエラーはなくなりましたが、
C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\PlatformSDK\lib\MAPI.Lib
: fatal error LNK1136: ファイルが無効であるか、 または壊れています。
というエラーが出て結局ビルドできません。
0361デフォルトの名無しさんNGNG
>>360
単に、別のリンクエラーが出て、そこで止まっただけ
0362デフォルトの名無しさんNGNG
>>360
関係なさそうだな
そんなとこに InitInstance なんてねえもん
0363デフォルトの名無しさんNGNG
該当スレが分からなかったので、ここで質問させてください。

すでに起動しているWindwosMediaPlayerを
外部からメッセージを送って操作する方法はありますか?
具体的には、あるタイミングで、WMPですでに選択されている
ファイルの再生をスタートさせるだけです。

よろしくお願いします。
0364デフォルトの名無しさんNGNG
WindowsサービスからユーザがWindowsにログオン/ログオフするのを検知したいんだけど、
どうしたらいいんでしょうか?

とりあえずイベントログを定期的にチェックして検知とか考えました。
そんなめんどくさいことしないでもイベント通知してもらえたりするんでしょうか?

GINA使わないでやりたいです。

よろしくお願いします。
0365デフォルトの名無しさんNGNG
函数と書きたいだけの厨房発見
0366デフォルトの名無しさんNGNG
厨房と書きたいだけの(rya
(ryaと書きたいだけの
と書きたいだけの
0367デフォルトの名無しさんNGNG
>>354
InitInstance は Windows API ではないので、中身は自分で書きましょう。
ウィンドウクラスの登録用に、習慣的にその名前を使っていただけ。
0368デフォルトの名無しさんNGNG
>>363
WM_COMMAND送りつければいいんじゃ?
0369デフォルトの名無しさんNGNG
>>363
MicrosoftR Windows Media? Player 7 SDK
Windows Media Player コントロール Version 6.4
ただし VBアプリから起動させる場合
0370デフォルトの名無しさんNGNG
>>354
int WNAPI WinMain(〜)
が書いてある行より手前に
int InitInstance(HINSTANCE, int);
と書いてみろ。
0371デフォルトの名無しさんNGNG
WNAPI
0372デフォルトの名無しさんNGNG
GUIDを文字列にしてくれるAPIはありませんか?
自分で作ってもいいのですが、標準で用意されているような気がしてなりません。
0373デフォルトの名無しさんNGNG
StringFromGUID2
0374デフォルトの名無しさんNGNG
猫でもわかるの122章のプログラムを実行したのですが、次のような問題が発生します。
・DLLのロードに失敗する。
・hMyLibをstaticにしないと強制終了する。
・WM_PAINTメッセージが複数回ディスパッチされる。
元のソースコードは、構文的に間違っていないと思います。
対処法が全く分からず、困っています。どうすれば良いのでしょうか?
OSはWinXPHome、コンパイラはBCCを使用しています。
0375デフォルトの名無しさんNGNG
リストビューについて質問です。
カラムの挿入でiColに好きな値を設定できないようなのです。
iOrderで順番も入れ替わるし、iColとサブアイテム番号の対応は自分で管理しないといけないのでしょうか?
0376デフォルトの名無しさんNGNG
>>374

もうちょっと詳細に教えてくれ。

>・DLLのロードに失敗する。
LoadLibraryの後でGetLastErrorを呼んでエラーコードを調べる。

>・hMyLibをstaticにしないと強制終了する。
できればどの行で強制終了するのかデバッガ(BCCじゃ無理か?)で調べる。

>・WM_PAINTメッセージが複数回ディスパッチされる。
これは多分仕様。(違うかも)
0377374NGNG
>>376
エラーコードを調べようとして、次のようにソースコードを書き換えたのですが、強制終了します。
case WM_PAINT:
hMyLib = LoadLibrary( "dll04.DLL");
wsprintf(str,"%d",GetLastError());
MessageBox(hWnd,str,"",MB_OK);
書き方に問題があれば、指摘して下さい。(^_^;)
0378デフォルトの名無しさんNGNG
>>377
DLLの方に問題があったりしないか?
0379374NGNG
MessageBox(NULL,"","",MB_OK);をWM_PAINTメッセージの処理部分の所々に挿入しながら検証していたのですが、
コンパイルを繰り返す内に、メッセージボックスが表示されなくなり、強制終了するようになりました。
最初は、画面の右下の方に表示されていました。中央に表示されないのが変だと思っていたのですが...。
また、メッセージボックスが表示される時に鳴る警告音が立て続けに20回くらい鳴ります。
そのため、WM_PAINTメッセージが複数回ディスパッチされていると判断しました。
>>378 実行ファイルと同じ場所に置いてあるので、問題ないと思うのですが...。
0380デフォルトの名無しさんNGNG
>>379
WM_PAINTハンドラ→MessageBox→モーダルループ→無効領域がクリアされてない→WM_PAINT発生→WM_PAINTハンドラ→・・・
で無限ループに陥ってるかも。
0381デフォルトの名無しさんNGNG
それはWM_PAINT処理にMessageBoxなんか入れたことが原因だろ。
0382デフォルトの名無しさんNGNG
つか、WM_PAINTでメッセージボックス使うなよ・・・

OuputDebugStringでも使っとけ

デバッグ情報が表示できないなら、テキトーにフリーソフト使うと吉
ttp://search.vector.co.jp/search?query=OutputDebugString
0383374NGNG
>>380
>>381
>>382
ありがとうございます。Turbo Debuggerをインストールしているのですが、使い方が分からないので困っていました。(^_^;)
紹介して頂いたデバッガを利用してみたいと思います。
0384382NGNG
>>383
勘違いされてるような気がしないでもないので、
補足しておくと、
OuputDebugStringは文字列をデバッグ出力に送るAPI

リンク先のは、OuputDebugStringの出力を表示するツール

ちゃんとしたデバッガを使ってるなら、
それの使い方を覚えた方がいいと思われ
0385374NGNG
>>384
いろいろ教えて頂きありがとうございます。Windowsプログラミングで簡単に文字列を出力する方法を知らなかったので、
仕方なくMessageBox関数を使用していました。OuputDebugString関数を使えば良いのですね。
>>379
無限ループになるのは当然ですね。つまらないミスでした。反省しています。(^_^;)
>>376
GetLastError関数の戻り値は0でした。やはり、DLLのロードに失敗しているようです。
0386374NGNG
> >>379
> 無限ループになるのは当然ですね。つまらないミスでした。反省しています。(^_^;)
すみません、リンク先を間違えました。>>379ではなく>>380です。(^_^;)
0387デフォルトの名無しさんNGNG
MessageBoxをループ内に配置するとエライ事になる。

ループ離脱条件を戻り値IDOK以外にしていたとする。
DestoryWindow()が親に送られたら地獄。
応答不能・シャットダウン不能となる。
DestoryWindow()APIがダイアログをIDOKで閉じるからである。
戻り値でループ離脱をする場合、十分注意しよう。
0388デフォルトの名無しさんNGNG
>>385
winerror.hを見れば分かるが、
GetLastErrorの戻り値が0ということは直前のAPIは成功している

http://msdn.microsoft.com/library/en-us/debug/base/system_error_codes__0-499_.asp
0389デフォルトの名無しさんNGNG
質問です。
階層構造が複雑で、子孫ウインドウが多数存在するトップレベルウィンドウがあります。
ウィンドウを非アクティブからアクティブにしたときに、そのウィンドウが
非アクティブになる前に持っていたキーボードフォーカスの位置を元に戻したいのですが、
WM_ACTIVATE(WA_INACTIVE) が送られてくるタイミングで GetFocus() してフォーカスを保存しようとしても、
ウィンドウを最小化したときなどはすでにフォーカスが失われているらしく、うまくいきません。

現在はすべてのウィンドウプロシージャで子ウィンドウのフォーカスの移動を監視し、それを
親ウィンドウに次々と通知することで実現しているのですが、あまりスマートとはいえません。
もし、もっとウマーな方法があればご教示ください。
0390374NGNG
>>388
すみません、勘違いしていました。発言を撤回します。(^_^;)
>>384
OuputDebugString関数を使用してみたのですが、
"未定義の関数 'OuputDebugString' を呼び出した"
というエラーメッセージが表示されます。windows.hはインクルードしてあるのですが、
別のヘッダファイルをインクルードする必要があるのでしょうか?
0391デフォルトの名無しさんNGNG
>>390
winbase.h
0392デフォルトの名無しさんNGNG
OutputDebugStringだろ。
0393382NGNG
漏れがタイポしたもより・・・欝だ詩嚢
0394デフォルトの名無しさんNGNG
>>390
つーかこういう時ってまずタイポ疑えよ。
エラー起こるたびに訊いてるようじゃ進歩ねーぞ。
0395374NGNG
>>392
>>384のレスの関数名をそのまま使用していたので、スペルのミスに気が付きませんでした。
指摘して頂いてありがとうございます。(^_^;)
0396デフォルトの名無しさんNGNG
>>374
悪いことは言わん、これ入れとけ。
http://www.microsoft.com/msdownload/platformsdk/sdkupdate/home.htm
0397デフォルトの名無しさんNGNG
っていうか、BCCだとTestFuncではなく_TestFuncになるからじゃね?
0398デフォルトの名無しさんNGNG
[はい][いいえ]の2つのボタンがあって、
右上の[×](クローズボタン)も有効なメッセージボックスって、
「MessageBox()系のAPIでは作れない」ってことでよろしいでしょうか…?
0399374NGNG
DebugTracerというツールを使ってOutputDebugStringの文字列を表示することができるようにました。
しかし、エラーコードは6(無効なハンドル)でした。環境に問題があるのでしょうか?
>>396
SDKをアップデートする必要があるのでしょうか?WinXPHomeSP1で作業しているのですが、
SP2に移行した方が良いのでしょうか?
0400デフォルトの名無しさんNGNG
>>399
hMyLibがNULLかどうかも判断せずに、GetLastErrorしてOutputDebugStringしてないか?
0401デフォルトの名無しさんNGNG
これだからタダコンパイラ使ってるような奴はイヤなんだよ!
0402デフォルトの名無しさんNGNG
>>398
作れません。
Xで閉じてキャンセルなら「はい/いいえ/キャンセル」の形式にしないとユーザわけわかんなくなるし・・・
0403398NGNG
>>402
どうもありがとうございます。
> Xで閉じてキャンセルなら「はい/いいえ/キャンセル」の形式にしないとユーザわけわかんなくなるし・・・
確かにおっしゃる通りだと思います。
ただ、例えばデスクトップ上などでファイルを右クリック⇒削除を選ぶと、
>>398 のようなダイアログボックスが表示されるので、可能性がないわけではないかな…と思いまして。
0404374NGNG
>>399
hMyLibは、NULL(=0)ではなく、012B0000という値を持っていました。LoadLibraryは失敗していなかったようです。
しかし、エラーコードをチェックすると、その値が無効であると言われてしまいます。
0405397NGNG
>>404
ほとんどの場合、関数が成功した場合、SetLastErrorされないので、
GetLastErrorしても意味ない。

つーか、GetProcAddressのTestFuncを_TestFuncに書き換えれば、うまくいくはず。
0406374NGNG
>>405
ありがとうございます。SetLastErrorとGetLastErrorの働きがよく分かりました。
指示通りに書き換えてみたのですが、うまくいきません。
0407デフォルトの名無しさんNGNG
ここはお前の日(AAともにry
0408デフォルトの名無しさんNGNG
黙ってりゃ報告くらいしろと騒ぐし
0409デフォルトの名無しさんNGNG
グローバルフックを用いてキー入力をフックして、
フックプロシージャの中で、目的のウィンドウにキー入力を送信したいです。

どういう風に目的のウィンドウのウィンドウハンドルを取得するのがスマート、
というか一般的なんでしょうか

0410ぬるぽNGNG
必死だな
0411デフォルトの名無しさんNGNG
>>409
目的のウィンドウが自分で作ってるウィンドウなら、共有メモリ領域にハンドルを書いておく。
そうでないなら、EnumWindow とかでゴリゴリ探すとか、Spy++ で手動で探したときと同じ
方法で探す。
0412デフォルトの名無しさんNGNG
>>409
目的のウィンドウのタイトルotウィンドウクラス名がわかってるならFindWindowも
0413409NGNG
>>411
>>412
ありがとうございます

自前のウィンドウに送りたいだけなので、
色々やってみます
0414デフォルトの名無しさんNGNG
お兄ちゃんお願い!>>389を助けて!
0415389NGNG
>>414
あきらめかけていたのですが、どうもありがとうございます。
でも、レスをいただけないということは、いい方法がないのかも・・・
0416デフォルトの名無しさんNGNG
>親ウィンドウに次々と通知することで実現しているのですが、あまりスマートとはいえません。

なんでスマートといえないんだ?
君のプログラムは親関数に次々と return することで実現するより
グローバル変数のほうがスマートといえるのか?
jmp_buf みたいに親ウインドウのハンドルを次々に渡しておいて
通知はそのハンドルで一挙にって手もあるが、俺は推奨しないなあ・・・
0417デフォルトの名無しさんNGNG
もしかして GetWindowLong / SetWindowLong を知らないのか?
0418デフォルトの名無しさんNGNG
>>417
しっているとなにがどうなるんだ?
0419デフォルトの名無しさんNGNG
説明するのだるいんでキーワードだけ出しとく
WNDCLASS::cbWndExtra
GWL_USERDATA
ポインタをキャスト
0420デフォルトの名無しさんNGNG
やっぱりただのアホだったか
0421デフォルトの名無しさんNGNG
痛いネタいっぱつお見舞いするか
0422デフォルトの名無しさんNGNG
>>419
全然スマートじゃない気が
0423デフォルトの名無しさんNGNG
誰の発言かわからなくなるまでしばらく沈黙
0424デフォルトの名無しさんNGNG
sageてないのは二人しかいないような。
0425389NGNG
お返事が遅くなりました。レスをくださった皆さん、どうもありがとうございます。

>>416
> なんでスマートといえないんだ?
すみません、「スマートといえない」という表現には語弊がありました。
ただ、取得のタイミングさえ合っていれば GetFocus() で一発で済むところを
わざわざ次々と橋渡ししなければならない構造にひっかかるものはありました。
GetFocus() を実行するのにいいタイミングで送られてくるようなウィンドウ
メッセージが存在するということが、実は一番期待していた答えだったのです。

> グローバル変数のほうがスマートといえるのか?
いえ、私もできるだけグローバル変数は使わないことにしていますので、
グローバル変数を使うことをためらった結果、あのような構造になったわけです。

>>417 >>419
> もしかして GetWindowLong / SetWindowLong を知らないのか?
私へのレスでしょうか? 普通に使っていますが、この場合はそれほど
有用ではないような気が…。私へのレスでなかったらすみません。
0426デフォルトの名無しさんNGNG
>>425
いろんなフレームワークで行っているPreTranslateMessageみたいなことやれば?
0427デフォルトの名無しさんNGNG
MFCのフレームワークでさえ、結構面倒な機構を準備してフォーカスの
復元をしてるから、一発で解決するようなメッセージは無いと思う。
0428374NGNG
> ・hMyLibをstaticにしないと強制終了する。
> ・WM_PAINTメッセージが複数回ディスパッチされる。
WM_PAINTハンドラにMessageBoxを置いたことが原因でした。(^_^;)
> ・DLLのロードに失敗する。
GetProcAddressに失敗していました。エラーコードは127(指定されたプロシージャが見つからない)です。
実は123章のプログラムでもファイルマッピングオブジェクトの読み出しに失敗します。
名前を指定する方法に問題があるのでしょうか?VCとBCCの仕様の違いでしょうか?>>405
0429デフォルトの名無しさんNGNG
>>428
DLLは自作か?その際に名前のエクスポートはしてるのか?
エラーコードが出てるんだからまずその内容を調べろよ。
0430デフォルトの名無しさんNGNG
回答者のレベル低すぎ・・・。

DepedencyWalkerとかでdll内部の関数名を確認しろ。
ま、DepedencyWalkerがなくてもdllの中身が見れるはずだが。
VCでビルドした場合だとC++のデフォで関数名が変わるのは常識だぞ。
エクスポート関数名に@とか混じってないか?
0431デフォルトの名無しさんNGNG
>>430
374を読んでる?
アンタもレベル低すぎですから!残念!
0432デフォルトの名無しさんNGNG
bccのデフォルトの呼び出し規約は__fastcallのはずなので

DLLの方で
#define EXPORT extern "C" __declspec(dllexport) __stdcall
EXEの方は
typedef __stdcall int (*PTESTFUNC)(int, int);
0433デフォルトの名無しさんNGNG
>>431
読解力ないな。誰も話をVCだけに限定してないだろ。
それともBCはdllの規格をMSの規則に逆らうわけか?
0434デフォルトの名無しさんNGNG
質問者はBCC使ってるのにVCの話したり、
CでのコーディングなのにC++で関数名が変わるのは常識とか言ったり
他人をレベル低いとか言ってるのに
自分もトンチンカンなレスしてるからだろ…

>それともBCはdllの規格をMSの規則に逆らうわけか?
関数名の問題なんでDLLの規格は関係ないでしょ。
0435374NGNG
>>432
やはり、うまくいきません。
元のソースコードはVCを基準に書かれているので、BCCとの仕様の違いが明確になれば、
対処できると思うのですが...。(^_^;)
0436デフォルトの名無しさんNGNG
もうVC買うかフリー版のVC使うかBCCでのサンプルを見つけろ。
0437デフォルトの名無しさんNGNG
>>374
ちゃんと調べたのか?関数名。
どうも君はPGに向いてない気がする。

↓Dynamic Dependency Walker(フリー)
ttp://www.vector.co.jp/soft/win95/util/se232578.html
0438デフォルトの名無しさんNGNG
>>434
>Cでのコーディングなのに
そんなこと書いてあった?
0439デフォルトの名無しさんNGNG
>>434
君は>>374の足りない記述に関して通常の脳内補完をしているようだ。
それは通常レベルのプログラマ相手なら正しいだろうが、
初心者相手の場合はそうではない。
多くの場合、ありとあらゆる疑いの眼差しで初心者を見守ってあげる必要があるのだ。
0440デフォルトの名無しさんNGNG
>>438
DLLのソースにextern "C"が有るから
C++の名前変形は関係ないでしょ。
0441デフォルトの名無しさんNGNG
>それともBCはdllの規格をMSの規則に逆らうわけか?

parse error
0442デフォルトの名無しさんNGNG
つーかもう初心者スレでやってよ。
0443デフォルトの名無しさんNGNG
QueryPerformanceCounter、QueryPerformanceFrequency
この2つのAPIは最近のPCでエラーが起こりますか?
たとえば、CPUによって動作しないとかありますか?
0444374NGNG
>>437
紹介して頂いたツールを利用してDLLをリストアップしたのですが、ロードしたDLLは見当たりません。
しかし、LoadLibraryには成功しています。ロードしたDLLと、それに含まれている関数の名前も、
呼出元と呼出先で相違がないことを確認しました。
0445デフォルトの名無しさんNGNG
今なら言える
心の底から氏ねと
0446デフォルトの名無しさんNGNG
>>444
Z:\>dumpbin /exports dll04.dll
Microsoft (R) COFF/PE Dumper Version 7.10.3077
Copyright (C) Microsoft Corporation. All rights reserved.


Dump of file dll04.dll

File Type: DLL

Section contains the following exports for dll04.dll

00000000 characteristics
0 time date stamp Thu Jan 01 09:00:00 1970
0.00 version
1 ordinal base
2 number of functions
2 number of names

ordinal hint RVA name

1 0 00001238 _TestFunc
2 1 00009158 ___CPPdebugHook
(ry
0447デフォルトの名無しさんNGNG
まず>>374は勉強が足りないな。
レス受けた内容についてもろくに解かってないようだし、
1日くらい試行錯誤してから書き込んだほうがいい。
0448デフォルトの名無しさんNGNG
>>443
キミの知り合いが突然、「このAPIは最近のPCでエラーが起こりますか?
CPUによって動作しないとかありますか?」って質問してきたらどうする?
返答に困るデショ。
0449デフォルトの名無しさんNGNG
>>448
高解像度カウンタは古いCPUだと使えないわけだが

>>443
IntelならPentium以降(P54なら確実、P5はしらん)
AMDは少なくともK5はサポートされてたはず
Cyrix系は不明
0450!= 443NGNG
>443 関連で興味あって調べてたら、あんま関係ないけどこんなの見つけた。
ttp://www.flipcode.com/cgi-bin/msg.cgi?showThread=00000894&forum=general&id=-1

> Joacim: どうしてWin2kマシンでは QueryPerformaceCounter の後ろ24ビットを wrap するの?
> kewldude: くそ、それ知らずに実験してた。Win2kでもフリーズするアプリがあってよ。。。
> treething: 漏れが知る限り、全部のマシンで wrap してるぜ?でも何が問題なんだ?
> kewldude: ああ、でも普通は64ビットを wrap してて、24ビットじゃねーはずなんだよ。

これはどういう問題? wrap ってどういう意味で使ってるの?
0451デフォルトの名無しさんNGNG
脳内HDDと脳内メモリの容量が小さい漏れにはプログラミングは不可能ですか?
電話の相手の苗字とかすぐ忘れるんだよ。
0452389NGNG
ずいぶん上の方に流れてしまいましたが・・・

>>426
> フレームワークで行っているPreTranslateMessageみたいなことやれば?
どうもありがとうございます。ただ、PreTranslateMessage の機構を
導入するとなると、私のイメージするものからは遠ざかってしまいそうです。

>>427
> MFCのフレームワークでさえ、結構面倒な機構を準備してフォーカスの
> 復元をしてるから、一発で解決するようなメッセージは無いと思う。
なるほど・・・MFCではほとんど組んだことがなかったので気が付きませんでした。
あきらめて今までの方法でいこうと思います。どうもありがとうございました。
0453デフォルトの名無しさんNGNG
>>444
もう1度122章のプログラムを作り直せ。
もとのソースは見るな。どこも書き換えるな。
0454デフォルトの名無しさんNGNG
.defファイルちゃんと書いてるのかな
0455デフォルトの名無しさんNGNG
>>450
output = (input)%size
って感じ。
たとえば文章を80文字で wrap すると、81文字目は次の行の先頭に表示される。
0456デフォルトの名無しさんNGNG
>>454
__declspec(dllexport) してるんだからそんな必要はない。
ラベル名に対する、ある思い込みが邪魔をしているだけだ。
0457デフォルトの名無しさんNGNG
>>456
はぁ?嘘もいい加減にしろヴォケ
defファイルきちんと書かんと@付いた変な名前になって
GetProcAddressで引けなくなるぞ
0458デフォルトの名無しさんNGNG
extern "C"が要るんだっけ?

でもそうすると他の言語から呼び出せなくなるね
0459デフォルトの名無しさんNGNG
>>457
装飾名になるかどうかはエクスポートしたかどうかとは無関係
0460デフォルトの名無しさんNGNG
↑何言ってるのかワカンネ
ほら、チョン学校で日本語やり直さないと
0461デフォルトの名無しさんNGNG
>>458
ha?
0462デフォルトの名無しさんNGNG
>>460
だいたい「変な名前」なんて用語ねえんだよ
おおかた MSU 逝く金もねえんだろ (プゲラ
0463デフォルトの名無しさんNGNG
MSDN も全部デッドコピーか
0464デフォルトの名無しさんNGNG
>>459
装飾名になるかどうかはエクスポートしたかどうかとは無関係だから、
defファイルを書いておかないと装飾名つきのままエクスポートされてしまうと言っているのだと思うが。
0465デフォルトの名無しさんNGNG
>>464
なるほど、アフォケテーイでよかったんだな
0466デフォルトの名無しさんNGNG
質問者の分際で情報小出しする馬鹿は、もうスルーしろ。


・・・・・・・・・・・・・・dllネタ終了・・・・・・・・・・・・・・・・・・・・
0467デフォルトの名無しさんNGNG
・・・・・・・・・・・・・・dllネタ再開・・・・・・・・・・・・・・・・・・・・

回答者づらをしてみたかっただけのど初心者が1人いるようだがスルーよろ
0468デフォルトの名無しさんNGNG
>>449
質問者は「最近のPC」と書いてるデショ。
質問者はもう少し情報を提供してくれないと返答できませんョ。
0469デフォルトの名無しさんNGNG
もう少しって、どのくらいか基準でもあるのか?
詳しく書かれすぎても連投荒らしみたいになるぞ

どんな情報が必要かは回答者ごとに異なると思う
0470デフォルトの名無しさんNGNG
核心の部分を故意に記述しない質問者も荒らしだろ。
しかも、他人を巻き込み無駄レスを大量発生させる。
0471デフォルトの名無しさんNGNG
いっぱつサックリ答えられる必要ないじゃん
技術的な話を楽しみに来てる人だっているわけで・・・
0472デフォルトの名無しさんNGNG
RegisterClassがめんどいんですけど。
最近では既存のコントロール乗っ取ってサブクラス化して
自分色に染めるのが好きです。
そういう用途に都合の良い既存クラスってありませんか?
0473デフォルトの名無しさんNGNG
腐女子は何でも801の対象にできる
0474デフォルトの名無しさんNGNG
>>472
static
0475デフォルトの名無しさんNGNG
>>473
俺もか?
0476デフォルトの名無しさんNGNG
>>475
もちろん
0477デフォルトの名無しさんNGNG
GDI+でダブルバッファリング使いたいんですけど、
C++の場合はどのようにすれば良いんでしょうか?
C#だと
Image img = new Bitmap(width , height);
Graphics buf = Graphics.FromImage(img);
として、バッファに書き込み最後に
g.DrawImage(img , 0 , 0);
とすれば良いと、分かったんですが
C++になると分かりません。
どなたか教えてください
0478デフォルトの名無しさんNGNG
>>477
同じやり方ででけへんかい?
0479374NGNG
DLLのロードに成功しました。やはり、VCとBCCの仕様の違いが原因だったようです。

borland C++Builder での DLL の構築方法
ttp://www.borland.co.jp/qanda/cbuilder/c0003194.html

大変ご迷惑をおかけして、申し訳ありませんでした。しかし、なぜこのような違いがあるのでしょうか?
0480デフォルトの名無しさんNGNG
>>479
BCCちゅーからコマンドラインかと思たーよ
0481374NGNG
>>480
BCC Developerを使用しています。
0482デフォルトの名無しさんNGNG
>>479
何の仕様が違うと思ってるのかは知らないが、
そこに書かれている内容はVC++の場合となんら違いない。
0483477NGNG
>>478
C++の場合
Image img = new Bitmap(width , height);
の部分でどう書けばいいか分からないんです。。。
0484デフォルトの名無しさんNGNG
>>479
それってGetProcAddressを使った明示的ロードには見えないがそれでいいのか?
0485デフォルトの名無しさんNGNG
>>483
ここらへんみて勉強しな
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/getprocaddress.asp
0486485NGNG
間違えた w
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/gdicpp/GDIPlus/usingGDIPlus.asp
0487374NGNG
>>484
次のように書き換えました。

extern "C" __declspec(dllexport) int TestFunc( int a, int b )
↓
extern "C" int WINAPI __declspec(dllexport) TestFunc( int a, int b )

このように書き換えないと、DLLのロードに失敗します。
0488デフォルトの名無しさんNGNG
もういいじゃん。飽きた。
0489デフォルトの名無しさんNGNG
まんぐりがえしを抑制するだけだろ
0490デフォルトの名無しさんNGNG
>>489
ワラタ
0491デフォルトの名無しさんNGNG
>>435で駄目で>>487はいけるのか。ようわからん環境なんだな。
0492デフォルトの名無しさんNGNG
荒れるからageないで
0493デフォルトの名無しさんNGNG
うっさい
0494初心者NGNG
ウィンドウのサイズ変更したら再描画するようにするにはどうすればいいか教えてください
0495デフォルトの名無しさんNGNG
CS_HREDRAW, CS_VREDRAW
0496初心者NGNG
>>495
ありがとうございます。あとWM_PAINTメッセージじゃなくて
ウィンドウのサイズを変更したら送られるメッセージとかってありますか?
0497デフォルトの名無しさんNGNG
>>496
WM_SIZE
っていうかMSDN読め
0498デフォルトの名無しさんNGNG
スパれよ小僧が
0499デフォルトの名無しさんNGNG
スパれよ小僧が
http://www.nissinfoods.co.jp/news/news_release.html?nid=780
0500デフォルトの名無しさんNGNG
WM_SIZINGも調べとけ
0501374NGNG
>>432
>>491
うまくいかなかったのは、新しいDLLをコピーし忘れ、古いDLLの方をロードしたためです。
いい加減なレスをして申し訳ありませんでした。(^_^;)
0502デフォルトの名無しさんNGNG
PostMessage(hfw,WM_KEYDOWN,VK_SPACE,0);

のように、キー入力メッセージを渡したいのですが、
Ctrl+A(コントロールを押しながらAキーを押す)入力メッセージを
渡すにはどうすればいいでしょうか?
0503デフォルトの名無しさんNGNG
keybd_eventにしたら?
0504デフォルトの名無しさんNGNG
ウィンドウの終了処理について×ボタンを押すてもexeが終了せず、
ビルドを再度行うと、LINK : fatal error LNK1168: 書き込みモードで Debug/rap.exe を開けません
というエラーが出ます。
以下ソースです。原因分かる方がおりましたらお教え願います。

LRESULT CALLBACK WndProc(HWND hwnd , UINT msg , WPARAM wp , LPARAM lp)
{
switch(msg){
case WM_DESTROY:
PostQuitMessage(0);
return 0;
}
return DefWindowProc(hwnd,msg,wp,lp);
}

----------略--------------------

while(GetMessage(&msg , NULL , 0 , 0)) DispatchMessage(&msg);
return msg.wParam;
0505デフォルトの名無しさんNGNG
×ボタンについては、WM_CLOSEを処理汁。
で、前のプログラムをちゃんと終了させればエラーも出なくなる。
0506デフォルトの名無しさんNGNG
>>504
終了しないプログラム(ファイル)を書き換えることができないのでビルドに失敗する。
何らかの方法で強制終了してからビルドすべし。
0507デフォルトの名無しさんNGNG
>>505
WM_CLOSEをDefWindowProcに送ればDestroyWindowされるけど。
0508505NGNG
>>507
そうでしたね。出しゃばってすみません。
0509505NGNG
みなさまレスサンクスです。


WinMain関数中のWNDPROC 型の指定をWndProcでは無くべつ名前にしておりました。
お騒がせ致しました。
0510デフォルトの名無しさんNGNG
変数aに読み込んだデータをあるところで区切って改行して下に表示したいのですがどうすればいいですか?
0511デフォルトの名無しさんNGNG
1. あるところで区切って改行する
2. 下に表示する

以上
0512デフォルトの名無しさんNGNG
いやだからさ、クライアント領域全部に描画しちゃうからさ
1回描画したら2回目以降の表示で前回の表示消えちゃうだろボケが
0513デフォルトの名無しさんNGNG
>>512
この文章の意味がわからないのは漏れだけ?
0514デフォルトの名無しさんNGNG
お前だけ
0515デフォルトの名無しさんNGNG
>>513
書いてある文字は理解できるが内容が理解できん
どこから出てきた話だ、これ?
0516510NGNG
はいはい、わかりましたよ。まずよ、文字描画するときって
変数に貯めてる文字をいっぺんにクライアント領域に描画しますよね。
そうじゃなくて変数に貯めてあるデータを決まったバイト数分ごとに
改行して描画したいのですよ糞ボケが。なので教えてくださいタコが
0517デフォルトの名無しさんNGNG
・補足後も情報足りない
・口調が悪い

答える物好きもおるまいて
0518デフォルトの名無しさんNGNG
>>516
文字列を任意の位置に表示することはできるの?
だったら改行したい量ごとに文字を分割して
それぞれ任意のy座標に書けばいいだけじゃないか。
0519デフォルトの名無しさんNGNG
まあ馬鹿にはわからないだろうがバックバッファ持って横幅文字数に区切った文字列を描画
その文字のサイズ分Yを足して2行目描画
描画実行時にそれをクライアント領域に転送
API以前の問題だな。馬鹿らしい
0520デフォルトの名無しさんNGNG
なんでバックバッファが出てくるんだ?
0521デフォルトの名無しさんNGNG
>>520
いきなりクライアント領域に2回に分けて書いたらちらつく場合があるからじゃない?
0522510NGNG
バックバッファなんてわかんねぇよチンカス
0523510NGNG
だまれぼけ
0524デフォルトの名無しさんNGNG
変数に改行する情報とかって入れれないの?
0525デフォルトの名無しさんNGNG
>>510
DrawTextのRECTを設定して描画じゃだめなのか?
0526デフォルトの名無しさんNGNG
描画するときはエディットコントロールにEdit_SetTextマクロを使って描画してます。
れくと構造体は使いません
0527デフォルトの名無しさんNGNG
普通に改行いれちゃだめのか?
0528デフォルトの名無しさんNGNG
普通というと?
0529デフォルトの名無しさんNGNG
バカは放置しろよ
0530↑NGNG
方法わかる方のみレスをつけてください。バックバッファとか言ってる馬鹿はいりません
0531デフォルトの名無しさんNGNG
*NULL='\0';
0532デフォルトの名無しさんNGNG
>>518が答えだろ
0533デフォルトの名無しさんNGNG
そんなことはできない
0534デフォルトの名無しさんNGNG
特定のバイト数分ごとに変数に特定の文字は入れれる。改行ができない
0535デフォルトの名無しさんNGNG
dwStyle = WS_CHILD | WS_VISIBLE;
dwExStyle = WS_EX_LAYERED;

だと表示されないんだけど、これは仕様ですか?
MSDN 読んだけど、特に注意書きはないし(´・ω・`)

ちなみに、WS_CHILD をなしにすると、
ちゃんと半透明もしくはカラーキー付きで表示できるのは確認済みです。
0536デフォルトの名無しさんNGNG
ttp://www.microsoft.com/japan/msdn/windows/windows2000/layerwin.asp
には
「概要: トップレベル ウィンドウに透明と半透明効果を追加するための効率的な手段」
とある。
0537デフォルトの名無しさんNGNG
WS_EX_LAYERED
 Windows 2000/XP: Creates a layered window.
 Note that this cannot be used for child windows.
 Also, this cannot be used if the window has a class style of either CS_OWNDC or CS_CLASSDC.
0538デフォルトの名無しさんNGNG
Windows XP: With WS_EX_COMPOSITED
set, all descendants of a window get bottom-to-top painting order using double-buffering.
Bottom-to-top painting order allows a descendent window to have translucency (alpha) and transparency (color-key) effects,
but only if the descendent window also has the WS_EX_TRANSPARENT bit set.
Double-buffering allows the window and its descendents to be painted without flicker.
0539デフォルトの名無しさんNGNG
>>536-538
レスサンクスです

> Note that this cannot be used for child windows.

ハッキリ書いてましたね(´・ω・`)
日本語のほうにはこれっぽちも書いてないのにヽ(`Д´)ノ

お騒がせしました。
0540510NGNG
奇跡。改行できた。お前等マジで糞。訳に立たなすぎ(プゲラチョフ
特にバックバッファとか逝ってた糞ボケ。はぁ?アホ?なに?バックバッファって?
0541535NGNG
子ウィンドウはダメっぽいので、WS_POPUPでやることにしました。
フォーカスを親から奪ってしまう点などは、無理矢理SetFocusさせて解決できそうです。
ああ、あと位置も、親のWM_MOVEの時にまとめて修正で行けそうです。

ありがとうございました。
0542デフォルトの名無しさんNGNG
Sleep(1)で10ms待たされます。
もっと正確なSleepを使うにはどうすればよいのでしょうか?
0543デフォルトの名無しさんNGNG
>>542
そんなSleepありません。マルチメディアタイマーを使っても
そんな精度出るかどうか。
0544デフォルトの名無しさんNGNG
戻ってくるまでに 1010ms かかるってこと?
0545デフォルトの名無しさんNGNG
>>544
それでは、1ms待ちたいのに、1秒と10ms待たされる事になりますけど…
timeSetEventも駄目でした。
timeGetTimeで測定しているのが駄目なのかもしれないので、
PerformanceCounterで測ってみます。
0546545NGNG
PerformanceCounterだと、20ms待たされる事が一番多かったです。
0547デフォルトの名無しさんNGNG
Sleepはタイムスライスを放棄するためのAPIであって一定時間待つためのAPIじゃない。
0548デフォルトの名無しさんNGNG
じっけんだ!

SetPriorityClass(GetCurrentProcess(), REALTIME_PRIORITY_CLASS);
SetThreadPriority(GetCurrentThread(), THREAD_PRIORITY_TIME_CRITICAL)

してから、timeSetEvent したらどうなるのかな?

# マシンが応答しなくなるかもしれんがw
0549545NGNG
>>548
特に重たくはなりませんでした。

timeSetEvent(17, 1, TimeProc, 0, TIME_PERIODIC);
だと、10msか20msにばらけるので使えないと思ったのですが、

timeSetEvent(1, 1, TimeProc, 0, TIME_PERIODIC);
にして、TimeProc内で17ms経過を待ってみます。
0550545NGNG
549のやり方でも10ms単位みたいです。

>548で単純ループ(CPU使用率100%)で時間を数えると、マシンの応答が無くなりました。
これを変えなければ特に遅くはならないので、単純ループで数える事にします。
0551デフォルトの名無しさんNGNG
>>545
timeBeginPeriod(1) すると、Sleep() の精度も上がるよ。
どっちにしろ、リアルタイムOSではないので完全に正確にはならないが。
0552デフォルトの名無しさんNGNG
PerformanceCounterで10msって・・・どういう環境だよ
あれ普通マイクロ秒とかそういう精度だろ?
0553デフォルトの名無しさんNGNG
>>542
何の目的で正確に10ms待つ必用が用途を言った方がいいかも。
>>551で十分かもしれないし、場合によってはドライバ書いたり
別OSじゃないと駄目だったりするから。

あらゆる状況で10msだけ待つことを保障するっていうのは普通
Windowsじゃ無理。
0554デフォルトの名無しさんNGNG
zip圧縮をDLL無しで行う方法を教えてください
0555デフォルトの名無しさんNGNG
>>554
ファイルを選んで右クリックでコンテキストメニューが出るだろ。
0556デフォルトの名無しさんNGNG
>>554
zlibをstatic linkしろ
0557デフォルトの名無しさんNGNG
>>556
zlibの入手先やリンク方法を教えてくださ
0558デフォルトの名無しさんNGNG
連邦のモビルスーツはグーグルを知らんのか!
0559デフォルトの名無しさんNGNG
グーグルはどこで売っているのでしょうか。近所にはGOOしか売ってないです。
0560デフォルトの名無しさんNGNG
え?うちの近所じゃinfoseekとlivedoorも打ってたよ
0561デフォルトの名無しさんNGNG
安かったから買ってきたんだが、infoseakとJivedoorだった!だまされた!
0562デフォルトの名無しさんNGNG
>>552
QueryPerformanceFrequency

>>545
timeBeginPeriodしなきゃtimeGetTimeの精度も上がらないのでは?
0563デフォルトの名無しさんNGNG
すみませんが質問させて下さい。

vc6.0+win32環境です。

ツールバーをカスタムドローしてボタンのアイコンを書いています。
NM_CUSTOMDRAWメッセージを処理してNMCUSTOMDRAWのRECTメンバ
からアイコンの位置を取得する時に、ドロップダウンを持つボタンのみ
縦の位置がずれてしまいます(XP環境でテーマ(manifest)を置いている時に限りです)。

何方か位置がずれない方法を知りませんでしょうか?
よろしくお願いします。
0564デフォルトの名無しさんNGNG
リストビューのカラムの数はどうやって得るのでしょうか?
0565デフォルトの名無しさんNGNG
>564

LVM_GETHEADERと
HDM_GETITEMCOUNTかな
0566名無し~3.EXENGNG
Windows2000のグループ名を取得したいけどどうしたらいい?
MSDNで見つけられなかった・・(つД`)
0567デフォルトの名無しさんNGNG
NetWkstaGetInfo
0568名無し~3.EXENGNG
>567
ありがとうございまつ。これで今日寝られる・・・(つД`)
0569デフォルトの名無しさんNGNG
ファイルのオープンに関して質問です.
GetOpenFileName()で指定したファイルをオープンできる所まで試しました.
ですが,選択する画面でデフォルトのパスがマイドキュメントになっています.
これを任意のディレクトリに変更するにはどうしたらよいでしょうか?

VC7環境です
0570デフォルトの名無しさんNGNG
OPENFILENAMEのメンバかたっぱしから調べろ
0571デフォルトの名無しさんNGNG

WindowsXPで
ファンクションF3キーでの「検索結果」ウインドウ
をグローバルフック等で無効化したいのですが、
どのクラスでメッセージを受け取っているのか
分からない状態で困っています。

spy++などで「Shell_TrayWnd」を覗いてみたのですが
「0xC0F2」(登録:ShellFileOpened)のメッセージが
ポストされていて、未処理の様で、ここでは無いみたいです。

どなたかご存知の方いらっしゃいませんでしょうか?

0572545NGNG
>>551
私の環境では、timeBeginPeriod(1)を使ってもSleep(1)は10msかかりました。

>>552
Sleep(1)にかかる時間を測定するために PerformanceCounter を使ったら、
20msかかっていたと言う意味です。

>>553
用途はゲームです。 (最初に言うべきでした)

>>562
timeBeginPeriod(1)でtimeGetTimeの精度が上がるのはNT系のみのようです。
9x系は最初から1ms単位です。
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/jpmltimd/html/_win32_timegettime.asp

timeBeginPeriod(1)とtimeGetTimeで時間の測定は十分正確にできますが、
問題はCPU使用率を下げるために呼び出す Sleep(1) が 10ms も待たされる事です。

結局、Sleep は指定した時間をms単位で待ってはくれるけど、
その時間が過ぎてもタイムスライスの関係ですぐには復帰しないのでしょうかね。
0573デフォルトの名無しさんNGNG
少なくとも指定した分だけ待つ、じゃないかなあ。
0574デフォルトの名無しさんNGNG
>>572
もしかして、環境は9xなのか? 2000ではそれなりにきっちりSleep()してくれたんだが。
0575デフォルトの名無しさんNGNG
sleepは最低これだけ待つというだけだぞ
だから極端な話20秒ウェイトがかかったとしても仕様通り
0576デフォルトの名無しさんNGNG
MSDNはちゃんと読もうね。
The Sleep function suspends the execution of the current thread
for "at least" the specified interval.
""内に注目。
0577デフォルトの名無しさんNGNG
>>576 ごめんなさい。 これからは英語のも確認します。

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/sleep.asp
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/jpdllpro/html/_win32_sleep.asp
>指定された時間にわたって、現在のスレッドの実行を中断します。
0578デフォルトの名無しさんNGNG
ほんとに、プログラマめざしてるのか?
最低、2chなんぞ頼るなよボケ、絶対採用しない
0579デフォルトの名無しさんNGNG
>>578
間違ってあなたの会社へ行かないようにするため、社名を教えてくれませんか?
0580デフォルトの名無しさんNGNG
timeSetEvent まわりの記事
一応、Windows でもっとも正確なタイマーがマルチメディアタイマーということに
なっているが…

http://support.microsoft.com/default.aspx?scid=kb;ja;148404
http://support.microsoft.com/default.aspx?scid=kb;ja;153400

というか、何でそこまで正確に 1ms の時間が必要なんだ?
0581デフォルトの名無しさんNGNG
>>580
1ms単位が必要と言うより、10ms単位が困るのです。

10ms単位だと、11ms待ちたい時に20ms待つ事になり、倍時間が変ってきます。
これが、100msと110msとなら気にならないかもしれません。
0582デフォルトの名無しさんNGNG
>>579
マイクロソフトです。
0583デフォルトの名無しさんNGNG
>>581
それはやっぱり1ms必要ってことじゃん
0584デフォルトの名無しさんNGNG
>>582
正確に訳せボケ!
0585デフォルトの名無しさんNGNG
>>581
11ms待ちたい時に20ms待つ事になっても大丈夫なように作るのが
Windows流です。
0586デフォルトの名無しさんNGNG
Sleepがどんなに正確でも
Sleepから返って来た直後に別スレッドに持ってかれたら意味無いわけで。
マルチタスクOSで正確なウェイトなんて考えるほうがバカ。
0587デフォルトの名無しさんNGNG
というか、ゲームでのウェイトにSleep使うな
メインループでぶん回し、メインループから分岐で各処理を呼び出す
ウェイトが必要なら、その処理を空回りさせて処理しろ
うちのプログラムで使ってるそのへんの処理を簡略化して書くとこんな感じだ

// これはメインループから呼び出される関数内
switch( process ){
 case WAIT_START:
  TickCheckStart = GetTickCount();
  oldprocess = process;
  process = WAIT;
  break;
 case WAIT:
  if( (TickCheckStart + 10) > GetTickCount() )
   process = oldprocess;
  break;
 case KEYWAIT:
  // キー待ち処理とか
// あとはこの調子で画面効果とか、スクリプト処理とかを分岐させていく
}
// 画面描画
0588デフォルトの名無しさんNGNG
>587
常時CPU使用率が100%になるゲーム、逝ってよし。

Sleepを怖がってWindowsでゲームが作れるか!
0589デフォルトの名無しさんNGNG
>>588
あぁ、Sleepは入れるよ
ただ、Winに処理返すために使うのであって、10msきっちりとかは考えない
>>581で言ってるような細かいことにSleep使うのはやるなってこと
0590デフォルトの名無しさんNGNG
Sleep(0)じゃCPU使用率が100%になるから意味内
0591デフォルトの名無しさんNGNG
WaitForXXXでいいだろ。
Sleepなんか使うな、メッセージへの応答も遅くなるし。
0592デフォルトの名無しさんNGNG
ウィンドウメッセージはメインスレッドで処理して、
ゲームループは別スレッドで回すモンじゃないのか?
0593デフォルトの名無しさんNGNG
ああああ,11111,うううう,おおおお,22222
カンマ区切りのデータを読み込んで
それぞれのエディットボックスに表示させたいと思っているのですが・・・。

最初はWM_COMMANDメッセージのイベントにANSI Cでstrtokを使用し、
カンマ区切りでデータを分割しようとしたのですが
データに日本語が入っているため、うまくいきませんでした・・・。

こうすれば超簡単とかいうのがございましたらお教え願います。
0594デフォルトの名無しさんNGNG
>データに日本語が入っているため、うまくいきませんでした
ダウト

というかWIN32APIの話ではないな。
どーしてもWIN32APIで処理したいなら、ODBCでテキストドライバでも使え。
0595デフォルトの名無しさんNGNG
strtok のマニュアルを隅々まで読め。超簡単だろう。
0596デフォルトの名無しさんNGNG
>>593
Win32APIじゃないけど_mbstokじゃだめか?
0597デフォルトの名無しさんNGNG
レスたいへんありがとうございます。(TT)
日本語をカンマ区切りでテキストに書き込めましたので
読み込みもできると思い込んでおりました。
英数字だけのカンマ区切りのデータの場合の処理の仕方がありましたら
どんなものか概要をお教え頂ければ幸いです。

WinAPIでコントロールをたくさん貼り付けて作成しているので、
こちらで質問させて頂きました。
そもそも、WinAPIにANSI Cを使うことは間違いなのでしょうか。
0598デフォルトの名無しさんNGNG
スタティックコントロール内の文字なんですが、縦センタリングって可能なんで
しょうか?
自動的でなくても、表示位置を任意に設定できるならそれを使おうと思うのです
が、どうしても方法が分かりません。

0599デフォルトの名無しさんNGNG
> そもそも、WinAPIにANSI Cを使うことは間違いなのでしょうか。
それ自体は間違いでも何でもない。
・ANSI C関数の使い方(選び方)
・このスレの使い方
が間違っている
0600デフォルトの名無しさんNGNG
DVD-RAMの空き容量を取得したいのですが、
GetFreespaceEx()で取得できるのでしょうか?


0601600NGNG
重ね重ねでもうしわけないのですが、
DVD-RAMドライブにDVD-RAMを挿入した状態で、
GetDriveType()を行った場合、DRIVE_RAMDISKは返ってきるのでしょうか?
0602デフォルトの名無しさんNGNG
>>600
GetDiskFreeSpaceEx()のことかね?
0603デフォルトの名無しさんNGNG
>>601
DVD-RAMはあからさまにRAMディスクじゃねえからなあ…
0604600NGNG
>>602
そのとおりです。間違いました、すみません。
0605602NGNG
>>601
Panasonic LF-D201ではGetDriveType()でDRIVE_CDROMが返ってきた。
GetDiskFreeSpaceEx()で空き容量を取得することは出来た。
0606600NGNG
>>602
お手数おかけして、すみませんでした。
試して頂いたおかげで助かりました、どうもありがとうございました。
0607デフォルトの名無しさんNGNG
HRESULT hr;
IStream pi;
if( FAILED(hr = SHCreateStreamOnFile("A:\\a.txt", STGM_WRITE | STGM_SHARE_EXCLUSIVE | STGM_CREATE | STGM_DIRECT, &pi)) )
{ /* エラー */ }

const UINT size = 1457665;
LPBYTE buf = new BYTE[size];
ULONG written;

if( FAILED(hr = pi->Write(buf, size, &written)) )
{ /* エラー */ }

空のフロッピーに1457665バイト(空き容量+1バイト)書き込みます。
空き容量より大きいので失敗すると思ったのですが、なぜかS_OKが返ってきます。
writtenにもsizeと同じ値が返ってきてます。
空き容量が足りないはずなのに、なぜ成功してしまうのでしょうか?
0608607NGNG
>>607
>IStream pi;
IStream* pi;
修正
0609607NGNG
あと、実際にフロッピーに作られたファイルは1,454,080バイトでした。>>492
0610デフォルトの名無しさんNGNG
>>609
バッファリングされるからWriteではエラーにならないとか?
もっと極端に大きなサイズを書こうとすればエラーになるんじゃない?
0611デフォルトの名無しさんNGNG
CPU使用率が100%のまま移行するとCPUが熱くなって、
ノートパソコンだとファンがうるさいそうです。
0612デフォルトの名無しさんNGNG
>>609
492 とは?
0613607NGNG
>>610
Commit(STGC_DEFAULT)を呼んだらSTG_E_MEDIUMFULLが返ってきました。
どうやらバッファリングしてるみたいです。1,454,080が512や4096の整数倍だし。
とりあえず最後にCommitすることで解決しました。Writeでエラーにならないのは釈然としないけど…
ありがとうございました。

>>612
なんでもありません。いつのまにか付いてました。
0614デフォルトの名無しさんNGNG
>>613
>Writeでエラーにならないのは釈然としないけど
実際に書き出しているわけではないから仕方ないかと。
0615デフォルトの名無しさんNGNG
エディットボックスやコンボボックスなどのをコントロールをたくさん作成して
あるお方のお手本通りウインドウプロシージャ内(WinPrco)のWM_CREATEで作成しているのですが
WinMain関数内で作成しないでWM_CREATE内で作成する理由はあるのでしょうか。
また、WM_CREATEは、プログラム起動時に発生するメッセージという認識なのですが
間違っていますでしょうか?
0616デフォルトの名無しさんNGNG
>>615
WM_CREATEが来るのはウィンドウ作成中
WinMainでウィンドウ作成後に設定するよりスマート(だと俺は思っている)

WM_CREATEはプログラム開始時ではなく、ウィンドウ作成時。名前の通り
0617デフォルトの名無しさんNGNG
ウィンドウプロシージャを再利用する時、そのウィンドウに
関する初期化処理をWM_CREATEに書いておけばウマーとか。
0618デフォルトの名無しさんNGNG
最近、ワイド液晶を搭載したノートPCとかが出ていますけど、
こういうモニタの物理的なアスペクト比を取得する手段って
ないでしょうか?
0619デフォルトの名無しさんNGNG
レジストリ
0620デフォルトの名無しさんNGNG
GetDeviceCaps で取れないか?
0621デフォルトの名無しさんNGNG
GetMonitorInfoじゃないか。
0622デフォルトの名無しさんNGNG
質問です。

CreateWindowで作成したLISTBOXで
WM_DRAWITEMを使わずに
リストボックスの各項目の背景を任意のビットマップにする方法はあるでしょうか?

なんかうまいことやってるアプリを昔見かけた気がするのですが・・
あれはオーナードローなのかな。
0623デフォルトの名無しさんNGNG
>>615
グローバル変数の使用を極力避けるようなプログラミングを心がけている人なら、
自然と WM_CREATE の中で初期化をおこなうようになりますよん。
0624デフォルトの名無しさんNGNG
>グローバル変数の使用を極力避けるようなプログラミングを心がけている人なら、

>自然と WM_CREATE の中で初期化をおこなうようになりますよん。


関連性ないよ
0625デフォルトの名無しさんNGNG
>>615
もし何らかの理由でコントロールの構築に失敗した場合、
DestroyWindowせずとも-1を返してやるだけでウインドウの作成をキャンセルできるから。
0626デフォルトの名無しさんNGNG
>>389
ローカルフックでWM_SETFOCUSのHWNDを保存しる
0627デフォルトの名無しさんNGNG
ShellExecuteEx で実行するプログラムに環境変数を設定して渡してやるには
どうしたらいいのでしょう?SEE_MASK_DOENVSUBST フラグを使えばいいよう
気もするんですが、ぐぐってみてもよくわかりませんでした・・・orz
0628デフォルトの名無しさんNGNG
>>627
環境変数を渡すにはCreateProcessじゃないと無理。
SEE_MASK_DOENVSUBSTはプログラムのパスやコマンドライン引数の部分で"%WINDIR%"のように指定された環境変数を展開させるためのフラグだったはず。
0629デフォルトの名無しさんNGNG
エディットコントロールに文字を転送して表示してるのですが
なぜかアルファベットが2バイト文字のようにすこし大きくなります。
表示された文字を別のメモ帳にコピペするとふつうの1バイト文字になります。なぜでしょうか?
0630デフォルトの名無しさんNGNG
転送ってなあに?
0631デフォルトの名無しさんNGNG
SendMessageのことです
0632デフォルトの名無しさんNGNG
へえ
0633デフォルトの名無しさんNGNG
そういうフォントだからだろ
0634デフォルトの名無しさんNGNG
そういうフォントというのはエディットコントロールの仕様ということですか?
モーダルダイアログボックスにSendDlgItemMessageで転送するとふつうに表示されるのですが
0635デフォルトの名無しさんNGNG
MFCが難しいのでWin32APIでプログラム作成しているのですが

Win32APIの仕事って少ないでしょうか。MFCを使えたほうがよいのでしょうか?
0636デフォルトの名無しさんNGNG
とりあえず就職しろ
覚えるのはそれからでも遅くは無い
0637デフォルトの名無しさんNGNG
チャットソフトをつくりたいのですが どこか
解説しているようなサイトなどないでしょうか
0638635NGNG
>>636
就職しています。
ANSI Cはできるので、ステップアップと思い、Win32APIをやっているのですが
仕事ってあります?Win32APIでプログラムを作成すると無駄に時間だけが掛かってしまうのは私が馬鹿だからなのでしょうか。。。
0639デフォルトの名無しさんNGNG
>>635
新卒ならたいがいのところは大丈夫。
30過ぎてるときついかもしれないけど。
0640デフォルトの名無しさんNGNG
>>638
就職先で必要でなければ無理に覚えることは無いでしょう。
0641デフォルトの名無しさんNGNG
>>638
MFC使うより格段に仕事が早く高品質にできるのなら
多分あると思いますよ。
0642デフォルトの名無しさんNGNG
MFCで組むにしてもDelphi使うにしてもC/C++でベタ書きするにせよ、ネイティブアプリ作ってる限りはWin32API自体は把握できてないとだめ。

それを踏まえた上でどうやってアプリ作るかは好きにすればいい。って言っても仕事だとその辺なかなか自由にはならんだろうが。
0643デフォルトの名無しさんNGNG
特にMFCは必要な機能に限ってクラスになってなかったりするんで
APIの知識は無駄にならないと思う
0644デフォルトの名無しさんNGNG
>>638
もしWin32APIでCUIアプリケーションを作成しているとしたら、あなたが馬鹿だからです。
GUIアプリケーションを作成しているとしたらそもそも単純に時間を比較すること自体が間違ってます。
0645デフォルトの名無しさんNGNG
会社によっては Win32API と独自クラスで開発しているのでは?
0646デフォルトの名無しさんNGNG
質問です
グローバルフックで
エディットコントロールのデフォルトのポップアップメニューのハンドルを取得したいのですが
どうやればできるでしょうか?

WH_MOUSEでWM_CONTEXTMENUだとエディットコントロールのハンドルが帰ってきて駄目でした
0647デフォルトの名無しさんNGNG
コントロールとポップアップメニューは関係ないから
メニューハンドルを得るのは無理では?
0648デフォルトの名無しさんNGNG
>>647
ありがとうございました。
0649デフォルトの名無しさんNGNG
>>645
それが正解だな
0650デフォルトの名無しさんNGNG
開発効率悪そう・・・
0651デフォルトの名無しさんNGNG
だって MFC って 生産性<オーバーヘッド
0652デフォルトの名無しさんNGNG
ATL は COM 前提だし
0653デフォルトの名無しさんNGNG
そこでWTLですよ
0654デフォルトの名無しさんNGNG
bccでも使えるライブラリほしいな
0655デフォルトの名無しさんNGNG
>>654
っVCL
0656デフォルトの名無しさんNGNG
hoge.h

#define ID_HOGE 1
#define ID_HAGE 2

///////////////////////////
hoge.rc

HOGE MENU {
POPUP "ほげ" {
MENUITEM "はげ", ID_HAGE

//////////////////////////

「POPUP "ほげ"」にID_HOGEを関連付ける方法はなかとですか?
0657デフォルトの名無しさんNGNG
#define MENUDEF(name) name MENU { POPUP #name { MENUITEM #name, ID_##name
ではだめか? リソーススクリプトの #define が C と同じプリプロセサ呼び出してるかどうか自信ないが・・・
0658デフォルトの名無しさんNGNG
バカか?
0659デフォルトの名無しさんNGNG
相手にしない方がいいかも
0660デフォルトの名無しさんNGNG
ディレクトリ(フォルダ)を指定して、それ配下のファイルとディレクトリの合計サイズを
取得するAPIってないでしょうか?
0661デフォルトの名無しさんNGNG
ない
0662デフォルトの名無しさんNGNG
WLX_NOTIFICATION_INFOって構造体はどこに定義してあるんでしょうか?
MSDNによればwinwlx.hに定義してあるらしいんだけど、ヘッダをインクルードしても
「定義されてません」って言われちゃう。で、ファイルの中を見たらそんな構造体ありゃしない。
ググっても外国のページしかヒットしないし、仕方なくそのページを開くと普通に使ってるし。
何か足りないのかな?
0663デフォルトの名無しさんNGNG
お前の脳味噌。
0664デフォルトの名無しさんNGNG
>>662
ヘッダ読んだ?
#if とかでハネてるケースよくあるよ
0665デフォルトの名無しさんNGNG
>>662
SDK は最新にしてある?
0666デフォルトの名無しさんNGNG
>>662
私も確認してみた。
VC98のwinwlx.hには、WLX_NOTIFICATION_INFO構造体がないね。
そんなわけで、>>665の助言に従うべきでしょう。
0667デフォルトの名無しさんNGNG
[ファイルから検索] もしたほうがいい
0668デフォルトの名無しさんNGNG
↑それ便利だけど、実装するとなるとちょっと遠慮したいよね
0669656NGNG
>657
それはちょっと無理です。

>658-659
スレ汚し失礼しました、申し訳ないです。
0670662NGNG
>>663
足りないから補いたいのは山々なんだけどね〜

>>664,667
winwlx.hをエディタで開いて探したよ。
でも見つからなかったんで、「ファイルから検索」で探したよ。
残念ながら見つからなかったさ。

>>665
環境はVC6 SP6 なんだけど、これより新しいのって何だろ?.NET?
0671デフォルトの名無しさんNGNG
>>670
>>2
0672デフォルトの名無しさんNGNG
VC6には入ってなかった、SDKに入ってた。
0673670NGNG
>>671
いや〜お恥ずかしい。早速インストールしたさ。あったさ。WLX_NOTIFICATION_INFOが。

やっぱり脳が足りないようで…
助かりました。どもです。
0674デフォルトの名無しさんNGNG
HeapAlloc()で確保するメモリは、必ず物理メモリ上に確保されると考えていいですか?
0675デフォルトの名無しさんNGNG
なぜそう思うんだ?
なぜそれが気になるんだ?
0676674NGNG
もうひとつ。

VirtualLock()はVirtualAlloc()以外の方法で確保したメモリにも使えますか?
0677デフォルトの名無しさんNGNG
>>674
ページアウトされないってことなら、どんなメモリ確保も物理メモリ上にある保証はありません。
0678デフォルトの名無しさんNGNG
「物理メモリ」を誤解している悪寒
0679デフォルトの名無しさんNGNG
>>676
使えません。MSDN嫁
0680674NGNG
>>679
ありがとうございます。
0681デフォルトの名無しさんNGNG
韓国から拾ってきたVC7ソースなんですが、
これはEUC-KRでかかれているらしく、リテラル文字列が以下のように終端の"が
なくなってしまいます。

InsertColumn(3,"コクウスセ・,LVCFMT_LEFT,65,3);

日本語環境でclコンパイラにEUC-KRを認識させる方法はないでしょうか?
0682デフォルトの名無しさんNGNG
濃く薄せ
0683デフォルトの名無しさんNGNG
>>681
ソースファイルを適当なエディタで読み込んで変換するんじゃいけないの?
0684681NGNG
ありがとうございます。
エンコードつき保存で、EUC-KR -> UNICODEでできました。
0685デフォルトの名無しさんNGNG
画面遷移を行いたいのですが、定石ありますでしょうか?

画面ごとにexeモジュールを作成しているので
画面の中のコマンドボタンを実行すると
別画面(exe)を呼び出し、元のexeは終了する方法を考えています。
0686デフォルトの名無しさんNGNG
>>685
なんでそんな面倒なことするんだ?
リソースで定義したダイアログを順々に表示するんではいかんのか?
0687デフォルトの名無しさんNGNG
>>686
レスありがとうございます。
リソースについて調べました。使ってみるつもりです。

リソースで定義したダイアログを呼んでも元ウィンドウは残ったままになってしまいそうなのですが・・・。
0688デフォルトの名無しさんNGNG
別に元のウィンドウが残っててもいい気がするが…
元を親ウィンドウとして処理するってのが普通だと思うけど…。

それが嫌なら、元ウィンドウ消してから
別のウィンドウ表示すれば良いのでは?
0689デフォルトの名無しさんNGNG
ウィンドウ毎に担当者を分けているとか?
それで別 exe の方がやりやすいとか。

別画面が終わったら元画面に戻したりしないの?
元画面終わらせたらかえって面倒だよ。
0690デフォルトの名無しさんNGNG
スレ違いかもしれませんが・・・質問させてください・・・

今、32APIでシューティングゲームを作ってるんですが、
パソコンが壊れてしまったので
新しく買い換えたのですが、
新しいPCの方でいきなり描画処理がおかしくなりました。

カクカクと動くし、
背景以外の透過画像やFPS表示もされない・・・

前のPCはビデオカードがオンボードだったんですが、
今回のPCはこれを期に一気に
RADEON X300 の 128Mを積んだマシンを購入したんですが、
PCI Expressがいけなかったんでしょうか・・・

どなたか解る方いらっしゃいますでしょうか?
よろしくお願いします・・・
0691デフォルトの名無しさんNGNG
>>690
もしかしてスレ違いかも? (その場合、ハード板が妥当と思われ)

「積んだ」っていうのがどういう形でかわからんが
特注でつけたパーツが新しすぎると
ドライバが「標準」になってたり
初期ロット系のトラブル抱えてたり
OS 側の処理がタコだったり
つーことは結構あるな
0692デフォルトの名無しさんNGNG
>>691
そういうのもあるけど質問の仕方からして、あんまり慣れてない人が
環境依存のコード書いちゃったっつうのもありうる。

>>690
自分で書いたコードならプロファイルとるなりトレースするなりで
どの処理に時間がかかってるのか調べてから相談しても遅くない。
DirectXつかってるならカードごとに対応してる機能に違いがある
んで〜CAPSみたいなのを調べてみる必用もあるかも。
0693685=687NGNG
>>688-689

レスありがとうございます。
リソースで新たな画面を呼び出すと
元のウィンドウが表示されたままになってしまい、
モニター上には元の画面と新しい画面の2画面になってしまわないでしょうか・・。

ってやってみってます。すみません。

exeを作っているのは私一人です。
0694デフォルトの名無しさんNGNG
>>693
っ[ ShowWindow ]
0695デフォルトの名無しさんNGNG
>>693
だから前のウィンドウはそのつど消せっての
0696685=687=693NGNG
>>694=695レスありがとうございます。m(_ _)m

main.rcを作成しその中に以下の一行を追加
MAIN_RESORCE "NEXT_GAMEN.EXE"

VC6++のワークスペースのResorce Fileにmain.rcを追加。

ビルドをしたら以下のエラーが表示されました。
C:\Program Files\Microsoft Visual Studio\MyProjects\Main\main.rc (3): error RC2135 : file not found: "NEXT_GAMEN.EXE"

NEXT_GAMEN.exeは、今回編集しているソースと同じディレクトリおよびdebugフォルダにも格納しましたが
上記エラーが表示されます。

初歩的なことですみません。
なにかこんな頭の悪い人のためのお勧めのWin32APIの参考書はありますでしょうか。
0697デフォルトの名無しさんNGNG
どこから突っ込んでいいのかわからない。
0698690NGNG
>>691様 >>692様
スレ違いな質問に答えてくださいましてありがとうございました。

ところで、環境依存のコードとありますが、
現在表示されていないソースでは、
画像の透過処理のTransparentBltを使っているんですが、
ここの処理がうまくいってない様です・・・
これは、環境依存コードなのでしょうか?
よろしければ、ご教授ください。
0699デフォルトの名無しさん NGNG
GetAsyncStateを使ってキーの押下状態を取得しているのですが、
何個かのキーを同時に押すとBeep音がします。
これを鳴らないようにする方法はないでしょうか。
0700デフォルトの名無しさんNGNG
>>699
スピーカーを引っこ抜く
0701デフォルトの名無しさんNGNG
複数行あるファイルから一行ずつ読み取るにはどうしたらよいのでしょか。

ReadFile関数で読み込みましたら、すべての行を一回で読んでしまいました。。
ReadFile(hFile , strFile , GetFileSize(hFile , NULL) , &wReadSize ,NULL)!=0)
0702デフォルトの名無しさんNGNG
>>701
そういうAPIはないです
0703デフォルトの名無しさんNGNG
>>701
>702なので、改行文字まで一文字ずつ読む必要あり。
#いっそ、全部読んでからばらすのも手かも。
0704デフォルトの名無しさんNGNG
ちゅうか、わざわざ API 使って
テキストファイル読むこともなかろうにと思うが。
C/C++のライブラリ使えば済むじゃん。
0705デフォルトの名無しさんNGNG
>>704
そういうスレではないです
0706デフォルトの名無しさんNGNG
はて?
遠回りを奨めるスレでもないと思うが。
0707デフォルトの名無しさんNGNG
>>704
>705なので、スレタイを冷静に読む必要あり。
#いっそPCの電源切って窓から投げ捨てるのも手かも。
0708デフォルトの名無しさんNGNG
>>704
APIでオープンしなければならない事情があったときはどうしたら?
0709デフォルトの名無しさんNGNG
さすがにC/C++ライブラリくらい知ってんじゃないの。
Win32APIにそれ相当のものがあるか?って質問だろう。
0710デフォルトの名無しさんNGNG
>>701この手の質問に答えられる奴がいないだけだろ?
毎回、この質問が出ても質問者を叩いて終るし。
誰かコードアップしたれよ。
0711デフォルトの名無しさんNGNG
お前がアップしたれよ。
0712デフォルトの名無しさんNGNG
>>710
fgetsのソース読めば済むだろ
0713デフォルトの名無しさんNGNG
>>712
fgetsじゃベタだろ。

�@FileReadで1バイトづつ読んで、\nで読み込み終了
�Aファイルポインタを\nの次に移す。
�BEOFまで�@を繰り返す

つうソースが欲しいんだと思うぞ。>>701は

0714デフォルトの名無しさんNGNG
>>712
fgetsの中身なんて改行文字がくるまでfgetcで読み込むような感じだろ。
0715デフォルトの名無しさんNGNG
となりのメガネが

アピアピ連呼するんですが

なんとかなりませんか。
0716デフォルトの名無しさんNGNG
>>713
'\n'の手前にある'\r'は捨てる処理を入れたほうが良いんじゃないかい?
0717713NGNG
>>716
も、もちろん知ってるよ。
ウ、ウィンドウズの改行マークは"\r\n"だ、だろ?
0718デフォルトの名無しさんNGNG
timeGetTimeはNT系の場合精度が5ミリ以上になる場合があるとMSDNに書いてあるので,
関数の前後をtimeBeginPeriodとtimeEndPeriodで挟んで精度を上げているのですが,
これ(timeBeginPeriodとtimeEndPeriod)ってtimeGetTimeを呼ぶたびに
毎回呼ばないと精度を保てないんでしょうか?
0719デフォルトの名無しさんNGNG
>>713
いくら API スレだからって、
ReadFile で1バイトづつ読ませるなんて、
非効率的な事は勧められんだろう。
そんなことしたら、fgets 使うのに比べて
何十倍も処理時間掛かるじゃん。
0720デフォルトの名無しさんNGNG
>>710
誰も質問者を叩いて無いじゃん。
むしろ叩かれてるのは>>704
0721デフォルトの名無しさんNGNG
>>719
fgetsをベタとか言ってる時点でネタだと思うが。
fgetsのソースを見る、でこの質問は終了のはず。
0722デフォルトの名無しさんNGNG
>>719
貴様!701が読み込みにMutex使ってたら、どう責任取るつもりだ?

0723デフォルトの名無しさんNGNG
なんつーか、質問者が出てこないのに仮定で話を進めるのはこのへんでやめにしないか。
続きは質問者が出てきてからってことで・・・
0724デフォルトの名無しさんNGNG
低レベルなファイル「読み込み」関数は使うメリットあるのか?
具体的にいうと_read()とかReadFile()とかなんだけど。

低レベルなファイル「書き込み」関数は使うメリットがそれなりにあると思う。
0725デフォルトの名無しさんNGNG
>724
非同期 I/O
0726デフォルトの名無しさんNGNG
>>708
_open_osfhandle + fdopen とか。
0727デフォルトの名無しさんNGNG
>>724
CreateFile()の引数でシーケンシャルスキャン・ランダムスキャンを指定したいとか、
キャッシュ効かせないようにしたりとか(確かFireFileCopyとかそういう事してた)、
SetEndOfFile()使いたいとか、2GB・4GB超えるようなファイルを扱うとか?
0728デフォルトの名無しさんNGNG
C++Builder 5 でユーザーモードから ZwQueryInformationFile() を呼び出すと
ハングアップすることがあるんですが、原因がわかる方いらっしゃいますか?
0729デフォルトの名無しさんNGNG
>>728
winternl.h のプロトタイプをそのまま使ってない?
プロトタイプがバグってる(WINAPIが付いてない)から使っちゃだめ
0730デフォルトの名無しさんNGNG
WINAPIじゃなくてNTAPIか
まあどっちも__stdcallに展開されるんだけど
0731デフォルトの名無しさんNGNG
>729
ありがとうございます。
ヘッダーは DDK に付属のものを使っています。

NTSYSAPI
NTSTATUS
NTAPI
ZwQueryInformationFile(
  IN HANDLE FileHandle,
  OUT PIO_STATUS_BLOCK IoStatusBlock,
  OUT PVOID FileInformation,
  IN ULONG FileInformationLength,
  IN FILE_INFORMATION_CLASS FileInformationClass
  );

どうも、特定のファイルをクエリーするときにだけ、ハングアップするようなのです。
ハングアップするというのは、この API から戻ってこないということです。
0732デフォルトの名無しさんNGNG
>>724
ReadFile()はCランタイムライブラリを全く使わないプログラムを作るときに使うんだろう。
0733デフォルトの名無しさんNGNG
IMEにユーザー辞書を追加したあと、
WM_IME_COMPOSITION
で変換候補が確定した時にその単語がどの辞書
(標準辞書なのかユーザー辞書なのか)に含まれるか調べたいのですが

どうやって調べればいいんでしょうか
0734デフォルトの名無しさんNGNG
よく年月日のテキストボックスの横に上、下に向いている三角形(▼▲)が
あるけど、これってwin32apiでは実装されてないのでしょうか?
▲▼をクリックすると、テキストボックスの日付が変わる機能です。
0735デフォルトの名無しさんNGNG
>>734
スピンコントロールでぐぐれ
0736デフォルトの名無しさんNGNG
コモンコントロールのUp-Down
0737デフォルトの名無しさんNGNG
void TForm1::ShowContextMenu(TObject* Sender, LPITEMIDLIST pIDL)
{
HRESULT hRes;
LPCONTEXTMENU pContMenu;
HMENU hMenu;
POINT pCursor;
int iCommand;
CMINVOKECOMMANDINFO stInvokeInfo;

hRes = m_pDTFolder->GetUIObjectOf(this->Handle, 1, (LPCITEMIDLIST*)pIDL, IID_IContextMenu, 0, (LPVOID*)&pContMenu );
if (hRes != NOERROR) return;
hMenu = CreatePopupMenu();
hRes = pContMenu->QueryContextMenu(hMenu, 0, 1, 0x7FFF, CMF_NORMAL);
if (hRes == NULL) {DestroyMenu(hMenu); return;}

GetCursorPos(&pCursor);
iCommand = TrackPopupMenu(hMenu, TPM_LEFTALIGN | TPM_RETURNCMD | TPM_LEFTBUTTON, pCursor.x, Cursor.y, 0, this->Handle, NULL);

if (iCommand != 0) {
/* stInvokeInfo 処理 */
}
DestroyMenu(hMenu);
pContMenu->Release();
}
0738737NGNG
ちなみにBorland C++ Builder 5 です

pIDLは、「マイコンピュータ / C: (VOLUME) / HOGEHOGE」
のようになっています

この関数を実行すると、メニューは表示されるのですが
メニューの表示項目が必ずマイコンピュータのものになってしまいます

しかし、そこで強引に HOGEHOGE のメニューで
「ショートカットの作成」を行うと、
「ここには作れません、デスクトップに(r」となり
そのできあがったショートカットは HOGEHOGE のものになります

hRes = pContMenu->InvokeCommand( &stInvokeInfo );
を実行する、stInvokeInfo で構造体にpIDLを入れる必要が無い事から
pContMenu には正しくpIDLが入ってるように思うのですが
これは、必ずしもそういうことじゃないのでしょうか?
0739737NGNG
kab-studio の Codian という所を参考にしました

具体的に渡しているpIDLは

// ファイルのIDリスト
HRESULT hRes;
wchar_t lpszDisplayName[MAX_PATH];
m_strFullPath = "C:\\HOGE\\PUNI";
StringToWideChar(m_strFullPath, lpszDisplayName, MAX_PATH);
hRes = Form1->m_pDTFolder->ParseDisplayName( NULL, NULL, lpszDisplayName, NULL, &m_pIDL2, NULL);

// マイコンピュータのIDリスト
SHGetSpecialFolderLocation(NULL, CSIDL_DESKTOP, &m_pIDL1);

これに対し
ttp://www.kab-studio.biz/Programing/Codian/ShellExtension/06.html
のConcatItemIDをそのまま使って

pIDL = ConcatItemID(m_pIDL1, m_pIDL2)

のような形になっております
0740デフォルトの名無しさんNGNG
GetUIObjectに渡すItemIDListは、基本的にSingle-Levelでないとだめ。
0741737NGNG
Desktopをつけるのが余計なんでしょうか?
それともファイルのIDリストのm_pIDL2から末尾を取るという事でしょうか?

Desktopをつけなくても、
マイコンピュータからのフルIDLISTが入手できるみたいで
挙動は変わりませんでした

末尾だけをGetUIObjectOfに渡したら
フォルダの場合メニューが出るけど、正しく実行されない
(どうやらデスクトップフォルダ+ファイル名になってるみたい)
ドライブの場合は妙に寂しいメニューしか出ない

って感じで、かなり困ってます。。。
0742デフォルトの名無しさんNGNG
ITEMIDLIST* pIDL = ::ILCreateFromPathW(L"C:\\HOGE\\PUNI");
const ITEMIDLIST* pIDLSingleLevel = ::ILClone(::ILFindLastID(pIDL));
::ILRemoveLastID(pIDL));

IShellFolder* pDesktop;
IShellFolder* pFolder;
IContextMenu* pContextMenu;
::CoCreateInstance(CLSID_ShellDesktop, NULL, CLSCTX_INPROC, IID_IShellFolder, (void**)&pDesktop);
pDesktop->BindToObject(pIDL, NULL, IID_IShellFolder, (void**)&pFolder);
pDesktop->Release();
pFolder->GetUIObjectOf(hwnd, 1, &pIDLSingleLevel, IID_IContextMenu, NULL, (void**)&pContextMenu);
pFolder->Release();

なんか();

pContextMenu->Release();
::ILFree(pIDLSingleLevel);
::ILFree(pIDL);

大体こんな感じ。
0743737NGNG
GetUIObjectOfはデスクトップを使えばいいってわけじゃなかったのね
本当にありがとう、なんとかうまく表示されるようになりました

・・・これからIContextMenu2 との戦いっす、ふみゅー
0744デフォルトの名無しさんNGNG
テキストボックスとそれの名前(項目名)で100個近くに
コントロールを画面に貼り付ける予定なのですが
座標指定でなにかいい案はありませんでしょうか。

ちょっとずれたらすべて修正なんて気が狂いそうです。
0745デフォルトの名無しさんNGNG
>>744
その実装を考え直すことを勧める

リストビューを使うとか、他に方法はあるだろ?
0746デフォルトの名無しさんNGNG
>>744
リソースエディタを使わずに、CreateWindow()でセコセコと生成するとか。
0747デフォルトの名無しさんNGNG
>>746
多分それが正解だろうな
描画位置とかサイズとかをdefineしておけば変更も簡単だし
0748デフォルトの名無しさんNGNG
745が正解だよ。
0749デフォルトの名無しさんNGNG
クライアント側から「テキストボックスで」という指定があるという可能性も否定できないかもしれない
0750デフォルトの名無しさんNGNG
そんな仕様を呑むのがどうかしている。
0751デフォルトの名無しさんNGNG
EDIT*100(/2か?)は止めたほうがいいな。
リソースに対して優しくない。UIとしても。
それはそれとして、表計算ソフトからジェネレートできるようにすりゃいいだけな気もするが
0752デフォルトの名無しさんNGNG
>>744
リソーススクリプトを手動で修正するとか。
0753デフォルトの名無しさんNGNG
DialogBoxIndirectとかCreateDialogIndirectを使うとか
0754デフォルトの名無しさんNGNG
リソースエディタを外部から操作するプログラムを作れ。
0755デフォルトの名無しさんNGNG
リソースを外部から操作するプログラムならいくらでもあるが……。
0756デフォルトの名無しさんNGNG
一枚のダイアログに載せられるコントロールの数って上限無かったか?
昔、VBで自滅してた奴がいたがw
128個位でダイアログが出なくなったような。
Win32 は関係ないのかな?

あと、100個もコントロール載せるとダイアログが出てくるまで時間が掛かる、
ウィンドウの再描画にも時間が掛かるよ。

自分で表を書いておいて、指定のセルを編集時にテキストボックスを
セルのサイズで作って出すのが、綺麗だと思う。
Excel とかがやってる方法だけど…
ちと工数が掛かりすぎるかな?
0757デフォルトの名無しさんNGNG
NT系でもリソースは無限じゃないしね。
0758デフォルトの名無しさんNGNG
DHTMLダイアログ使えよ、エディットの100個や200個屁でもない
0759デフォルトの名無しさんNGNG
またバカが一人
0760デフォルトの名無しさんNGNG
世界の真ん中に立つ塔は楽園へ続いているという

そして、またバカが一人
0761デフォルトの名無しさんNGNG
こんにちは。

リソースのビットマップを表示させたいのですが、
http://www.kumei.ne.jp/c_lang/sdk/sdk_26.htm
http://wisdom.sakura.ne.jp/system/winapi/win32/win104.html
↑で紹介されてる手順通りに書いても、LoadBitmap()がNULLを返してきて描画してくれません。
ICONリソースなどは同じ手法で読み込んでくれるのですが…。
なお、実行ファイルのサイズから正常に埋め込まれてるのは確かのようです。

環境は windows2KSP4 + Visual C++.NET std です。
初歩的な質問かもしれませんが、宜しくお願い致します。
0762デフォルトの名無しさんNGNG
>>761
とりあえず引数の確認とGetLastError()
0763デフォルトの名無しさんNGNG
>>761
ついでにResourceHackerとかで実行ファイルのリソース確認しとき。
念のため。
0764デフォルトの名無しさんNGNG
>>761
∀・)っMAKEINTRESOURCE( MYBMP );
0765デフォルトの名無しさんNGNG
Win32 API入門
http://black.sakura.ne.jp/~third/system/winapi/win.html

ここ行けなくなってしまってるね。
結構利用してたのに残念。
0766デフォルトの名無しさんNGNG
>>765
ttp://wisdom.sakura.ne.jp/

ここに移転したって書いてありますけど…
0767デフォルトの名無しさんNGNG
CDドライヴに空の状態から CD が挿入されたことを検知するための
メッセージというのはないのですか?
0768デフォルトの名無しさんNGNG
文字の大きさを変更する関数ってありますでそうか。
すみません。初歩的な質問で。
色はSetTextColorで変更できたのですが・・・。
0769デフォルトの名無しさんNGNG
あります。
0770デフォルトの名無しさんNGNG
うそです。ありません。
0771デフォルトの名無しさんNGNG
CreateFont(Indirect)の時にしか文字の大きさは選べない。
0772デフォルトの名無しさんNGNG
>>768
メモリデバイスコンテキストに書いて、ストレッチブリットするのじゃだめ?
0773デフォルトの名無しさんNGNG
>>768
http://www.kumei.ne.jp/c_lang/sdk/sdk_27.htm
0774デフォルトの名無しさんNGNG
>>772
書いてからStretchしたらギザギザになんね?
0775デフォルトの名無しさんNGNG
大きく描いてから縮小すればいいんだYO
0776デフォルトの名無しさんNGNG
SetStretchBltModeも忘れるなよ
0777デフォルトの名無しさんNGNG
>>767
WM_DEVICECHANGE
CD-ROMドライブのプロパティで、
自動挿入をオンにしておく必要があるが。
0778761NGNG
>>762
GetLastError()で取得したエラーコードをFormatMessage()で変換してみたところ、
「指定したリソース名がイメージファイルに見つかりません。」
と出ました。
でも「猫でも〜」や他所で見かける例だと、この手順で問題なく読み込んでくれるはずなのですが…。
ResourceHackerは敷居が少し高そうですので、もう少し慣れたら触ってみることにします。
レスありがとうございました。

>>764
MAKEINTRESOURCE( MYBMP )としてみましたら呆気なく表示されました。
実際はただキャストしてるだけのようですが、なぜこれで上手く行くのでしょうか…。
ちょっと考えてみます。
レスありがとうございました。
0779デフォルトの名無しさんNGNG
IEのファイルダウンロードのダイアログを同等のものを
表示させたいのですが、どのAPIを使えばよいのでしょうか?
「開く」「保存」「キャンセル」のボタンがあるやつです。
また、上書き確認のダイアログの表示方法もありますか?
0780デフォルトの名無しさんNGNG
ハードウェアの安全な取り外し を行うのはAPIでできますか?
できるとしたらどうすれば。
0781デフォルトの名無しさんNGNG
>>779
GetOpenFileNameとかGetSaveFileNameとかかな。
しかるべきフラグを渡せば、上書き確認とかもできる。
0782デフォルトの名無しさんNGNG
>>778
リソースの識別子は "" で囲った文字列形式と
数値形式の2通りがあるんです。
>>778さんは数値形式でリソースを作成したのでは?

LoadImage 等の関数は文字列形式を必要とするので、
MAKEINTRESOURCEマクロでキャストする必要があります。

OSはたぶん、渡された文字列ポインタの値をみて、
もし上位ワードが0x0000ならば、
それは文字列ではなく数値をキャストしたものである、
と判断しているのでしょう。
0783デフォルトの名無しさんNGNG
>>780
APIを徹底的に調べればわかるんでないの?
0784デフォルトの名無しさんNGNG
>>780
やったことないので知らないけど
SetupDi〜のAPI調べるといいかも

SetupDiRemoveDeviceとかなんか怪しげ
0785デフォルトの名無しさんNGNG
コモンコントロールのアップダウンで
下限の次を上限に、上限まで行ったら下限に行くように
ループさせたいのですが、特別なオプションってありませんでしょうか
0786デフォルトの名無しさんNGNG
>>785
MSDNのUp-Down Control Stylesをよく見ろ。
0787デフォルトの名無しさんNGNG
ドロップダウン型のコンボボックスで
リスト部分のウィンドウハンドルを取得する方法はないでしょうか。
GetComboBoxInfo とかだとNULLが返って来ちゃうんですよね。
お昼過ぎからずーっと探してるのですが……。
どなたかご存じでしたらご教授ください。
0788デフォルトの名無しさんNGNG
COMBOBOXINFOを初期化してないんじゃないの?
特にcbSize
0789787NGNG
>>788
cbSizeを設定しておく必要があったのですか!
わぁ、動いた。動きましたorz
……うわー、俺の午後ってー!
ありがとうございました(深々礼
0790デフォルトの名無しさんNGNG
>>789
MSDN見てないのか?
0791デフォルトの名無しさんNGNG
DLLの関数の呼び出し規約がcdeclかstdcallか、を、
ヘッダファイルや、ソースファイルが、無くても知る方法ありますか?
たとえばdumpbin.exeなどでDLLをダンプしたらわかりますでしょうか??
0792デフォルトの名無しさんNGNG
>>791
見当がつくこともある。
#と答えておこう。
0793789NGNG
>>790
プラットフォームSDK GetComboBoxInfo関数 のページは見たのですが……
後は、COMBOBOXINFO構造体のページとかは。
まだ始めたばかりでセオリーとか分かってなくて、申し訳なかったです。
0794& ◆FtKQchXwgI NGNG
 
0795794NGNG
俺のうぐいすが化け化けなのはなぜですか?(;_;)
0796デフォルトの名無しさんNGNG
>>793
>Pointer to a COMBOBOXINFO structure that receives the information.
>Note that you must set COMBOBOXINFO.cbSize to sizeof(COMBOBOXINFO) before calling this function.

こう書いてなかった?
0797デフォルトの名無しさんNGNG
>>792
791です、dumpbin /exports したけど、さっぱり見当がつきません。
どのあたりが見分けるポイントなんでしょうか。
(なかばアキラメモードです....)
0798デフォルトの名無しさんNGNG
スタックを覗いてみるとか
0799デフォルトの名無しさんNGNG
>>798
791です。
あ、なるほどね。スタックの積み順を調べたらいいんだぁ。
0800779NGNG
ファイル保存のダイアログを出さずに、
ファイルの上書き確認ダイアログを表示させたいのです。
あとダウンロードの確認ダイアログはどうするのでしょうか?
次の場所からファイルのダウンロードするように選択しました。
「このファイルを上記の場所から開く」
「このファイルをディスクに保存する」というダイアログのことです。
簡易ブラウザを作っていてなにかダウンロードするときに
このダイアログを出そうと思っています。

0801793NGNG
>>796
> hwndCombo コンボボックスのハンドルを渡します。
> pcbi 情報を受け取るCOMBOBOXINFO構造体へのポインタを指定します。
なるほど、MSDN Japanの方だけじゃ情報不足なんですか。
わかりました、今度からはそっちも見に行くようにします。
どうもありがとうございましたです(礼
0802デフォルトの名無しさんNGNG
>>800
前者は MessageBox( hWnd, "上書きするよ?", "確認", MB_OKCANCEL | MB_ICONWARNING ); でええやろ。
0803デフォルトの名無しさんNGNG
修飾された関数名の前に"_"、後ろに"@"がつくとstdcallなのだと思うけれど
これはextern "C"限定の命名規則なのかしらん
0804デフォルトの名無しさんNGNG
そこでハンド逆アセンブルですよ。
0805779NGNG
>>802
UIが統一されていないのであまり気が進まないけど。
用意されててもいいような気がするんだけどないのかなー?
0806デフォルトの名無しさんNGNG
>>800
OPENFILENAME
OFN_OVERWRITEPROMPT
0807デフォルトの名無しさんNGNG
↑質問文をよく読まないせっかち君
0808デフォルトの名無しさんNGNG
CGIの出力をプログラムで取得したいと思い、InternetReadFileを
使用したのですが、出力ではなくCGIのソースそのものが取得されてしまいました。
CGIの出力を取得するのは無理なんでしょうか?
0809デフォルトの名無しさんNGNG
CGI側のサーバ設定がおかしい。
もしくは何か勘違いしている。
0810デフォルトの名無しさんNGNG
テストどぞ
つhttp://pc5.2ch.net/test/read.cgi/tech/1095534704/l50
0811デフォルトの名無しさんNGNG
>>808
ブラウザで開いてみそ。

あと、ココとかのURLを入れてみそ。
それでもCGIのソースが出るようだったら、大発明。
0812デフォルトの名無しさんNGNG
脆弱性発見でつか?
0813デフォルトの名無しさんNGNG
>>803
extern "C"をつけていなくても、stdcall関数なら当然、stdcallの修飾(前に"_"、後ろに"@"そしてプッシュするサイズ)は付く。
ただし、C++の修飾を先にしたものにstdcallの修飾がなされる。
0814779, 800NGNG
誰か回答をくれー!
0815デフォルトの名無しさんNGNG
>>814
IEを呼び出せばいいだろ。
0816デフォルトの名無しさんNGNG
ビットマップのパスだけが分かっているとき、画像を表示させるにはどうすればいいですか?
0817デフォルトの名無しさんNGNG
>>816
LoadImage
0818デフォルトの名無しさんNGNG
>>817
LoadImage()では表示は出来ません。
0819デフォルトの名無しさんNGNG
ShellExecuteEx
0820デフォルトの名無しさんNGNG
>>819
ありがとうございます。確かに表示出来ました。
0821デフォルトの名無しさんNGNG
WritePrivateProfileStringW で設定を保存してもUNICODEで保存されないのって仕様ですか?
何のためのワイド文字版APIなの??
0822デフォルトの名無しさんNGNG
>>821
UNICODEにしかない文字を書き込んだらどうなる?
0823デフォルトの名無しさんNGNG
A2Wを呼び出す手間を軽減するためのW版だろ
0824デフォルトの名無しさんNGNG
>799
積み順じゃなくて、クリアの方法を見ること。
積み順は cdecl も stdcall の同じ。
0825821NGNG
>>822
「????」とかに変換される。
唯一のメリットといえば、UNICODE使ったファイル名でもアクセス可能だということだけ…。

でも、*.regファイルなんかは、iniファイルと同じフォーマットでUTF16LEなのに、regedit.exeはAPI使わずに
アクセスしてんのかな?
0826デフォルトの名無しさんNGNG
>>825
Unicode版のAPIで.iniファイルに書きこんだら
Unicodeで保存されるべき…。
なるほど、そういう発想はなかったな。
まあ、いろんなアプリがひとつの.iniファイルに
アクセスする可能性があるし、過去との互換性も考えると
ANSIで保存されるのは仕様なんでしょう。

.regファイルの件は何が疑問なのかよく分からない。
0827デフォルトの名無しさんNGNG
>>825
Dependency Walkerで調べたところ、GetPrivateProfileStringW()を直接呼び出すことはしてなさそうだ。
0828デフォルトの名無しさんNGNG
オーナードローボタンを複数画面に表示し、
それぞれ別のビットマップを貼り付ける方法を教えてください。
0829デフォルトの名無しさんNGNG
>>826

.regを読むのに*Profile* APIを使ってるはずだと思ってるんでしょ。
0830デフォルトの名無しさんNGNG
みんなやってそう、かつ簡単そうで難しい、(完璧ではない)

文字処理
0831デフォルトの名無しさんNGNG
>>821
なに? WritePrivateProfileStringW 使って
引数にUNICODEの文字列を指定して
書き込んだらSJISに変換されて書き込まれるの?
まさか、引数にSJISの文字列を指定して書き込んでも
UNICODEに変換されないとか言っているわけじゃないよね?
0832デフォルトの名無しさんNGNG
( ゚д゚)ポカーン
0833デフォルトの名無しさんNGNG
16ビット時代の遺物なんだからUnicode対応なんかしてないよ。
レジストリ使うか自前でやれ
0834デフォルトの名無しさんNGNG
同じファイルに読み書きするのにAPIのインターフェイスがAかWかで文字コードが変わったら使い物にならんやん
0835デフォルトの名無しさんNGNG
WM_ACTIVE site:microsoft.comでググっても何も見つからないのですがこれはWM_ACTIVEは使うなという事ですか?
0836デフォルトの名無しさんNGNG
>>833
レジストリも結局は一緒じゃないか?
REG_SZ型は全てUnicodeで保存されてるはず。
ユーザが意識しなくてもいいことじゃないの?
0837デフォルトの名無しさんNGNG
WM_ACTIVATE
0838デフォルトの名無しさんNGNG
>>836 ハァ?
0839デフォルトの名無しさんNGNG
噛み合ってません
0840デフォルトの名無しさんNGNG
要するに

*Private*
  AでもWでもファイルはSJIS

レジストリ
  Aでb澹でもファイルはUnicode

結論
  AでもWでも同じファイルを使えるように設定された仕様

ということでFA?
0841デフォルトの名無しさんNGNG
プロパティページについてなんですが、CreatePropertySheetPageが失敗したとき
PROPSHEETPAGE::pfnCallbackで指定したコールバックは呼ばれるのでしょうか?
lParamにページで使うメモリを持たせ、コールバックのPSPCB_RELEASEで解放するようにしています。
0842デフォルトの名無しさんNGNG
>>841
呼び出し元で確保したら呼び出し元で開放するのが基本じゃないか?
0843841NGNG
>>842
DLLからアプリ側にHPROPSHEETPAGEを渡すので
解放するタイミングがコールバックしかないのです。
0844デフォルトの名無しさんNGNG
>>842
時と場合による
0845デフォルトの名無しさんNGNG
GetCharWidth32でU+10000以降の文字幅を取得できないのは仕様ですか?
0846デフォルトの名無しさんNGNG
FindFirstFile とかで、ディレクトリツリーを辿るプログラムで、ディレクトリのシンボリックリンクを
辿らせないようにするにはどうすればいいのか教えてください偉い人。
0847デフォルトの名無しさんNGNG
CreateWindowでEDIT(テキストエディタ)を作成し
入力を整数又は小数点にしたいのですが
整数はES_NUMBERで実現できました。
しかしながら整数だけの入力にしてしまいますと
当然ながら少数点の入力ができません。
整数と少数に入力を制限できる方法ってありますでしょうか。
0848デフォルトの名無しさんNGNG
>>846
興味本位で訊くんだけど、NTFSはディレクトリのシンボリックリンクを作れるの?
0849デフォルトの名無しさんNGNG
>>848
呼称は違うけど、ほぼ同等なものが作れる。
0850デフォルトの名無しさんNGNG
\\相手のPC\共有フォルダ名
みたいなパスをFindFirstFileで検索掛けると
"ファイルが見つかりません"というエラーが返却されるんですけど、

本当にファイルがないか、それとも、ネットワーク共有名かを判断するAPI
ってないですかね?
0851デフォルトの名無しさんNGNG
>>850
少なくとも、
\\127.0.0.1\SharedFolder\*
とかだと検索できるけど。
0852デフォルトの名無しさんNGNG
>>850
UNC
0853デフォルトの名無しさんNGNG
>>852
PathIsUNCですかね?
なんかいけそうです。有難う御座います。
0854デフォルトの名無しさんNGNG
うんこネタ禁止
0855デフォルトの名無しさんNGNG
>>854
朝起きて一発目のレスがそれかorz
0856デフォルトの名無しさんNGNG
スピンコントロールの内容を変数にゲットしたいのですが
GetWindowTextやGetDlgItemTextでは取得できませんでした。
スピンコントロールをゲットできる関数ってありますでしょうか・・・。m(_ _)m
0857デフォルトの名無しさんNGNG
>>856
UDM_で始まるメッセージを調べてみ
0858デフォルトの名無しさんNGNG
MFCのCSpinButtonCtrl::GetPos()のソースを見てみるとか。
0859デフォルトの名無しさんNGNG
MACアドレスを取りたくてGetAdaptersInfoを使ったのですが、
IEEE1394のアドレスだけ取れませんでした。
そういうものなのでしょうか。
getmac.exeとipconfig.exeの出力結果も違うし、ググっても
情報が全然ないしで困りました。
0860デフォルトの名無しさんNGNG
>>859
WBEM 使うととれるかも。
0861デフォルトの名無しさんNGNG
>856
ちなみにスピンコントロールは、アップダウンコントロールと
エディットコントロールの組の事。
856 が GetWindowText で得ようとしたのは
アップダウンコントロールの方のテキストだろうな。
0862デフォルトの名無しさんNGNG
Windowsコントロールの標準のポップアップメニューにメニュー追加はどうやりますか?
0863デフォルトの名無しさんNGNG
GetSystemTime()で世界協定時刻(UTC)を取得しているのですが
このAPIで取得出来る時刻はどの程度信頼性のあるものなのでしょうか?
ユーザが簡単に調整など出来ないようになっているものなのでしょうか?
0864デフォルトの名無しさんNGNG
>>863
コントロールパネルの「日付と時刻」を開いてごらん。
0865デフォルトの名無しさんNGNG
>>864
日付と時刻のプロパティが出ました。
これに何かあるのでしょうか?
0866デフォルトの名無しさんNGNG
>>863
GetSystemTimeは世界協定時刻(UTC)を取得する関数ではありません。
システム日時をUTCに換算して取得する関数です。

信頼性は、PCの時刻に依存します。
ユーザが、PCの時刻を操作できる権限を持っていれば、変更される可能性があります。
0867863NGNG
>>866
という事は殆ど当てにならないという事ですね…
厳密に取得するには、(UTC)が取得できる
信頼性のあるサーバから取ってくるしかないという事ですか。
0868デフォルトの名無しさんNGNG
>>867
Windows NT 系だったら、タイムサーバーにアクセスして
時刻を正確に調整してくれるように設定できるよ。
まあ、それもユーザー(あるいは管理者)に任されているわけだけど。
企業内の大きなLAN であれば、タイムサーバー置いてるでしょう普通。
0869デフォルトの名無しさんNGNG
http://www.uploda.org/file/uporg13472.txt

ボタン1つ作れないorz
どこがダメなんですか?
0870デフォルトの名無しさんNGNG
>>869
#defineIDB_BUTTON1100;

このセミコロンを削除しましょう。
0871デフォルトの名無しさんNGNG
windowsプログラミングでスクロールバーを扱う関数にSetScrollRange(hwnd,iBar,iMin,iMax,bredraw)という説明があったのですが
第2引数のiBarにはSB_VERTかSB_HORZを指定するとだけ書いてあり、これらがどういう意味を持つのかさっぱりわかりません。
この二つは何が違うのでしょうか?
0872デフォルトの名無しさんNGNG
>>871
ttp://msdn.microsoft.com/library/
0873デフォルトの名無しさんNGNG
>>871 SDK のドキュメント読めばわかるから。
0874871NGNG
MFCのデータしか出ないのですが。。
0875デフォルトの名無しさんNGNG
>>874
>>872で「SetScrollRange」で検索して上から4番目。
0876デフォルトの名無しさんNGNG
ms-help://MS.PSDK.1033/shellcc/platform/commctls/scrollbars/scrollbarreference/scrollbarfunctions/setscrollrange.htm
0877デフォルトの名無しさんNGNG
>>875
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/vclib/html/_mfc_cscrollbar.3a3a.setscrollpos.asp

ここであってます?
0878デフォルトの名無しさんNGNG
>>877
>>872
0879デフォルトの名無しさんNGNG
>>877
違う。
あと日本語版のヘルプは肝心な記述が抜けてたりするんで、雰囲気だけ掴むだけにしとけ。
0880871NGNG
英語版でようやくたどりつけました。。
MSDNは英語版のほうがよろしいんですかね〜?
なかなかAPIを検索しようにもMFCばっかりで。。
0881デフォルトの名無しさんNGNG
つーか、縦か横かって話だけだろ?
0882デフォルトの名無しさんNGNG
MFCも結局はAPI呼んでるから見て損はないと思う。
それに>>871は引数から言ってMFCじゃないのか?
あとAPIのSetScrollRangeは使うなっていうことだぞ
0883デフォルトの名無しさんNGNG
>>882
プログラミングwindowsという本に載っていた関数なのでAPIだと思うのですが。。MFCなのですかね。。??
0884デフォルトの名無しさんNGNG
MFCで引数がhwndってあまり無いわけだが。
0885デフォルトの名無しさんNGNG
SB_VERT SB_HORZでイメージわかないようだと英語は厳しいだろ。
0886デフォルトの名無しさんNGNG
自分のウインドウがアクティブになっていなくても、
あるキー(たとえばF1等)が押されたときにそれを感知するにはどうしたらいいですか?
0887デフォルトの名無しさんNGNG
キーロガーでも作りたいのか?
0888デフォルトの名無しさんNGNG
ほっときー
0889デフォルトの名無しさんNGNG
監視員をつける
0890デフォルトの名無しさんNGNG
グローバルフックを使う。DLLを作成しる
0891886NGNG
>>888
Hot keyってコモンコントロールだったんですか……。
これを使ってみます。
0892デフォルトの名無しさんNGNG
コモンコントロールのホットキーは違うと思う。
0893デフォルトの名無しさんNGNG
>>891
コントロールのホットキーは、キーの組み合わせを受け取れるだけの
コントロールであって、その組み合わせを監視するには、DLL作って
フックするしかない。
ttp://www.kumei.ne.jp/c_lang/sdk2/sdk_161.htm
0894デフォルトの名無しさんNGNG
力業でGetAsyncKeyStateとか
0895デフォルトの名無しさんNGNG
フックだと監視できても変更できないしなぁ・・・。見てるだけ。orz
0896デフォルトの名無しさんNGNG
デスクトップのショートカットキーと同じようなもので良いのなら、
WM_HOTKEYを使う。

フックなら変更も可能。
0897デフォルトの名無しさんNGNG
>>896
WH_GETMESSAGE の場合だけ?
0898デフォルトの名無しさんNGNG
Cygwinのフォルダが消せず、フルコントロールできるのがシステムになっていたので
与えられたフォルダのパス以下を全て削除するようなプログラム書きたいんですが
システム権限で動くようにするにはどうしたらいいんでしょ?
0899デフォルトの名無しさんNGNG
以下のキーに実行ファイル名を入れてマシンを再起動。SYSTEM権限で実行されるので注意。

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
もしくは、
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce
0900898NGNG
>>899
ありがとうございます、さっそくコード書いて試してみます。
0901できNGNG
すいませんが、どなたか、VB.netにてwin2000、winXPの端末がコンピュータロック中か取得する方法をご存知でしょうか?
(APIを利用してできるのではと思いこちらに質問しました。)
0902デフォルトの名無しさんNGNG
いま動いてるプロセスを管理するような関数ってある?
いくらリファレンスとか WWW の検索かましても
これといったのがないんだけど

とくに各プロセスのファイルアクセスの情報を見たいんだけど
0903デフォルトの名無しさんNGNG
ない
0904902NGNG
例えばタスクマネージャに使ってる関数てどんなの?
0905デフォルトの名無しさんNGNG
タスクマネージャにファイルアクセスのログなんてあったっけ
0906デフォルトの名無しさんNGNG
>>905
いやファイルアクセスのことはとりあえず置いといて

最終的に本当にしたいのはファイルとプロセスの関係なんだけどね
0907デフォルトの名無しさんNGNG
>>902
NT系ならAPIでファイルハンドルの保持状況を見れないことはないが、フックしたほうが簡単。
0908デフォルトの名無しさんNGNG
API フックのこと?
メッセージフックじゃファイルアクセスを監視できないと思うけど。
0909デフォルトの名無しさんNGNG
漏れも linux の fuser みたいなの欲しいけど、簡単な方法はないんじゃない?
かの sysinternals の FileMon でも VxD 使ってフックかけてるし。
0910902NGNG
あそうそう

まさに filemon みたいなことがしたいわけよ

あれ,どうやってんの?

詳しく詳細きぼん
0911デフォルトの名無しさんNGNG
↑
FileMon はここ。
このサイト、Windows で変なことしようとするとき参考になります。
ttp://www.sysinternals.com/ntw2k/source/filemon.shtml
0912デフォルトの名無しさんNGNG
>>911

つーかその動作原理を知りたいのさ

そのサイトに何か書いてあるん?
0913デフォルトの名無しさんNGNG
>>901
「コンピュータロック中」ってどういう状態?
0914デフォルトの名無しさんNGNG
>>912
見に行きゃいいじゃん。そもそも>909にVxD使ってるって書いてあるし。
0915デフォルトの名無しさんNGNG
”How FileMon Works”以下に必要な情報へのリンク等があるみたいです。
Windows "handle table" あたりでググルと別方向からの情報も見つかると思います。

簡単だけれども酷いやり方としては、先方のプロセスにコードをinjectして、
0x0000〜0xFFFFあたりを NtQueryObject で調べてみるとか。
0916909=911=915NGNG
>そのサイトに何か書いてあるん?
書いてはあるけど、IFSMGR は SDK が高いので簡単には使えないですね。
しかし酷い態度。相手にするんじゃなかった・・・
0917デフォルトの名無しさんNGNG
ちょっとでも礼が言えないヤツなんだな
0918できNGNG
>>913
「コンピュータロック中」とは「Alt」+「Ctrl」+「Del」をおしてするコンピュータロックのことです。
0919デフォルトの名無しさんNGNG
OpenInputDesktopでwinlogonデスクトップがアクティブかどうか調べる
0920デフォルトの名無しさんNGNG
丁寧な文体でない質問には答えない。これが後悔しないコツ。
0921デフォルトの名無しさんNGNG
>>920
文体が丁寧なだけで中身が無いよりも、
必要な内容が全て含まれている崩れた文体の方が好ましい。
0922デフォルトの名無しさんNGNG
>>921
それはそうだ。ただ態度、出方による。
0923909=911=915NGNG
そもそもこっちが勝手にレスしてるんだから
相手の態度がどうであれ関係ないか、
と考え直しますた。
0924デフォルトの名無しさんNGNG
理解しようとする気がない奴には答えない。これが後悔しないコツ。
0925921NGNG
>>924
激しく同意
0926デフォルトの名無しさんNGNG
皆さん、教えてもらったら「ありがとう」といいましょう。
善意で答えてくださっているのですから、横柄な質問はやめましょう。
0927デフォルトの名無しさんNGNG
http://pc5.2ch.net/test/read.cgi/tech/1093519463/551-552
0928デフォルトの名無しさんNGNG
>>921
ここに居るだけで傷ついてる人はいるけど
0929デフォルトの名無しさんNGNG
そりゃ問題外
0930デフォルトの名無しさんNGNG
>>929
それが大事
0931886NGNG
>>896
RegisterHotKey()で登録したホットキーを無効にするにはどうすればいいんですか?
0932デフォルトの名無しさんNGNG
ん?
ヘルプ見たらRegisterHotKey()のすぐ横にあるだろ
0933デフォルトの名無しさんNGNG
初心者にまず教えるべきことはMSDNの見方だと思うんだよね。
0934デフォルトの名無しさんNGNG
礼儀だろ
0935デフォルトの名無しさんNGNG
カラテカを100回クリアできるまでは初心者
0936886NGNG
……見落としていましたOrz
0937デフォルトの名無しさんNGNG
タブを使ったチャットソフト作ろうとしているんですけど、タブ
を切り替えるときに表示内容を変更する場合、表示内容をロード
して(文字位置や、フォントサイズなど)表示を切り替えるのと、
タブごとに異なるビューが存在し、タブを押すことによって表示
が切り替わるのが思いつくんですが、後者のほうは簡単にできる
でしょうか?前者はあまりにも保持しておく情報が多そうなんで
なんかスマートじゃない感じがします。
0938デフォルトの名無しさんNGNG
すいません。教えてください。

CreateWindowで作ったウインドウを親ウインドウとして、CreateDialogで
ウインドウにダイアログを貼り付けています。
このダイアログ内のボタンに”標準のボタン”を設定し、見た目は外枠?の
ついた標準のボタンになっているのですが、エンターを押しても実行されません。
マウスでクリックすれば実行できます。

フォーカスとかそういう問題なのでしょうか?
0939デフォルトの名無しさんNGNG
>>937
私ならダイアログをはっつけるね。

>>938
そういう問題でしょう。恐らくは、はっついたダイアログにフォーカスが来てないのかと。
0940デフォルトの名無しさんNGNG
>>938
エンターの押し下げはモーダルダイアログ用のダイアログプロシージャによって実行されます。
モードレスダイアログでは機能しません。
0941デフォルトの名無しさんNGNG
>>940
つまり、ウインドウにモードレスダイアログを貼る方法の場合は、
通常のエンターでのボタン押下はつかえないということでしょうか?

もしどうしても実行したいのであれば、自分でキーイベントを拾う??
0942デフォルトの名無しさんNGNG
IsDialogMessageをメッセージループに組み込む
0943デフォルトの名無しさんNGNG
>>942
ありがとうございます。
今は環境がないので後日試してみます。
0944デフォルトの名無しさんNGNG
SHQueryValueExとRegQueryValueExの違いはなんでしょうか?
MSDN見たところどちらも違いがないように思えるのですが。
0945デフォルトの名無しさんNGNG
Photoshopのレイヤー情報表示部分のような、ペイントソフトに良くある
下記のコントロールはどの様に作るのでしょうか
_______________________
|★ ◎ レイヤー1. |
|★ ○ .////////. | ←フォーカス時の反転は文字の部分(=レイヤーxx)のみ
|☆ ◎ レイヤー3. |
|           | ★や◎はアイコンで、クリックすると状態が☆や○に変わる
|           |
 ̄ ̄ ̄ ̄ ̄ ̄ ̄
オーナードローかカスタムドローのリストビューかなとは思うのですが、
反転部分が文字部分だけというのが引っかかります。
VCLに似たような物があるとも聞いたので、もしかしたら何か
既成のコモンコントロールがあるのでしょうか?

spy等で調べてみたいのですが、自分ではPhotoshopを持って無く、
また学校のPCにexeを入れると非道く怒られるもので…ひとつよろしくお願いします
0946デフォルトの名無しさんNGNG
Photoshopは確かすべて自前描画のコントロールだったと思うのですが。
Macと共通のインターフェイスですし。
0947デフォルトの名無しさんNGNG
>>945
>spy等で調べてみたいのですが、自分ではPhotoshopを持って無く、
>また学校のPCにexeを入れると非道く怒られるもので…ひとつよろしくお願いします

何の学校かにもよるだろうけど、勝手にインストールするんじゃなくて、
目的を伝えて必要性を説明すれば怒られることはないと思われます。
もちろん断られるかも知れませんが。

もしプログラミング技術等を教える学校でありながらそれを断られるようなら、
選んだ学校を間違ったと思ってあきらめよう。
0948945NGNG
>>946
ぜ、全部自前ですかぁ…。なるほどマルチプラットフォーム。
あれと同じ物を作るのは…気が遠くなりそうですが覚悟を決めることにします。

>>947
あはは、Photoshop入りのPCが他学部の端末な事もあって、
怖じ気づいていました。確かに勉強事に奥手になっちゃ駄目ですね。

お二人ともレスありがとうございました。
0949デフォルトの名無しさんNGNG
>>916
> >そのサイトに何か書いてあるん?

大阪っぽい
0950デフォルトの名無しさんNGNG
チェックボックスの背景色を灰色から変更したいのですが、無理でしょうか。
SetBkColorでは無理でした。。
0951デフォルトの名無しさんNGNG
出来ます。
0952デフォルトの名無しさんNGNG
WM_GETCTLCOLOR*かな?
0953デフォルトの名無しさんNGNG
最近、興味のある質問がめっきり減った。
0954デフォルトの名無しさんNGNG
ちと古いホトショップだけど
PSFloatCとかPSViewCとか独自コントロールかな?
WM_USER+αが飛び交っておりました
0955デフォルトの名無しさんNGNG
>>953
じゃあ手本を示してみろ。
0956デフォルトの名無しさんNGNG
>>952

WM_GETCTLCOLOR*は存在しませんでしたが、ここら辺調べ見ます。
ありがとうございまいました。
0957デフォルトの名無しさんNGNG
スマソ ちょっと質問でつ
VB6で長時間稼動(多分100日とか連続でうごきっぱ)するシステムに
時間を計る部分があって、そこでTimegetTimeのAPIを使用しています。

しかし、ここで、TimegetTimeは連続である一定以上動かないのは周知の事実なのですが、このAPIが返す値が32Bit(VBのLong)を超えた場合、どのような動きになるのでしょうか?
テストするのが一番かとも思うのですが、そこまで時間に余裕がありません。
よろしくお願いいたします。
0958デフォルトの名無しさんNGNG
0
0959デフォルトの名無しさんNGNG
おぉ、ありがとうございます〜
まさかLongの最小値から始まる事は無いと思ってたんですが
これで対策が取れそうです
ありがとうございました〜
0960デフォルトの名無しさんNGNG
作成したボタンなどを消すにはどうすればいいですか?
0961デフォルトの名無しさんNGNG
>>960
DestroyWindow
0962938NGNG
>>942
すいません。出来ないです。

VC++のリソースエディタで”標準のボタン”にチェックして、
以下のソースを書くだけではだめですか?

// hWndDlgはダイアログのハンドル
while(GetMessage(&msg, NULL, 0, 0)){
if (hWndDlg && IsDialogMessage(hWndDlg, &msg)) continue;
TranslateMessage(&msg);
DispatchMessage(&msg);
}


0963960NGNG
>>961
無事消せました。ありがとうございます。
0964デフォルトの名無しさんNGNG
>>962
ダイアログにフォーカスが無いと。
親ウィンドウに WM_SETFOCUS がきたら SetFocus(hWndDlg) してあげてください。
0965デフォルトの名無しさんNGNG
ダイアログボックスに2つのエディットコントロール
A、BとボタンCを配置して、Aには、「%s,%d」などのフォーマットを
Bには引数リスト「a,b」を入力し、ボタンを押すと
sprintf("%s,%d",a,b);という関数を生成しようとしていますが、
巧くゆきません。引数リストがひとつの文字列となってしまいます。
"a,b"

巧い方法はないでしょうか?
宜しくお願いします。
0966デフォルトの名無しさんNGNG
関数を生成?

最大限に意図をくんでみたところで、君には無理だな。
0967デフォルトの名無しさんNGNG
そんなエロサイトのJavaScriptみたいなことはできない
0968デフォルトの名無しさんNGNG
考えてみたらWin32APIの質問ですら無かったな。
0969デフォルトの名無しさんNGNG
>>965
引数を分けたいだけなら、sprintfの前で、自分で切り出せばいいのでは?
でも、それでは文字列のままだけど。
可変引数の実装を作りたいなら、vsprintfとかを参考にすればわかります。
文字列から、実変数へ割り当てる仕組みを作るなら、
適当な配列と文字列を対応させる仕組みを作ります。stlのmapとか使えば楽できます。
0970デフォルトの名無しさんNGNG
MessageBoxについて
文字列+変数のような形で出力はできないのでしょうか
printf("私は%d倍バカです",i);
0971デフォルトの名無しさんNGNG
>>970
できない
wsprintfなどで、予め文字列を生成しておきましょう
0972デフォルトの名無しさんNGNG
CreateWindowのTEXT("EDIT")をWS_DISABLEDにすると
選択できなくなり灰色になるのですが
この灰色を別の色に変えたいのですが
方法ってあります?
0973デフォルトの名無しさんNGNG
>>972
ある。自分で別の色で塗ればよい。
0974デフォルトの名無しさんNGNG
>>973
よく意味わかるな
0975972NGNG
case WM_CTLCOLOREDIT:
{
//HDC hDC = (HDC)wParam;
HWND hCtrl = (HWND)lParam;
if(hCtrl == GetDlgItem(hDlg, IDC_EDIT))// エディットウィンドウのID
{
//SetBkMode(hDC, OPAQUE);// 背景を塗りつぶし
//SetTextColor(hDC, RGB(255,0,0));// テキストの色
//SetBkColor(hDC,RGB(192,192,192));// テキストが書かれている部分のテキストの背景の色
return (LRESULT)m_hBrush_BkColor;// テキストが書かれていない部分の背景の色
}
break;
}

調べて上記まで分かったのですが
4行目のlParamの値は何を入れればいいのでしょうか。
何度もすみません。
0976デフォルトの名無しさんNGNG
>>975
藻前、メッセージを理解してないだろ・・・
0977デフォルトの名無しさんNGNG
Win2000でファイルのプロパティを開いて
そこのセキュリティのタブにある
ユーザを追加する「追加」ボタンを押下した時に表示するダイアログを開くようなAPIって ないっすか?
0978デフォルトの名無しさんNGNG
>>976
「4行目のlParam」が何を指しているのかがわからないよ、ママン・・・
0979デフォルトの名無しさんNGNG
ぐぐれ
0980デフォルトの名無しさんNGNG
ぐぐるよりMSDNだろ
0981デフォルトの名無しさんNGNG
えぐれ
0982デフォルトの名無しさんNGNG
>>975
lParamはもらうだけで、こちらから入れる必要はありません。
0983デフォルトの名無しさんNGNG
くぐれ
0984デフォルトの名無しさんNGNG
ttp://www.ne.jp/asahi/rumic/k-asuka/tokeizak/t_images/Kuguruna.jpg
0985デフォルトの名無しさんNGNG
まぐれ
0986デフォルトの名無しさんNGNG
OfficeXPのExcelやWordのようなメニューバーは
どうやって作成するのでしょうか?
(各メニューについている灰色の短形?みたいなののことです。)
0987デフォルトの名無しさんNGNG
あれ不便だから知らなくて良いよ
ユーザー迷惑機能とはこのことだな
バージョン上げるネタに困ってるとしか思えない
0988986NGNG
なにが不便なのですか?
気になります。
0989デフォルトの名無しさんNGNG
>>987
デザインの話じゃねぇの?

もし一部のメニューが非表示になる機能だったら
絶対に止めとけ。使いにくくてしょうがない
0990デフォルトの名無しさんNGNG
IEとかOfficeとかで実現されてるそーいう機能って、有用かどうかも
考えずに真似したがるやつが絶えないな。
0991デフォルトの名無しさんNGNG
質問したいのでスレ立てて来るっす
0992デフォルトの名無しさんNGNG
Win32API質問箱 Build24
http://pc5.2ch.net/test/read.cgi/tech/1098967135/
0993デフォルトの名無しさんNGNG
というわけで質問お願いするっす

オーナードローでボタンを描くと、画面のプロパティで設定するデザイン色次第で
ボタンの色が浮いちゃったりしますが、この辺の整合性を上手く取る方法ってあるんでしょうか?
市販品は結構上手くやっているみたいですが
0994デフォルトの名無しさんNGNG
>>993
GetSysColor
0995デフォルトの名無しさんNGNG
>>993
XPとかでデザインいじられてるとどうがんばっても浮くので
あえて浮いてもかまわないデザインにする。
0996デフォルトの名無しさんNGNG
>>994-995
やるとしたらGetSysColorで色取って、自分で画像の色置換ですかぁ
XPも色々出来そうで恐いっすねぇ
大人しく地のダイアログごと色固定しちゃおう…

レスありがとうございました
0997デフォルトの名無しさんNGNG
画像の色痴漢^h^h置換?
んなことはLoadImageにやってもらえ
0998デフォルトの名無しさんNGNG
置換を痴漢で性器表現なんつって

>>997
おおブラボー!
これで手間書けずに済みそうです、サンクスです!
0999デフォルトの名無しさんNGNG
いやらしー自慰
1000デフォルトの名無しさんNGNG
お役に勃ててナニ寄りです
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。