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


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

Win32API質問箱 Build62



1 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 02:40:03 ]
スレ立てるまでもない、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

【前スレ】
61 ttp://pc11.2ch.net/test/read.cgi/tech/1199514664/

286 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 07:19:44 ]
>>261
Susieプラグイン

287 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 07:43:54 ]
NTでのWindowsサブシステムの標準APIと同等のAPI

288 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 09:03:12 ]
COM周りでのも提供されてる微妙だな

289 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 10:05:08 ]
Winsock, WinInet, WinHTTP, Theme, DWM, TSF, MSXML

290 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 10:44:43 ]
>>288
日本語でおk

291 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 11:03:59 ]
数値を文字列に変換するAPIって何?

292 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 11:05:58 ]
Shell Lightweight APIにもなんかあった気がするけど、wsprintf。

293 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 11:13:12 ]
>>292
ありがとう。
頭文字が小文字なのでCランタイムの関数だと思ったら、user32.dllのAPIなのね。

294 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 11:41:09 ]
>>282
ネイティブC/C++から満足に使えないからWin32 APIには入らないと俺は思う。
この立場からは.NETのUnmanaged Hosting APIはWin32。

でもこのスレにそんなこと質問してきたら、
それに関してはここよりわかる人がいそうな.NETのスレへ誘導するだろうけどね。



295 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 11:44:39 ]
shlwapiはwnsprintfの方だな

296 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 16:43:12 ]
MS提供のAPIなんて書いたら.NETどころかMFCやATLなんかもこのスレで扱う事になるだろ

297 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 16:44:28 ]
このスレは技術レベル高い人が多いから、多少駆け込み寺みたいな
役割を求められても仕方がないのかも。
色んな質問が来るのは勲章だと思えばいいんじゃないかな。
広めに受け入れて、誘導できるものは誘導すればいい。

298 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 16:53:24 ]
LoadImageで、パレットの違う2つの256色ビットマップから
DDBを作り、少しずつ色を変えながら色を出力すると、
表示されない色が出て、その色は2つのビットマップで違うのですが、
DDBにもパレットみたいなのがあるのでしょうか。

299 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 17:12:53 ]
少しずつ色を変えながら出力とは、
LoadImageでできたDDBを出力先にし、
FillRectで小さい四角を、
色、位置を少しずつ変えながら出力する感じです。

出力先は普通はCreateBitmap等で作ったDDBに
すると思うんですが、実験という事でそれに出力しています。

300 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 18:32:01 ]
ひとつのプロセスが開いているハンドル
(CloseHandleで閉じるハンドル・特にファイルハンドル)
を列挙する方法はありませんか?

GetProcessHandleCountっていうのを見つけたのですが、これだと数しかわかりません。

301 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 18:34:50 ]
高いのは技術レベルってより、知識量レベルだろ。その知識を生かして
どうプログラムに落とすかがプログラマの真価が問われる。このスレじゃ、それはわからん。


302 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 18:44:10 ]
突然マの真価とか語られても・・・それこそマ板でやれ

303 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 19:12:22 ]
297に同意

>DDBにもパレットみたいなのがあるのでしょうか。
あるよ。
SelectPaletteやCreatePaletteなどのAPIはDDBでも使用可能

304 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 20:02:29 ]
xpでVS2008express editionでスクリーンセーバー作ろうとしたら
コンパイルできるのに起動時にエラーがでるのだが。
ちなみにsystem32以下のuser32.dllのタイムスタンプは2004年8月4日になってる。
わかる?

エラーメッセージ
「エントリポイントが見つかりません
プロシージャエントリポイントChangeWindowMessageFilterがダイナミックリンクライブラリUSER32.dllから見つかりませんでした」

ソース
#include <windows.h>
#include <scrnsave.h>

#pragma comment(lib, "scrnsavw.lib")
#pragma comment(lib, "comctl32.lib")

LRESULT WINAPI ScreenSaverProcW(HWND hWnd, UINT msg,WPARAM wParam, LPARAM lParam)
{
return DefScreenSaverProc(hWnd, msg, wParam, lParam);
}

BOOL WINAPI ScreenSaverConfigureDialog(HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam)
{
return TRUE;
}
BOOL WINAPI RegisterDialogClasses(HANDLE hInst)
{
return TRUE;
}



305 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 20:09:33 ]
ChangeWindowMessageFilterはVistaにしかない

306 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 20:12:56 ]
あれ?どこかのスレでも同じ質問みたな

307 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 20:13:57 ]
付属ライブラリがVista専用かよ

308 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 20:19:33 ]
targetver.h 書き換えろよ。デフォルトがVistaになってるぜ。

309 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 20:26:04 ]
>>306
VS2008スレで見たね

