[表示 : 全て 最新50 1-99 101- 201- 301- 401- 2chのread.cgiへ]
Update time : 05/09 12:24 / Filesize : 103 KB / Number-of Response : 480
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Win32API質問箱 Build76



1 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 09:56:18 ]
スレ立てるまでもない、Win32APIのついての質問はこちらへどうぞ。
やさしいお兄さんやお姉さんたちが答えてくれるかも。
「知らないならレスしないで下さい。ウザイだけです。 」なんて言わないでねっ!

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

■注意
・質問する前にMSDNライブラリやPlatformSDK、Google等で検索しましょう。
・日本語版MSDN Online Libraryは不完全です。英語版(msdn2.microsoft.com/library/)の利用推奨。
・APIフックなど高度な事をしたい場合はできるだけAdvenced Windowsを読みましょう。
・言語特有の問題やIDE、MFCやVCLなどの質問はそれぞれの言語や開発環境スレで

- Win32API質問箱 wiki
wiki.livedoor.jp/program1/d/FrontPage

Win32API質問箱 Build75
pc11.2ch.net/test/read.cgi/tech/1231423602/

116 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 23:34:58 ]
自分でQWORDって定義して使ってたけど
WORDLONGなんてあったんだね

117 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 23:45:52 ]
もうUINT64でいいよ。

118 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 23:49:18 ]
>>110
DIBは通常BottomToTopなので……まあ、色々あるんだわ、これが。
とりあえず、昔のDIB系のAPI使うより、
CreateDIBSectionから始めたほうが幸せになれる、とだけは言っとく。

119 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 23:52:40 ]
>>118
thx,幸せになるため変更してみる

120 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 00:44:50 ]
ウィンドウを毎秒50フレームで再描画してるんですが、ダブルバッファリングしてもどうしてもちらつきが多いです。
GDIとかで描いてる以上チラつきをDirectX並に減らすことは無理です?

121 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 01:04:28 ]
ちらついてる原因にもよるが。WM_ERASEBKGNDは潰しとけとかその辺は押さえてるか?

122 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 03:49:12 ]
セカンダリモニタの開始座標位置(左上の座標)を得るにはどうすればいいですか?
そのままプライマリの右に設定されてるときはプライマリの解像度を得たら分かるけど
左,上,下とか微妙にずらして斜め上とかにも設定できちゃうので困ってます。

123 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 04:10:47 ]
GetMonitorInfo

124 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 09:32:41 ]
>>120
GDIで50fpsとか、馬鹿ですか?



125 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 14:27:25 ]
指定した日が祝日かどうかを調べるAPIを教えてくださいよ

126 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 14:33:08 ]
>>125
面白くない。
もっとがんばりましょう。

127 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 14:35:49 ]
>>125
ワロタwww腹痛ぇwwwww

128 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 14:50:56 ]
BOOL WINAPI GetHoliday( time_t /* time */)
{
return TRUE;
}

129 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 14:52:07 ]
せめてイスラム歴の正月かどうかを調べるAPIぐらいの事言えよ

130 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 14:52:57 ]
ほら、滑ったw

131 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 15:20:09 ]
掲示板に僅か50秒で滑ったなんてレスするお前が滑ってるよ

132 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 15:31:08 ]
どうでもいいよ

133 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 15:35:23 ]
>>129>>131
笑わせてもらいました。

134 名前:129 mailto:sage [2009/02/05(木) 16:02:30 ]
ありがとうございます。



135 名前:129 mailto:sage [2009/02/05(木) 16:05:19 ]
騙り乙

136 名前:129 mailto:sage [2009/02/05(木) 16:05:24 ]
やめて下さい。知らないならレスしないで下さい。消えてください。

137 名前:129 mailto:sage [2009/02/05(木) 16:11:16 ]
暇人だな

138 名前:129 ◆TTLQTUMllo mailto:sage [2009/02/05(木) 16:15:00 ]
騙りが多いので酉つけました

