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


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

Win32API質問箱 Build82



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

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

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

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

Win32API質問箱 Build81
pc12.2ch.net/test/read.cgi/tech/1249140049/l50


117 名前:デフォルトの名無しさん [2009/09/30(水) 17:19:57 ]
きえろぶっとばされんうちにな(笑)

118 名前:デフォルトの名無しさん [2009/09/30(水) 17:22:08 ]
きえろぶっとばされんうちにな(涙)

119 名前:デフォルトの名無しさん mailto:sage [2009/09/30(水) 17:27:10 ]
(悲)

120 名前:デフォルトの名無しさん [2009/09/30(水) 17:46:12 ]
きえろぶっとばされんうちにな(´・ω・`)

121 名前:デフォルトの名無しさん mailto:sage [2009/09/30(水) 18:13:56 ]
きえろぶっとばされんうちにな(hWnd, Msg, wParam, lParam);

122 名前:デフォルトの名無しさん mailto:sage [2009/09/30(水) 20:22:02 ]
>>121
ちげえだろ!!!

(*きえろぶっとばされんうちにな)(hWnd, Msg, wParam, lParam);

123 名前:デフォルトの名無しさん mailto:sage [2009/09/30(水) 21:23:14 ]
PostThreadMessage(GetCurrentThreadId(), きえろぶっとばされんうちにな, 0, 0);

124 名前:デフォルトの名無しさん mailto:sage [2009/09/30(水) 21:57:05 ]
トランジスタ技術のムック
パソコンのコモンセンスってのが出てたのでてたので読んだ
(最後の三章くらい)

GDIとかAPIとか
自作のテキストボックスってどうやってつくるのとかつか作れるのかとか
コンソールアプリのチュートリアルからWin32に入門したばかりの
自分みたいな人間には有用だった

感動したので報告しとく

125 名前:デフォルトの名無しさん mailto:sage [2009/09/30(水) 22:45:08 ]
> 出てたのでてたので
> つくるのとかつか作れるのかとか

なんで文章にエコーかかってるんだよ



126 名前:デフォルトの名無しさん mailto:sage [2009/09/30(水) 23:06:21 ]
エコーw

127 名前:デフォルトの名無しさん mailto:sage [2009/09/30(水) 23:21:32 ]
>>110
可能ならデータファイルとindexファイルに分ける。

128 名前:デフォルトの名無しさん mailto:sage [2009/09/30(水) 23:32:35 ]
>>110
不可能なら諦める。

129 名前:デフォルトの名無しさん mailto:sage [2009/09/30(水) 23:42:46 ]
>>110
俺ならこうする、という話でいくと、
SQLiteのDBを一時ファイルにして作業を行い、
ファイルへの書き出しは最後にまとめてやる。

130 名前:デフォルトの名無しさん mailto:sage [2009/09/30(水) 23:48:53 ]
教えてください

ja.wikipedia.org/wiki/%E3%82%AF%E3%83%AA%E3%83%86%E3%82%A3%E3%82%AB%E3%83%AB%E3%82%BB%E3%82%AF%E3%82%B7%E3%83%A7%E3%83%B3
↑のクリティカルセクションのwikiにて
「クリティカルセクションの排他制御ではデッドロックに注意する必要がある。」

と記述されているのですが、クリティカルセクションの排他は
具体的にどういった処理を行っていてどういうことをやっているから
こういう状況になりデッドロックが生じるのでしょうか?

131 名前:デフォルトの名無しさん mailto:sage [2009/10/01(木) 00:03:55 ]
リソースA,B,、それらに対応させているクリティカルセクションA,Bがある。2つのスレッドが動いているとして、

1. スレッド1がAに対して操作を行うために、クリティカルセクションAに入る
2. スレッド2がBに対して操作を行うために、クリティカルセクションBに入る
3. スレッド1がBに対して操作を行うために、クリティカルセクションAに入ろうとして、デッドロック

132 名前:デフォルトの名無しさん mailto:sage [2009/10/01(木) 00:03:57 ]
>>130
クリティカルセクションに限らず2つ以上のリソースをロックする処理は
それぞれのリソースをロックする順番が逆のスレッドと競合すると
どちらも相手の解放待ちになってデッドロックが生じる。

133 名前:131 mailto:sage [2009/10/01(木) 00:04:35 ]
3のところ、クリティカルセクションAじゃなくてBね

134 名前:131 mailto:sage [2009/10/01(木) 00:07:51 ]
4. スレッド2がAに対して操作を行うために、クリティカルセクションAに入ろうとして、デッドロック

だorz 3の段階じゃまだロックされないね

135 名前:デフォルトの名無しさん mailto:sage [2009/10/01(木) 00:11:33 ]
GDGD



136 名前:130 mailto:sage [2009/10/01(木) 00:18:22 ]
>>131-134
ありがとうございます

自分的には別スレッド同士が同時に一つのクリティカルセクションに
入ろうとして稀にデッドロックに陥る可能性があるのかと思っていたのですが、
そういうことなのですね。

137 名前:デフォルトの名無しさん mailto:sage [2009/10/01(木) 01:00:03 ]
そういえばクリティカルセクションってロックした順番に起きないのだったな

138 名前:デフォルトの名無しさん [2009/10/01(木) 16:07:17 ]
きえろぶっとばされんうちにな

139 名前:デフォルトの名無しさん [2009/10/01(木) 16:33:36 ]
きえろぶっとばされんうちにな(笑)

140 名前:デフォルトの名無しさん mailto:sage [2009/10/01(木) 18:01:31 ]
きさっれえうちろにとんばぶな

141 名前:デフォルトの名無しさん [2009/10/01(木) 18:16:24 ]
きえろぶっとばされんうちにな(完)

142 名前:デフォルトの名無しさん [2009/10/01(木) 18:18:50 ]
きえろぶっとばされんうちになEx

143 名前:デフォルトの名無しさん mailto:sage [2009/10/01(木) 18:32:00 ]
きえろぶっとばされんうちにな32

144 名前:デフォルトの名無しさん [2009/10/01(木) 18:34:49 ]
きえろぶっとばされんうちにな.cbSize = sizeof(きえろぶっとばされんうちにな);

145 名前:デフォルトの名無しさん [2009/10/01(木) 18:39:35 ]
きえろぶっとばされんうちにな(NULL)



146 名前:デフォルトの名無しさん mailto:sage [2009/10/01(木) 18:42:23 ]
goto きえろぶっとばされんうちにな;

147 名前:デフォルトの名無しさん [2009/10/01(木) 18:43:20 ]
CreateきえろぶっとばされんうちになIndirect(&きえろぶっとばされんうちにな);

148 名前:デフォルトの名無しさん mailto:きえろぶっとばされんうちにな [2009/10/01(木) 18:47:06 ]
荒らしウザイ

149 名前:デフォルトの名無しさん mailto:sage [2009/10/01(木) 18:57:17 ]
#include "きえろぶっとばされんうちにな.h"

150 名前:デフォルトの名無しさん mailto:sage [2009/10/02(金) 00:19:09 ]
C++ == おちんちんプラプラ

151 名前:デフォルトの名無しさん mailto:sage [2009/10/02(金) 00:24:05 ]
いや、つまんないから

152 名前:片山博文MZ ◆BVYGEn4LD2 [2009/10/02(金) 12:47:32 ]
CellSheet
www1.axfc.net/uploader/Sc/so/41724.zip
バグ報告よろしく。

153 名前:デフォルトの名無しさん mailto:sage [2009/10/02(金) 12:48:04 ]
IEのHTMLレンダリングエンジンを自分のウィンドウにくっつけて操作する方法を教えてくれ

154 名前:デフォルトの名無しさん [2009/10/02(金) 14:03:48 ]
きえろぶっとばされんうちにな

155 名前:デフォルトの名無しさん mailto:sage [2009/10/02(金) 16:32:58 ]
APIと直接関係ないです



156 名前:デフォルトの名無しさん mailto:sage [2009/10/02(金) 17:01:15 ]
WindowsAPIでウィンドウを作成した時にウィンドウサイズの変更を禁止したいのですがどうしたらいいんでしょうか?
WM_SIZEのメッセージ処理で何もしないようにしてみましたがだめでした

157 名前:デフォルトの名無しさん mailto:sage [2009/10/02(金) 17:04:10 ]
ウィンドウスタイルから WS_THICKFRAME を外す

158 名前:デフォルトの名無しさん mailto:sage [2009/10/02(金) 17:04:58 ]
ウィンドウスタイルからWS_THICKFRAME、WS_MAXIMIZEBOXを引く

159 名前:デフォルトの名無しさん mailto:sage [2009/10/02(金) 17:13:59 ]
WM_GETMINMAXINFOとかWM_WINDOWPOSCHANGINGで適当に処理する


160 名前:デフォルトの名無しさん [2009/10/02(金) 17:33:19 ]
きえろぶっとばされんうちにな

161 名前:デフォルトの名無しさん [2009/10/02(金) 17:38:07 ]
きえろぶっとばされんうちにな

162 名前:デフォルトの名無しさん mailto:sage [2009/10/02(金) 17:59:25 ]
関数で処理を行った後に表示を変更しようと
UpdateWindowを呼び出して処理させているのですが、ウィンドウを一度隠してから
再描画させないと表示が更新されません・・・。
なぜでしょうか?

163 名前:デフォルトの名無しさん mailto:sage [2009/10/02(金) 18:07:34 ]
InvalidateRect

164 名前:デフォルトの名無しさん mailto:sage [2009/10/02(金) 18:07:45 ]
すでに表示されているから
UpdateWindowは、ウィンドウに無効領域があってメッセージループに戻れば更新されるはずの状況で、
メッセージループに戻るまで待てず今すぐ更新したいという場合に、すぐにWM_PAINTを届けてくれる関数
無効領域がない場合は何もしない

InvalidateRectで無効化すればおk

165 名前:デフォルトの名無しさん mailto:sage [2009/10/02(金) 19:20:42 ]
UpdateWindow+InvalidateRect=RedrawWindow



166 名前:デフォルトの名無しさん mailto:sage [2009/10/02(金) 19:22:58 ]
>>165
不正解

167 名前:デフォルトの名無しさん mailto:sage [2009/10/02(金) 19:31:15 ]
>>166
何が違うのさ

168 名前:デフォルトの名無しさん mailto:sage [2009/10/02(金) 20:28:26 ]
MSDN読んで来い

RedrawWindowはリージョンも指定できるし有効化もできるし非クライアント領域や子ウィンドウに最描画を促すこともできる

169 名前:デフォルトの名無しさん mailto:sage [2009/10/03(土) 01:21:36 ]
コンソールAPIについての質問なんですが、cmd.exeでF2やF4、F7キーを押した時のように
矩形の枠を表示してキー入力をプロンプトからそちらに移すといった処理のコードサンプルを教えてください

170 名前:デフォルトの名無しさん mailto:sage [2009/10/03(土) 01:25:04 ]
きえろぶっとばされんうちにな

171 名前:デフォルトの名無しさん [2009/10/03(土) 03:53:09 ]
きえろぶっとばされんうちにな

172 名前:デフォルトの名無しさん mailto:sage [2009/10/03(土) 03:57:00 ]
きえました

173 名前:デフォルトの名無しさん mailto:sage [2009/10/03(土) 05:00:35 ]
あらわれました

174 名前:デフォルトの名無しさん mailto:sage [2009/10/03(土) 05:20:27 ]
きえるぶっとばされんうちにな

175 名前:デフォルトの名無しさん [2009/10/03(土) 13:13:52 ]
きえろぶっとばされんうちにな



176 名前:デフォルトの名無しさん [2009/10/03(土) 15:35:25 ]
ファイルを削除(DeleteFile)することなく、削除が可能かを判断したいのですが、
よい方法はあるでしょうか。

権限やファイルがオープン済みである場合はCreateFileが失敗するかで判断出来そうなのですが、
実行中のEXEやロード済みのDLLではCreateFileが成功してしまいます。

削除可能かを知りたい理由ですが、利用しているライブラリで要求されているためです。
よろしくおねがいします。

177 名前:デフォルトの名無しさん mailto:sage [2009/10/03(土) 15:47:16 ]
きえろぶっとばされんうちにな

178 名前:デフォルトの名無しさん mailto:sage [2009/10/03(土) 15:51:11 ]
>>176
ない。

179 名前:デフォルトの名無しさん mailto:sage [2009/10/03(土) 16:03:52 ]
確認した直後に別の誰かが削除不可にセットするかもしれないしな

180 名前:デフォルトの名無しさん [2009/10/03(土) 16:37:27 ]
きえろぶっとばされんうちにな

181 名前:デフォルトの名無しさん mailto:sage [2009/10/03(土) 17:02:17 ]
>>178
諦めがつきます。すっきりしました。

>>179
確かにそうですね。

182 名前:デフォルトの名無しさん mailto:sage [2009/10/03(土) 17:12:15 ]
SFGAO_CANDELETEはどう?
APIじゃなくてIShellFolder::GetAttributesOf のCOMつかうけど

183 名前:デフォルトの名無しさん mailto:sage [2009/10/03(土) 18:32:26 ]
ハズレ

184 名前:デフォルトの名無しさん mailto:sage [2009/10/03(土) 18:51:48 ]
FILE_SHARE_DELETEつけて開ければ消せるんじゃ

185 名前:デフォルトの名無しさん [2009/10/03(土) 19:03:51 ]
きえろぶっとばされんうちにな



186 名前:デフォルトの名無しさん mailto:sage [2009/10/03(土) 19:20:01 ]
>>182
情報ありがとです。まだ試せておらず、ぐぐり中です。
ただ、エクスプローラのメニュー上では実行中EXEも削除が選べるので、厳しそうに見えました。
試せましたら、報告します。

>>184
実行中のEXEやロード済みのDLLは削除には失敗しますが、
FILE_SHARE_DELETEをつけてもつけなくても開けてしまうので困ってます。

187 名前:デフォルトの名無しさん mailto:sage [2009/10/03(土) 20:40:39 ]
きえろぶっとばされんうちにな

188 名前:デフォルトの名無しさん mailto:sage [2009/10/03(土) 20:55:23 ]
エロぶっとばされんうちにな

189 名前:デフォルトの名無しさん mailto:sage [2009/10/03(土) 20:58:04 ]
>>182
試しましたら、実行中のEXEでもSFGAO_CANDELETEが有効でした。
情報ありがとうございました。諦めたいと思います。

190 名前:デフォルトの名無しさん [2009/10/03(土) 21:19:36 ]
きえろぶっとばされんうちにな

191 名前:デフォルトの名無しさん mailto:sage [2009/10/03(土) 21:38:20 ]
ぴえろぶっとばされんうちにな

192 名前:デフォルトの名無しさん mailto:sage [2009/10/03(土) 21:52:04 ]
きえろぶっとばされんうちにな

193 名前:デフォルトの名無しさん mailto:sage [2009/10/03(土) 22:01:11 ]
もえろぶっとばされんうちにな

194 名前:デフォルトの名無しさん mailto:sage [2009/10/03(土) 22:15:29 ]
GENERIC_WRITEのみでCreateFileして
INVALID_HANDLE_VALUEが返るなら起動してるのでは?

195 名前:デフォルトの名無しさん mailto:sage [2009/10/04(日) 09:59:54 ]
>>194
これでいけそうです。有難うございます。
(試していたときはGENERIC_WRITEではなくてDELETEを使ってました。)



196 名前:デフォルトの名無しさん mailto:sage [2009/10/04(日) 10:56:02 ]
VSS に対応できる?

197 名前:デフォルトの名無しさん mailto:sage [2009/10/04(日) 11:54:42 ]
readonly属性がついてるとGENERIC_WRITEは失敗するが削除はできるだろ

198 名前:片山博文MZ ◆BVYGEn4LD2 [2009/10/04(日) 14:00:23 ]
CellSheet ver. 0.0
www1.axfc.net/uploader/Sc/so/42369

すごいものを完成した。
ExcelやDataGridViewみたいなGUIがC++で簡単に実現できちゃう。

199 名前:デフォルトの名無しさん mailto:sage [2009/10/04(日) 14:30:53 ]
>>176
コイツ、

> 諦めたいと思います
と言っておきながら何時まで粘着してんだ

200 名前:デフォルトの名無しさん mailto:sage [2009/10/04(日) 14:35:00 ]
DB のトランザクションみたいなことはできないんだから、
仮に判定に成功したからって、実際に削除するまでの間に
状況が変わることはありうるだろ?

何度も言われてるけど、「削除できるか?」なんてのは、意味のない判定なんだよ。

201 名前:デフォルトの名無しさん mailto:sage [2009/10/04(日) 14:35:03 ]
そのものズバリなAPIがあるのに誰も教えてあげなくてワロタw

202 名前:デフォルトの名無しさん mailto:sage [2009/10/04(日) 14:36:15 ]
>>201
自己紹介乙

203 名前:デフォルトの名無しさん mailto:sage [2009/10/04(日) 14:37:29 ]
>>200
> DB のトランザクションみたいなことはできないんだから、
DeleteFileTransactedも知らんのか。

204 名前:デフォルトの名無しさん mailto:sage [2009/10/04(日) 14:39:20 ]
今時TxFも知らないなんてWin32プログラマとしては恥だな

205 名前:デフォルトの名無しさん mailto:sage [2009/10/04(日) 14:41:34 ]
諦めないのはいいことだ



206 名前:デフォルトの名無しさん mailto:sage [2009/10/04(日) 14:48:18 ]
へー、Vista 以降で使えるのか。勉強になった。dクス。

207 名前:片山博文MZ ◆BVYGEn4LD2 [2009/10/04(日) 14:51:36 ]
>>198
起動して位置を移動させずに最初に日本語を入力したときの、
CompositionWindowの位置がおかしいのだけど、どうすれば、
セルの上にCompositionWindowを表示させればいいでしょうか?
www1.axfc.net/uploader/Img/so/61185.jpg

208 名前:デフォルトの名無しさん mailto:sage [2009/10/04(日) 15:07:19 ]
ふと思ったんだけど、
CreateFile等のAPIをフックして〜Transacted系へリダイレクトするソフトを作ったら
サンドボックス的なものが出来そう?

209 名前:デフォルトの名無しさん mailto:sage [2009/10/04(日) 15:33:06 ]
>>199
回答をもらっておいて、諦めてるからもういいです、とは言えないので。

>>200
ライブラリで要求されていたので。
ライブラリのサンプルでも起動中EXEは考慮されてなかったんで、しょうがないですね。

210 名前:デフォルトの名無しさん mailto:sage [2009/10/04(日) 15:45:46 ]
>>208
commitはどうすんだ?

211 名前:デフォルトの名無しさん mailto:sage [2009/10/04(日) 15:50:17 ]
コミットしないんだろ、サンドボックスだから
実行終了したらすべてロールバック

212 名前:デフォルトの名無しさん mailto:sage [2009/10/04(日) 15:52:39 ]
CommitTransactionがあるだろ

213 名前:デフォルトの名無しさん mailto:sage [2009/10/04(日) 22:00:15 ]
↑話を理解しないバカ

214 名前:デフォルトの名無しさん mailto:sage [2009/10/05(月) 00:45:10 ]
_UNICODEってどういう状況で定義されるの?

215 名前:デフォルトの名無しさん mailto:sage [2009/10/05(月) 00:46:32 ]
Windows環境内で言うなら取り扱いはすべてうにこーどのはず



216 名前:デフォルトの名無しさん mailto:sage [2009/10/05(月) 00:55:38 ]
じゃ、APIに渡す文字列を書くときにLが必須になるということ?


217 名前:デフォルトの名無しさん mailto:sage [2009/10/05(月) 00:56:51 ]
>>214
UNICODEを定義していたら。
もっとも、普通はUNICODEと共に両方定義するほうが普通(Visual Studioではそうなる)。






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

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

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