310 名前:304 mailto:sage [2008/02/10(日) 21:07:55 ]
なんだ、2008はほとんどvista用か
2005入れ直すかな

他のスレに同じことやってる奴がいてわらた

みんなthx

311 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 21:10:53 ]
そして無視される308お陀仏……。

312 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 21:32:12 ]
他のスレでも同じように2005を入れなおそうという奴がいるのか
それはちょっと面白いな

313 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 01:19:48 ]
VS2008でセィバーだが、こっちにも俺と同じヤツがいたwww
これ、MSのどっかにねじ込んでおけばいいんだよな?

314 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 02:03:00 ]
タスクメニューのアイコンを右クリックすると、メニューが出るプログラムを作成しています。
一応完成したのですが、アイコンをクリックした時に
2回目のクリックからタスクバーのプロパティーまで表示されてしまいます。
マウスのイベントがタスクバーまで伝播しているようなのですが、
この回避方法はどうやればいいのでしょうか?
誰かご教授ください。



315 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 02:11:15 ]
貴様の間違ったコードを正しくすればいい。
正しく書いていればそのような挙動はしない。

316 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 03:03:52 ]
こんばんは
早急に教えてください。

malloc() はどのDLLのエクスポート関数でしょうか?


317 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 03:07:02 ]
msvcrt20.dllだな

318 名前:316 mailto:sage [2008/02/11(月) 03:11:10 ]
>>317
ありがとう

319 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 03:17:57 ]
ざくざくでてくるね。
crtdll.dll
msvcrt.dll
msvcrt40.dll
mscvr70.dll
mscvr71.dll
mscvr80.dll
mscvr90.dll
mscvr71d.dll
mscvr80d.dll
mscvr90d.dll
cc3250mt.dll (Borland)
cygwin1.dll

320 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 03:26:49 ]
ほとんどバージョンかデバッグ版かどうかの違いだな。

321 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 03:34:24 ]
タブコントロールの行が複数行になるかどうかを調べる方法ってないですか?
誰か教えてください

322 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 05:03:20 ]
>>314
もしかして通知トレイのことか?
メニュー出す直前にSetForegroundWindow()を呼ぶ
あとNULLでSendMessage()

323 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 05:11:46 ]
っと、Postだった

324 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 05:59:42 ]
画像ビューアを作ってて、ファイルの並び順をエクスプローラと同期させたいのですが
アイコンの整列の「名前」「サイズ」「種類」「更新日時」の状態を取得することって出来ないでしょうか?



325 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 06:45:49 ]
エクスプローラを2つ表示させてソート順変更しても、
それぞれ同期してないけど、その場合どうするつもり?
後で指定されたソート方法を優先?
そもそもこれってAPIの質問?

326 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 08:36:47 ]
>>303
ありがとうございます。

327 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 09:06:30 ]
>>324
IShellFolder2::GetDefaultColumn()でどう?
msdn2.microsoft.com/en-us/library/bb775045(VS.85).aspx
msdn2.microsoft.com/en-us/library/bb775055(VS.85).aspx
2000or98ME以降になっているが
95,98のIShellFolderやIShellDetailsにはそれらしきメンバは無いな。
エクスプローラを最後に閉じたときの状態が取得できるようなので
厳密に同期を取る325のいうようなケースは厄介そう。

> アイコンの整列の「名前」「サイズ」「種類」「更新日時」の状態を
> 取得することって出来ないでしょうか?

シェルを拡張してColumnが追加されているケースもありうるよ

328 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 09:26:54 ]
>>321
スタイルにTCS_MULTILINEがついているかどうかで

329 名前:314 mailto:sage [2008/02/11(月) 13:36:41 ]
>>322
レスサンクス!ActiveとNull送信はやってます。
原因はWM_ACTIVEをラップしてなかったからです。
商用アプリでも同じ現象が発生してて、ちょっとびっくりしてました。
どうもです。

330 名前:321 mailto:sage [2008/02/11(月) 16:16:49 ]
>>328
すいませんちょっと情報不足でした
スタイルにTCS_MULTILINEを設定しても、タブが少なかったら1行で表示されますよね?
TCS_MULTILINEを設定して、タブを追加して、その結果として複数行で表示されるか否かを知る方法はないのでしょうか?
ということが聞きたかったのですが

331 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 16:19:20 ]
難しい
GetClientRectとTCM_ADJUSTRECTを使えば
タブのつまみ部分に使われてる高さは分かる

332 名前:321 mailto:sage [2008/02/11(月) 16:51:59 ]
>>331
レスありがとうございます
結果的に取得したかったのはタブのつまみの高さなので、それで十分です

333 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 20:41:11 ]
>>330
ごめん。そこまで気が回らなかった。
解決したみたいだけど、
事前に知ることはできなそうだが、追加後でよければ
TCM_GETROWCOUNTで行数を取得できるよ。