139 名前:129 mailto:sage [2009/02/05(木) 16:20:27 ]
先に偽者にトリップ付けられたしw

140 名前:129 ◆TTLQTUMllo mailto:sage [2009/02/05(木) 16:40:54 ]
>>139
偽物乙

141 名前:129 mailto:sage [2009/02/05(木) 16:42:15 ]
しつこいw

142 名前:129 mailto:sage [2009/02/05(木) 16:43:08 ]
僕がイスラム歴の正月かどうかを調べるAPIです。

143 名前:129 ◆TTLQTUMllo mailto:sage [2009/02/05(木) 16:44:41 ]
>>140
オマエが偽者だろw

144 名前:129 ◆TTLQTUMllo mailto:sage [2009/02/05(木) 16:46:31 ]
>>143
お前こそ偽者だろw



145 名前:129 ◆TTLQTUMllo mailto:sage [2009/02/05(木) 16:48:14 ]
基本的に俺が本物

146 名前:129 mailto:sage [2009/02/05(木) 16:49:20 ]
トリップ付けて荒らしてる奴は偽者

147 名前:129 ◆TTLQTUMllo mailto:sage [2009/02/05(木) 16:49:25 ]
ここまで、全部オレの自演

148 名前:129 mailto:sage [2009/02/05(木) 16:50:21 ]
もうイスラム歴の正月かどうかを調べるAPIって言わないからこれくらいで勘弁してくれよ

149 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 16:55:09 ]
ここまで俺の自演

150 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 16:57:05 ]
2010年の春分の日が決まったばかりだというのに

151 名前:129 mailto:sage [2009/02/05(木) 16:59:24 ]
せめてイスラム歴の正月かどうかを調べるAPIぐらいの事言えよw

152 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 17:08:32 ]
EM_GETLINE
The copied line does not contain a terminating null character.

これ作ったやつマジで氏ね!!

153 名前:デフォルトの名無しさん [2009/02/05(木) 17:31:32 ]
>>129
荒らすの止めろクズが

154 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 18:45:30 ]
129大杉ワロタ



155 名前:デフォルトの名無しさん [2009/02/05(木) 18:48:40 ]
>>129が悪い

156 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 19:19:32 ]
>>129の人気に嫉妬

157 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 19:22:21 ]
ここまでスベったネタを誤魔化すための自演

158 名前:デフォルトの名無しさん [2009/02/05(木) 19:24:48 ]
>>129-133
ここら辺が見所ですかね。

159 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 19:56:03 ]
>>152
Win16時代のAPIに今更ケチ付けてもねえ

160 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 19:56:39 ]
まあぶっちゃけると>>129-133は全て>>129の自演だけどな

161 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 19:58:25 ]
その辺にしてくれねーかな

162 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 20:03:42 ]
>>159
理由になってない。

163 名前:129 ◆kwai5Y6kNk mailto:sage [2009/02/05(木) 20:04:37 ]
あぁ

164 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 20:14:37 ]
Win16時代は速度優先のため大多数のAPIは終端にNULLをつけなかった。
さすがにプログラマーからの苦情が多かったためWin32ではNULLをつけるよう仕様変更した。
しかしEM_GETLINEなど一部は後方互換性を重視して、敢えてNULLをつけていない。

少しはググレカス



165 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 22:46:07 ]
最近始めましたが、サンプルを見ると以下のように先頭にスコープ解決演算子を
付けているのが多いのですが、付けると何か良いことがあるのでしょうか?
::MessageBox(〜);

166 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 22:47:14 ]
インテリセンスが効くとか。

167 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 22:47:55 ]
MFCやATLのライブラリで同名を用いていることが多いので、それと区別したい場合に用いる。
または、インテリセンスを効かせようとした跡。

168 名前:165 mailto:sage [2009/02/05(木) 23:07:03 ]
>>166, 167
どうもありがとうございました。