334 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 00:17:40 ]
SelectObject( hdc, CreateSolidBrush(RGB( 0, 0, 0) );
とした場合はDeleteObject()しなくていいですか



335 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 00:42:06 ]
>>334
だめです。
new = CreateSolidBrush(...);
old = SelectObject(..., new);
個々で何らかの処理。
SelectObject(..., old);
DeleteObject(new);

とするべき。

336 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 00:47:10 ]
こう書けなくもないはずだが、あまり見ない書き方だから、やめたほうがいい。
old = SelectObject(..., CreateSolidBrush(...));

DeleteObject(SelectObject(..., old));


337 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 01:00:10 ]
けどそれなら、変数用意しなくて良いな。
別の方向に混乱しそうだけど。
どういう処理なのか一瞬わからんかったw

338 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 01:15:58 ]
CreateSolidBrushの戻り値を見てないってのが気にはなるなあ。
滅多に失敗しないのは確かだけど。

339 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 01:46:29 ]
もう面倒くさいしディリートしなくてもいいじゃん
ディリートしないせいで問題が起きたことないし

340 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 01:52:44 ]
9xを使ったことがないから言えるセリフだな、それ。
いや、確かめたわけではないけれど。

341 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 01:52:50 ]
ここで
「いちいちディリートしなくても勝手にGCしろよ」
とドトネト厨登場↓

342 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 01:56:18 ]
RAIIクラスを作って
デストラクタででぃりーとしろよ

343 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 01:59:50 ]
Sleipnirが盛大にGDIリソースリークしてて、
連続稼動させてると他のアプリケーションまで表示がぐちゃぐちゃになったことがあったな。

344 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 02:23:45 ]
こうですか、わかりません!
class GDIBinder : noncopyable{
HDC mhdc;
HGDIOBJ old;
public:

GDIBinder (HDC dc, HGDIOBJ obj)
: mhdc(dc)
{
old = SelectObject( mhdc, obj );
}
~GDIBinder(){
SelectObject(mhdc, old );
}
operator HDC (){return mhdc;}
};



345 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 04:40:47 ]
重い処理をさせたらウィンドウを動かしたりできなくなるんですが、どうすれば
WinRARみたいに重い処理をさせてもウインドウ動かしたり出来るようになりますか?

346 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 04:43:48 ]
スレッドわけろ。

347 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 04:44:17 ]
MultiThreadですよ。

348 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 04:48:56 ]
ありがとうございます。やっぱりああいうのはマルチスレッド使ってるのか
勉強してみます

349 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 08:56:05 ]
>>344 RestoreDCを忘れるなよ

350 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 12:47:18 ]
>>225
クッキー

351 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 13:31:04 ]
何回もSelectObjectをかけながら処理してく場合、いちいち戻さないで
最初にSaveDC/最後にRestoreDCで一気に戻した方が楽な場合もある

352 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 13:56:30 ]
Server2008対応の新SDK正式版出てたのね

353 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 16:50:18 ]
>>352
urlぐらい書けよ

354 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 17:05:54 ]
ttp://www.microsoft.com/downloads/details.aspx?familyid=F26B1AA4-741A-433A-9BE5-FA919850BDBF&displaylang=en



355 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 17:38:29 ]
PlatformSDKの新版はもう出ないのかな・・・

356 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 18:32:21 ]
まさにこれだろ。
WindowsSDKに名前が変わって、.NETも含まれるようにはなったけど。

357 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 18:39:13 ]
>>356
.NET使わないんでPlatformSDKの頃みたいにWin32関連だけインスコできればなと
色々統合されてたりして無理なのかな

358 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 18:45:04 ]
Windows SDK = Platform SDK + .NET Framework SDK

359 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 19:10:04 ]
.NET FrameworkをインスコしないでPlatformSDKだけ入れさせろって意味

360 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 19:11:13 ]
やってみれ

361 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 20:09:28 ]
ボタンコントロールで質問です。
BM_SETSTATEで押し込んだ状態にできますが、
クリックしたり、クリックしたままボタンの上から移動すると
出っ張った状態に戻ってしまうんですが、
トグルボタンのようなものを作るにはどうしたらよいですか。
MFCなら同じメッセージを送ればそのまんま動くみたいですが
MFCなしでお願いします

362 名前:デフォルトの名無しさん [2008/02/12(火) 20:34:05 ]
リストビューコントロールについて質問します。
リポートビュースタイルを適用しています。
リストビューに項目を設定するには、
LVITEM lv;
lv.iItem = 0;
ListView_InsertItem(hListView, &lv);
ListView_SetItemText(hListView, 0, 1, TEXT("項目1−1"));
という形で大丈夫なはずだと思うんですが、なぜかうまくいきません。
どこがおかしいのでしょうか


363 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 20:55:26 ]
>>359
インストール時のコンポーネント指定でドトネト関連だけ外せばいいじゃん
ダウンロードするファイルのサイズ自体を減らしたいというならそれは無理な相談、だがwebインスコなら可?

364 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 21:06:07 ]
Sleep(1);よりも短い時間のウェイトは作れない?
精度はまったくいらないんだけど。



365 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 21:11:35 ]
じゃあ1でいいだろ

366 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 21:12:24 ]
精度要らないならSleep(1)でいいじゃん。

367 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 21:13:09 ]
ビジーループでおk

368 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 21:15:10 ]
>>362
そのリストビューはカラムを2つ以上追加した状態なのか?(ListView_SetItemTextの第3引数は一番左のカラムなら0)
あとLVITEMは宣言時に { 0 } で初期化したほうがいい
まずはリファレンスか入門サイト見たほうがいいよ

369 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 21:21:34 ]
>>364
どんなウェイト?
他のスレッドに一瞬制御渡したい目的なら「メッセージポンプ」で検索。
そうじゃなきゃvolatile int i; for(i=0;i<100;i++);とかで適当に回すとか。

370 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 21:30:25 ]
I/Oポート触ったら約1μ秒だ、ってどっかに書いてあった

371 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 21:33:47 ]
>>364
精度がいらなくて短いウェイト?
つSwitchToThread()

372 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 21:40:21 ]
>>363
ランタイムは勝手にインスコされた気がするが。

373 名前:デフォルトの名無しさん [2008/02/12(火) 22:18:03 ]
>>368
ゼロで初期化したら、”できました!!”
カラムは4本です。だけど、不思議です。
ありがとうございました。!!!!

374 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 23:18:37 ]
>>364
Sleep(0);



375 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 23:39:45 ]
SetTimerのタイムアウト値って動的に変えるにはどうすればいいの?
UINT型でキャストした変数じゃむりですた

376 名前:デフォルトの名無しさん [2008/02/13(水) 00:02:33 ]
ウィンドウズのシステムの休止や終了に関する質問です。
システムの終了時を捉えるには、WM_ENDSESSION メッセージに対応すればいいと思うんですが、
ハイバネーションモードに入るのを捉えるにはどうしたらいいでしょうか
タイマーでプログラムが生きてるかどうか確認する方法しか思いつかないです。
(定期的に時間差をとることで、復帰後にシステムが休止状態にあった時間を調べるという泥臭い方法くらい)

377 名前:デフォルトの名無しさん [2008/02/13(水) 00:03:33 ]
>>375
普通に最初に指定したタイマーIDと同じIDを指定して、新しい時間を設定すればOKだと思いますが

378 名前:デフォルトの名無しさん [2008/02/13(水) 00:33:28 ]
>>361
オーナードローを使えと言いたいところだが…

379 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 00:50:41 ]
>>361
BS_RADIOBUTTON,BS_CHECKBOX,BS_AUTORADIOBUTTON,BS_AUTOCHECKBOX
のいずれかとBS_PUSHLIKEを組み合わせればトグル動作するけど
どうだろう?

380 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 00:54:37 ]
>>376
WM_POWERBROADCASTとか

381 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 01:46:07 ]
人材管理は技術のないやつの逃げ道ですか

382 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 02:24:07 ]
他人を使うことができる人間は、1日に24時間以上の時間を使うことができるのです
が、ム板にはこういうレスと人は不要です

383 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 05:52:26 ]
これひょっとしたらAPI関係ないかもしれないんですけど、
スレッドの開始関数に情報を渡すときってどうすればいいんですか?グローバル変数?

384 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 07:21:02 ]
>>383
void*の引数があるから、それで何とかしろ。
素人にはお勧めしない方法だが、下のような方法で組むことがあるな。
渡した内容をきちんと受け取るまで待っている所が重要。

static foo_data {
 volatile int flag;
 int data1;
}

DWORD ThreadProc (LPVOID lpParam) {
struct foo_data param = *(struct foo_data *)lpParam;
((struct foo_data *)lpParam)->flag = 1;
...
}

HANDLE ThreadStartProc(int data1) {
struct foo_data param = { 0, data1 };
HANDLE hThread;
if ( (hThread = CreateThread(NULL, 0, ThreadProc, ¶m, ...)) != NULL ) {
while ( !param.data1 ) Sleep(100);
}
return hThread;
}



385 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 08:44:44 ]
SleepにINFINITE渡しても49.7日後に起きないよね?

386 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 09:17:35 ]
アクティブウィンドウとフォアグラウンドウィンドウとフォーカスの違いについて教えてください。






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

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

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