169 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 23:10:56 ]
>>121やったつもりが1文字間違っててうまく潰せてなかったみたいでした。
すっごい綺麗にいけました!ありがとうございます。

170 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 23:31:07 ]
PostMessageにてboost::shared_ptrの値を渡すのは危険でしょうか?
Post先で参照後に勝手に消えてくれるので便利な気がするのですが。

171 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 23:39:07 ]
PostMessage は非同期だから
Post先にメッセージが届く前に shared_ptr が破棄されているかもしれないので危険

172 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 00:02:24 ]
わかりました。やめときます。素直にSendMessageTimeout使います。

173 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 00:02:46 ]
119だが,DIBSectionに変更して幸せになれました.

174 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 00:10:23 ]
幸せになるくらいなら猿でもなれる
問題は幸せにしてやれるかどうかだ



175 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 00:28:01 ]
深イイ話くらい中身のない言葉っすね

176 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 00:30:00 ]
おっぱいがあれば幸せ

177 名前:デフォルトの名無しさん [2009/02/06(金) 10:18:26 ]
>>129だけど何か質問ある?

178 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 10:20:14 ]
ない

179 名前:86 [2009/02/06(金) 10:57:15 ]
またまたすみませんが・・・
数日前色々教えてもらって縮小はうまくいったのですが今度は拡大がうまくいきません><
1440x1080を1980x1080に拡大
dwBuffer = new DWORD[2048*2048];
dwBufferにデータをぶち込み
BITMAPINFO bi;
::ZeroMemory( &bi, sizeof( BITMAPINFO ) );
bi.bmiHeader.biSize = sizeof( BITMAPINFOHEADER );
bi.bmiHeader.biWidth = 1440;
bi.bmiHeader.biHeight = 1080;
bi.bmiHeader.biPlanes = 1;
bi.bmiHeader.biBitCount = 32;
bi.bmiHeader.biCompression = BI_RGB;
DWORD *buf;
HDC hdc = ::CreateCompatibleDC( NULL );
HBITMAP hb = ::CreateDIBSection( hdc, &bi, DIB_RGB_COLORS, (void**)&buf, NULL, 0 );
::SelectObject( hdc, hb );
::StretchDIBits( hdc, 0, 0, 1980, 1080, 0, 0, 1440, 1080, dwBuffer, &bi, DIB_RGB_COLORS, SRCCOPY );
bi.bmiHeader.biWidth = 1980;
bi.bmiHeader.biHeight = 1080;
::GetDIBits( hdc, hb, 0, 1980, dwBuffer, &bi, DIB_RGB_COLORS );

出力サイズの1280x720を1980x1080に変更しただけなんですが・・・
どうも出力先のサイズが1440で切られてるみたいです。。。
何処が間違ってますか?

180 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 11:00:35 ]
ダメだこりゃ
次いってみよー

181 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 11:03:50 ]
>>179
CreateDIBSectionを元画像と同じ大きさで呼んでるからだろ
てか、お前プログラムやめたら?

182 名前:86 [2009/02/06(金) 11:17:21 ]
あ、ちなみに
::GetDIBits( hdc, hb, 0, 1980, dwBuffer, &bi, DIB_RGB_COLORS );
1980じゃなくて1080ですね。

>>181
そう思って出力先と同じサイズにしたんですが画像がくずれてしまって・・・


183 名前:86 [2009/02/06(金) 11:21:32 ]
あ、ごめんなさい。激しくわかりました。
僕が馬鹿でした。
言葉は悪いけど>>181が参考になりました。

184 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 11:43:14 ]
どうでもいい茶々を入れる
1980×1080は1920×1080では?



185 名前:86 mailto:sage [2009/02/06(金) 12:03:21 ]
>>184
いや1980なんですよねこれが。

おかげで拡大もばっちりいったのですが・・・
グラデーションがかかった画像を縮小すると汚さが目立ちます
オリジナルの1440x1080を1280x720にすると目立つとおもって
1440x1080→1980x1080→1280x720でやっても一緒だったのですが
同じ流れでC++BuilderのTBitmapで行うと綺麗に行くのですが
これなんかパラ指定があるんでしょうか?

ちなみにStretchDIBitsのHDCにTBitmapのハンドルを与えてから拡大縮小してます

186 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 12:05:51 ]
大元が勘違いして変な数値になったのかなw

187 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 12:07:08 ]
>>185
SetStretchBltModeじゃね?

188 名前:86 mailto:sage [2009/02/06(金) 12:56:26 ]
>>187
ありがとうございます。
ちょっと試してみます!

189 名前:86 mailto:sage [2009/02/06(金) 13:37:18 ]
くぁwせdrftgyふじこlp;

>>187
神様ありがとう!
すげえええええええええです!
一発で綺麗に縮小できました!!
ありがとうありがとう

190 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 13:54:30 ]
NG推奨:86、129

191 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 15:29:07 ]
bf.BlendOp = AC_SRC_OVER;
bf.BlendFlags = 0;
bf.AlphaFormat = true;
bf.SourceConstantAlpha = 255;

AlphaBlend関数でBLENDFUNCTIONを上記のように設定すると、画像の完全な透明以外の部分はちゃんと
半透明に表示されますが、完全に透明な部分は何故か白で塗りつぶされてしまいます。これはどう設定しても無理ですか?

192 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 15:45:06 ]
AlphaBlendは糞
計算式がおかしいのは有名な話

193 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 15:48:33 ]
AlphaBlendに関してはちょっと前にも同じ言い争いがあったので
反論したい人は穏便にお願いします

Win32API質問箱 Build73
ttp://pc11.2ch.net/test/read.cgi/tech/1227934931/23-76

参考

194 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 16:34:34 ]
過去ログは見れない人も多いから、煽りじゃないなら参考としては不適切。



195 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 16:44:55 ]
>>193見ました。
MSは糞。

196 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 18:41:13 ]
>>174
自分が幸せになれんのに
他人が幸せになれるわけないじゃないか・・・・
チクショー

197 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 19:28:25 ]
DDCAPS_ALPHAの対応マダァ-? (・∀・ )っ/凵⌒☆チンチン

198 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 20:27:36 ]
他の人が作成したdllを呼び出すプログラムを作成したんですが
あるdllをLoadLibrary()したらエラーリターンしてエラーコードが998(ERROR_NOACCESS)でした。
なのでdll作成側にDllMainのDLL_PROCESS_ATTACHでメモリ破壊してると、このエラーコードになると報告したのですが
こっちでも呼び出し元に不備がないか調査して日々報告するように言われております。
呼び出し元の不備でこのエラーになるケースはどのようなものが考えらるでしょうか?
動作環境はXPのSP2です
エラーになるdllがなにしてるかは不明で、そのdllをもらうこともできません

199 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 20:28:30 ]
WH_GETMESSAGEにてのメッセージフックでWM_MOVEを検知して移動先の座標を得ようと
しているんですが、pt.x,pt.yにでたらめな座標が入ってしまいます。何故でしょうか?

LRESULT CALLBACK HookProc(int nCode,WPARAM wParam,LPARAM lParam){
    CWPSTRUCT *cwps;
    cwps=(CWPSTRUCT *)lParam;
    if(nCode<0)
        return CallNextHookEx(hMyHook,nCode,wParam,lParam);;
    if( nCode == HC_ACTION ){
        if(cwps->message==WM_MOVE){
            POINT pt;
            pt.x=LOWORD(cwps->lParam);
            pt.y=HIWORD(cwps->lParam);
        }
    }
    return CallNextHookEx(hMyHook,nCode,wParam,lParam);
}

あと同じようなので
if(cwps->message==WM_WINDOWPOSCHANGED)LPWINDOWPOS pos=(LPWINDOWPOS)cwps->lParam;
もpos->xとかにもでたらめな数字入ってしまう。
MSDNも何度も調べたし、色々な組み合わせを何時間もトライ&エラー繰り返してたんですが
やっぱり分かりません。教えてください

200 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 20:31:28 ]
>>198
LoadLibraryするだけの単純なプログラムを書いて渡すっていうのじゃダメなの?
それともそれだけでは再現しないの?

201 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 20:35:32 ]
>>199
マウス座標が cwps->hwnd が示す
ウィンドウ相対だからとか?


202 名前:デフォルトの名無しさん [2009/02/06(金) 20:37:21 ]
符号なしの値を符号付きの変数に代入してこけてるとか?

203 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 20:45:14 ]
>>199
WH_GETMESSAGEでかけたフックのコールバックのlParamはMSG構造体なんだが

204 名前:198 mailto:sage [2009/02/06(金) 20:47:13 ]
>>200
>>198です。
エラーが発生する条件が不明でエラーの発生頻度もあまり多くないんです
LoadLibrary()するだけのプログラムでも環境しだいでは再現するかもしれないんですが
再現するかもしれないから、ちょっと試してみてください、って言える関係じゃないんです




205 名前:デフォルトの名無しさん [2009/02/06(金) 20:50:20 ]
どっかに不定が紛れ込んでいるに1000ペリカ

206 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 21:45:10 ]
>>202
ありがとうございます。まったくその通りでした。
MSDNに「1 個の 構造体へのポインタ」としか書いてなかったからCWPSTRUCTでいいと思ってた
今後のために教えてください。そういうのってどこに書いてます?
でも、これだとWM_MOVEが引っかからないから他のフックタイプ使うべきなのね

207 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 21:48:01 ]
>>206
msdn.microsoft.com/en-us/library/ms644981(VS.85).aspx

確かに日本語ソースには「1 個の 構造体へのポインタを指定します。」とあるのなww
こやつめハハハ

208 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 22:05:21 ]
英語の方には書いてあったのね。楽だからついつい日本語の方ばっかり見ちゃうけど
やっぱり英語の方も見たほうがいいですね

209 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 22:17:05 ]
WH_CBTにしてHCBT_MOVESIZEを見るようにしたらいけました。
このまま教えてもらわなかったらまた何時間も悩み続けるところだったよ。ありがとう

210 名前:デフォルトの名無しさん [2009/02/07(土) 01:18:37 ]
なるほど
ありがとうございました

211 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 04:18:34 ]
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww

212 名前:211 mailto:sage [2009/02/07(土) 04:20:05 ]
あ…スマン…Janeの裏技とか言うのみて試してたら書き込まれた(;´Д`)

213 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 07:18:02 ]

 ヾヽヽ
 (´▽`) おっさんチュンチュン
  ミ_ノ
  ″″

214 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 07:28:09 ]
複雑だと思うならつかわなきゃいいんじゃねーの?
なんでアホはあるもの全部使わなきゃ気がすまねーの?



215 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 08:58:01 ]
Before:
ttp://admins.fxdm.net/cmsware/resource/img/h000/h22/img200608041621414.jpg

After:
ttp://art3.photozou.jp/pub/921/204921/photo/14320292.png

216 名前:デフォルトの名無しさん [2009/02/07(土) 09:27:24 ]
質問です。
(A)
ツリービューで↓を書くと
   TreeView_InsertItem(HWND hwndTV, LPTVINSERTSTRUCT lpis);
BorlandC++ が
   ”警告 W8019 : コードは効果を持たない”と
と吐くのですが、どういう意味なんでしょうか?

(B) また、
   SendMessage(hwndPB, PBM_SETRANGE, 0, MAKELPARAM(0,files_read));
と書くと
   ”警告 W8084 : 優先順位を明確にするためにカッコの使用を推奨”
と吐きます。どう括弧をつければいいのでしょうか?






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<103KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef