■過去ログ置き場に戻る■ 1- 前250 次250 最新50


[memo] "9999999999_00.html#R20" という感じで、URLの最後に "#RレスNo" を追加すると幸せになれます。

Win32API質問箱 Build39
251 名前:デフォルトの名無しさん :2006/01/14(土) 04:20:23
>>249
あたりまえでしょ!そんなこと!

252 名前:デフォルトの名無しさん :2006/01/14(土) 04:20:33
>>249
え?おまえなにいってんの?

おれにはその短文では>>217が理解できると思わない。

253 名前:デフォルトの名無しさん :2006/01/14(土) 04:24:35
>>249
俺もそれは気付いていたけど
叩かれそうだから迷ってたんだよ。 テイウカ、 ツッコミドコロ マンサイダヨネ

底引き網漁・・・

254 名前:デフォルトの名無しさん :2006/01/14(土) 04:26:08
困ってることは分かるが何も分かっていないな、ということしか分からない。

255 名前:デフォルトの名無しさん :2006/01/14(土) 04:27:06
>>253
突っ込みどころ満載だからこのスレの意味があるってもんだ!!

修正したファイルをうpしてもいいがそれじゃ>>217
の勉強にならないもんな

256 名前:デフォルトの名無しさん :2006/01/14(土) 04:29:27
>>250
それじゃだめ。毎回KillしてSetしなきゃ。

257 名前:デフォルトの名無しさん :2006/01/14(土) 04:30:32
>>256
オレの無知さが明るみに出たな。
畜生。オレだって>>217レベルだお・・

258 名前:デフォルトの名無しさん :2006/01/14(土) 04:50:02
DialogBoxだからメッセージループは不要だろ…
CreateDialogなら必要だけどさ。

259 名前:デフォルトの名無しさん :2006/01/14(土) 05:08:29
おまえら自分の答えられそうな事にしか反応出来ないんだな
馬鹿の相手するとスレ全体が馬鹿っぽくなってくる

もう少しマシな話題にしてくれ


260 名前:デフォルトの名無しさん :2006/01/14(土) 05:13:22
じゃお前がましな回答してやってくれよ
氏のためになるようにな。

261 名前:デフォルトの名無しさん :2006/01/14(土) 05:30:46
COMスレが無いみたいなのでこちらにお邪魔します。
IFoo *pFoo;
pBar->SomeMethods(&pFoo); // IBar* pBar; であり、インスタンス作成済
// pFooで作業
pFoo->Release(); // ???
という状況です。pFoo->Release()するべきなのか、という質問です。

SomeMethodsのドキュメントに「pFoo使用後はRelease()を呼び出せ」と明記
してある場合はいいのですが、何も書いてないものもあるのです。
感覚的にはRelease()した方が良さげですが、一般的にこう考えるべきなのでしょうか?

// でも他メソッドではAddRef()を呼べと明示するものもあって、心に迷いが生じました。
// なのにサンプルではAddRef()なしでRelease()を呼出していて、それで動作しているので混乱中

AddRef()、Release()の戻り値もイマイチ信用できないと聞き、手詰りになってしまいました。
詳しい方、どうぞ御教示下され

262 名前:261 :2006/01/14(土) 05:34:11
書き忘れました。環境は WinXP SP2 + VC7 + Platform SDKです。
(DirectShowまわり)

263 名前:207 :2006/01/14(土) 05:46:45
>>208
即レスありがとうございました。
WS_VISIBLEを指定していても、
WM_PAINTを送ってやらないまでは表示はされないんですね。


264 名前:デフォルトの名無しさん :2006/01/14(土) 05:46:46
SomeMethods(&pFoo)でインスタンス作成したんなら
インスタンス作成した回数ぶんRelease()でいいんじゃない?

あとはエロくて詳しい人に任せます。

265 名前:デフォルトの名無しさん :2006/01/14(土) 05:51:59
普通はSomeMethods内でIFoo->AddRefして返してると思う。なんでRelaese呼び出ししてOK。


266 名前:デフォルトの名無しさん :2006/01/14(土) 05:58:28
IUnknownの実装でコンストラクタで参照数1にする例と0にする例があるな。

267 名前:デフォルトの名無しさん :2006/01/14(土) 06:43:26
標準ハンドルの親プロセスから子プロセスへの継承についてです。
ファイルやパイプのハンドルは特に問題なく継承できます。
しかし、コンソールのハンドルについては、子プロセスがGUIアプリの場合、継承ができないみたいなのですが?
もちろん子プロセスがCUIアプリの場合は継承できます。
GUIアプリにももちろんハンドルの値そのものは渡っているのですが、GUIアプリがそのハンドルを使おうとしてもエラーで使えません。
コンソールのハンドルをGUIアプリに継承させて使わせることができる方法をご存じの方、お教えください。
また、もし無理ならなぜこういう仕様になっているのかお教えください。

268 名前:デフォルトの名無しさん :2006/01/14(土) 07:23:07
GUIだから

269 名前:デフォルトの名無しさん :2006/01/14(土) 07:43:41
コンソールウィンドウの表示
デバッグ時に引数の値などをチェックする時にMFCならTRACE、Win32ならOutputDebugStringなどを使うでしょうがprintfのような入出力関数を使いたい場合はコンソールウィンドウを表示すれば出来ます。


#include <io.h>
#include <fcntl.h>

void OpenConsole()
{
int hCrt, i;
FILE *hf;

AllocConsole();
hCrt = _open_osfhandle((long)GetStdHandle(STD_OUTPUT_HANDLE), _O_TEXT);
hf = _fdopen(hCrt, "w");
*stdout = *hf;
i = setvbuf(stdout, NULL, _IONBF, 0);
}

終了時に解放してください。


FreeConsole();

結構重宝すると思います。


270 名前:デフォルトの名無しさん :2006/01/14(土) 07:45:34
http://www.geocities.jp/monalipse/c/api/Console.html
コンソールプログラムを起動したときにWindowsが
コンソール・ウィンドウを自動的に用意することからわかるように、
Windowsは実行ファイルを見てコンソールプログラムかどうかを識別している。

この情報は、実行ファイルのヘッダー部の特定のフィールドに埋め込まれている。
このフィールドの値が定数WINDOWS_GUI(=2)ならGUIプログラム、
WINDOWS_CUI(=3)ならコンソールプログラムになる。

コンパイラのオプション指定によってどちらかを設定するのである。

上記のオプションを指定するかどうかにかかわらず、C/C++コンパイラが
ソースコードから生成するマシン語は同じものである。
しかし、プログラムの開始位置がmain関数か、WinMain関数かという違いが生じる



271 名前:デフォルトの名無しさん :2006/01/14(土) 07:47:58
BOOL WriteConsoleEx(LPCSTR buf)
{
// スクリーン・バッファのハンドルを取得
HANDLE hOut = CreateFile( "CONOUT$", GENERIC_READ | GENERIC_WRITE,
FILE_SHARE_READ | FILE_SHARE_WRITE,
NULL, OPEN_EXISTING, 0, 0);
if( hOut != INVALID_HANDLE_VALUE){
DWORD sz;
WriteFile( hOut, buf, strlen(buf), &sz, NULL);
CloseHandle( hOut);
return TRUE;
}else return FALSE;
}
バッファのハンドルを取得するには、入力の場合に「CONIN$」、
出力の場合に「CONOUT$」という特殊なファイル名を指定して、
ファイル作成用APIであるCreateFileを呼び出せばよい
ファイル名以外の引数は、上記のソースの指定で固定と考えてかまわない。
こうして得たスクリーン・バッファのハンドルに対して、
ファイル書き込み用のWriteFileを呼び出すことで、コンソールに対して出力することができる
同様に、ユーザーが入力した文字列を取得するには、入力バッファに対してReadFileを呼びだせばよい


272 名前:デフォルトの名無しさん :2006/01/14(土) 07:48:40
SetStdHandleで標準入出力を割り当てることはできるが、
printf等の関数で出力できるかどうかはライブラリの実装次第である

// スクリーン・バッファのハンドルを取得
HANDLE hOut = CreateFile( "CONOUT$", GENERIC_READ | GENERIC_WRITE,
FILE_SHARE_READ | FILE_SHARE_WRITE,
NULL, OPEN_EXISTING, 0, 0);
BOOL ret = SetStdHandle( STD_OUTPUT_HANDLE, hOut);
printf("出力テスト");


273 名前:デフォルトの名無しさん :2006/01/14(土) 07:59:18



ttp://forums.belution.com/ja/vc/000/053/06.shtml

274 名前:デフォルトの名無しさん :2006/01/14(土) 09:22:52
#ifndef NDEBUG
int main()
{
    //これらは必要なら。
    HINSTANCE hinst = GetModuleHandle(0);
    int nCmdShow = SW_SHOWDEFAULT;
    PSTR pszCmdLine = PathGetArgsA(GetCommandLineA());
#else
int WINAPI WinMain(HINSTANCE hinst, HINSTANCE, PSTR pszCmdLine, int nCmdShow)
{
#endif

まあコンソールがなくともATLTRACE2使えばprintfと同じように書式付でデバッグ出力できるし、
C++なら自分でデバッグ出力するストリームを書く方法もある。

275 名前:デフォルトの名無しさん :2006/01/14(土) 10:11:38
>*stdout = *hf;


276 名前:デフォルトの名無しさん :2006/01/14(土) 10:23:21
やるならfreopenとかだよな。

277 名前:デフォルトの名無しさん :2006/01/14(土) 10:48:37
>>269
m9(^Д^)プギャー

278 名前:デフォルトの名無しさん :2006/01/14(土) 13:08:32
>>277
277は269の書くことが理解できないほどのゴミ

279 名前:デフォルトの名無しさん :2006/01/14(土) 13:17:16
>>277-278
小学生みたいな煽り合いはよそでやりなさい

280 名前:デフォルトの名無しさん :2006/01/14(土) 13:47:30
CD/DVDからファイル読み出すときに何倍速でドライブから読み出すかって
どうやって変更したらいいの?
標準のファイルI/O APIではそれらしいのなかったよ・・

281 名前:デフォルトの名無しさん :2006/01/14(土) 14:09:02
WindowsのAPIでそんなことができるのか…

282 名前:デフォルトの名無しさん :2006/01/14(土) 14:22:02
DeviceIoControl経由で直接ATAPIなりのコマンド投げるんでそ。
ファイルI/Oなんかで探してるヌルいヤシには無理かと。

283 名前:デフォルトの名無しさん :2006/01/14(土) 14:23:13
うちのマシンのCD-ROMドライブは8倍速固定ドライブなだ

284 名前:デフォルトの名無しさん :2006/01/14(土) 14:25:37
俺はヌルいヤシだったのか ○| ̄|_

285 名前:デフォルトの名無しさん :2006/01/14(土) 14:36:21
気持ちよさそうなヤツめ

286 名前:デフォルトの名無しさん :2006/01/14(土) 14:50:58
ぬるぽ

287 名前:デフォルトの名無しさん :2006/01/14(土) 14:55:51
びらびらがぐちょぐちょのぬるぬるでほかほか

288 名前:デフォルトの名無しさん :2006/01/14(土) 15:04:02
  =≡= ∧_∧    ガッ
   /   ( ・∀・) /
 〆   ┌  |    つ 人
  ||  γ ⌒ヽヽコノ   <  >_∧∩
  || .|   |:::|∪〓  V`Д´)/ ←>>286
./|\人 _.ノノ _||_.      /

289 名前:280 :2006/01/14(土) 16:21:23
なるほどDeviceIoControlってのがあるのか
もうちょっと詳しく頼む
ATAPIコマンド直接ってことはある程度のファイルシステムを
実装する必要あるってこと?
それは大変だ・・
もうちょっと簡単にやる方法ないかな?

290 名前:デフォルトの名無しさん :2006/01/14(土) 16:24:01
ねーよデブ。

291 名前:デフォルトの名無しさん :2006/01/14(土) 16:41:26
ファイルシステムは関係ないっつーの。
デバイス(ドライブ)に対して動作を制御するための命令を出すの。

そういう命令が実際あるかどうかは知らないし、そこに関しては
WIN32API外の話だ。


292 名前:280 :2006/01/14(土) 17:13:01
じゃあファイルの先頭セクタがどこかどうやって知ればいいの?


293 名前:デフォルトの名無しさん :2006/01/14(土) 17:14:46
>>292
おまいの最初の質問はそういう話じゃなかったろ?

294 名前:280 :2006/01/14(土) 17:22:41
ATAPIコマンドで直接制御しないといけないんでしょ?
そうなるとセクタ番号わからないとできないはず
それとも何倍速かだけATAPIコマンドで指定して
ファイルの読み込み事態は普通のReadFileでやってもいいの?

295 名前:デフォルトの名無しさん :2006/01/14(土) 17:41:35
自分で読み書きするなら、単にウェイト入れてコントロールすればいいじゃん。

今時のドライブは「何倍速」とかいうコントロールは出来ないと思う。
そもそもドライブ自体が可変速で動いてるし。


296 名前:デフォルトの名無しさん :2006/01/14(土) 18:14:27
>>269
void OpenConsole()
{
AllocConsole();
freopen("CONOUT$", "w", stdout);
}
で十分。逝って良し。

297 名前:デフォルトの名無しさん :2006/01/14(土) 18:49:08
>>295
出来ないわけないだろ。
CD2WAVとか使ってみろ。

298 名前:280 :2006/01/14(土) 18:51:22
そうかな
普通CD/DVDからファイル読み出したら最高速でドライブ動くみたいで
うるさいでしょ?それを避けたいのよ
CD/DVDプレイヤーとかだとうるさくならないからできると思うんだけど

299 名前:デフォルトの名無しさん :2006/01/14(土) 19:10:37
>>298
そういうソフトなら既にあるな。
http://cdromtool.sourceforge.net/
ソースも公開されているし。

300 名前:デフォルトの名無しさん :2006/01/14(土) 19:53:09
うるさいなら8倍速以下のドライブ使えばいいじゃない。


301 名前:280 :2006/01/14(土) 19:53:53
おおサンキュウサンキュウ

302 名前:デフォルトの名無しさん :2006/01/14(土) 19:58:43
>>298
ただのデータ読み出しと音楽/動画再生を一緒にすんじゃね

303 名前:デフォルトの名無しさん :2006/01/14(土) 21:34:03
指定したソフトから特定のAPIが呼ばれたときにその処理をすり替える、
つまりAPIをフックするプログラムを作りたいんですが、
参考になるソースとかはないでしょうか。

304 名前:デフォルトの名無しさん :2006/01/14(土) 21:45:05
画像ファイルをスライドショーするフラッシュファイル(swf)を作成する
アプリを作りたいのですが、フラッシュファイル(.swf)を書き出すAPI・仕様とか、
サンプルプログラムがあったらURLを教えてください。
(QuickTime APIで可能でしたでしょうか?)
ご教授よろしくおねがいします


305 名前:デフォルトの名無しさん :2006/01/14(土) 21:49:10
>>303
つ[listexp]

306 名前:デフォルトの名無しさん :2006/01/14(土) 22:03:57
>>305
凄い!こんな便利なものがあったなんて。
ありがとうございました。

307 名前:280 :2006/01/14(土) 22:18:42
>>298
>ただのデータ読み出しと音楽/動画再生を一緒にすんじゃね
どうして?
ファイルI/Oに関しては同じではないの?
何か異なるの?
おれ別に音楽/動画再生するわけじゃないけど
同じような感じでストリーミング処理を実現したいんだ
今教えてもらったcdromtoolのソース読んでる
SCSIコマンド直接投げてるっぽいとこがある
ATAはまた別かな?

308 名前:デフォルトの名無しさん :2006/01/14(土) 22:48:33
ATAPIってSCSIコマンドをIDEバス上で投げてるわけだが

309 名前:デフォルトの名無しさん :2006/01/14(土) 23:00:21
>>298
CDの音楽の再生には遅くても問題ないから遅くなり、従って音も静かになる。
そもそも音楽の再生されるときの早さが1倍。

逆にファイルなどのデータを読み出すのは(静穏性などを考えなければ)早いほうが良いに決まっている。
だからこそ速度が上がることがCD/DVDドライブの性能向上とされた。

310 名前:280 :2006/01/14(土) 23:15:22
>>308
なるほどそういうことか
サンキュウサンキュウ

311 名前:280 :2006/01/14(土) 23:19:24
>>309
つまり295が言うように自前でwaitでも入れてゆっくり読めば
ディスクの回転は自然と落ちると言ってるわけ?
でもそれやったけどそうならないから質問したんだ

312 名前:デフォルトの名無しさん :2006/01/14(土) 23:20:19
わかったから、もう黙って作れ。

313 名前:デフォルトの名無しさん :2006/01/14(土) 23:48:03
>>311
どうしたらそう読める

314 名前:280 :2006/01/15(日) 00:03:58
>>313
ここ
>CDの音楽の再生には遅くても問題ないから遅くなり、従って音も静かになる。
「遅くなり」ってのは自然とディスクの回転が遅くなるって意味じゃないの?

>>312もう黙ってようと思ってたんだけどごめんね

315 名前:デフォルトの名無しさん :2006/01/15(日) 00:08:22
>>314
「自然と」というがおそらくは音楽CDだけが1倍で動くように作られていると思う。
311のように自前でwaitを入れても、少しの時間全力で動くのと少しの時間止まるのが繰り返されるだけだと思う。

316 名前:デフォルトの名無しさん :2006/01/15(日) 00:34:31
CD読んでる間HDDをガリガリ言わせれば、CDの音は気にならない。

317 名前:デフォルトの名無しさん :2006/01/15(日) 00:39:02
CD読んでる間ガリガリ言えば、CDの音は気にならない。

318 名前:デフォルトの名無しさん :2006/01/15(日) 00:59:19
>>317
280は自分のPCのじゃないCDを静かに動かしてみたいと思ってんじゃねーの

319 名前:261 :2006/01/15(日) 01:34:01
>>264-266
お返事ありがとうございました。
やはりRelease()を呼ぶべきですよね。
すっきりしました。どうもありがとうございました


320 名前:デフォルトの名無しさん :2006/01/15(日) 03:12:23
>>303
http://www.google.co.jp/search?sourceid=navclient&hl=ja&ie=UTF-8&rls=GGLG,GGLG:2005-32,GGLG:ja&q=API+Hook

321 名前:デフォルトの名無しさん :2006/01/15(日) 04:24:38
>>303
そういうことをしたくなったときに買う本が『Advanced Windows』

322 名前:デフォルトの名無しさん :2006/01/15(日) 09:37:27
質問させていただきます。
SDKでスレッドを立ててその中で非同期通信を設定しました。
データが入ってきたときにエディットボックスに書き込むように書いたつもりですがエラーが出ます。
コンパイルしています...
main.cpp
c:\documents and settings\taka\my documents\visual studio projects\受信\main.cpp(91) : error C2664: 'GetDlgItem' : 1 番目の引数を 'LPVOID' から 'HWND' に変換できません。
'void*' から非 'void' 型への変換には明示的なキャストが必要です。
c:\documents and settings\taka\my documents\visual studio projects\受信\main.cpp(96) : error C2664: 'GetDlgItem' : 1 番目の引数を 'LPVOID' から 'HWND' に変換できません。
'void*' から非 'void' 型への変換には明示的なキャストが必要です。
c:\documents and settings\taka\my documents\visual studio projects\受信\main.cpp(120) : error C2664: 'GetDlgItem' : 1 番目の引数を 'LPVOID' から 'HWND' に変換できません。
'void*' から非 'void' 型への変換には明示的なキャストが必要です。
エラーからわかると思いますが
hThread1=CreateThread(NULL,0,fnThread1,hWnd,0,NULL); /* スレッド作成 */
をして
DWORD WINAPI fnThread1(LPVOID hWnd) {
...中略
SetWindowText(GetDlgItem(hWnd,IDC_EDIT2),"接続が確立されませんでした。");
として上記のエラーが出ました。どの用にしたらいいと思われますか?よろしくお願いします。

323 名前:322 :2006/01/15(日) 09:49:04
要するにスレッドでの結果をダイアログに表示したいのです。

って・・・

誰も居ない・・
テラサビシス

324 名前:デフォルトの名無しさん :2006/01/15(日) 09:52:59
見てるよ
だけどapiと全然関係ないから無視しただけ

325 名前:322 :2006/01/15(日) 09:53:45
わかるなら答えていただきたいです。

326 名前:デフォルトの名無しさん :2006/01/15(日) 10:02:26
>>322
>明示的なキャストが必要です

327 名前:デフォルトの名無しさん :2006/01/15(日) 10:06:27
>>326
それなんですけど、どうやればいいのかがわかりません。
この場合の明示的なキャストとはどうやればいいのでしょうか?
'void*' から非 'void' 型への変換・・・?

328 名前:デフォルトの名無しさん :2006/01/15(日) 10:08:55
GetDlgItem はどこにいったのだ

329 名前:デフォルトの名無しさん :2006/01/15(日) 10:11:37
ん?というと・・
HWND hwnd = GetDlgItem(hWnd,IDC_EDIT2);


ということでしょうか・・??

330 名前:328 :2006/01/15(日) 10:12:11
ごめん あった

hWnd の使い方がおかしい

331 名前:デフォルトの名無しさん :2006/01/15(日) 10:12:42
>>327
お前はプログラムをやるのはまだ早いよ。
Cを最初から勉強しなおせ。

332 名前:デフォルトの名無しさん :2006/01/15(日) 10:13:04
hThread1=CreateThread(NULL,0,(LPVOID)fnThread1,hWnd,0,NULL);
つーか、今の時代にCreateThread?

333 名前:デフォルトの名無しさん :2006/01/15(日) 10:13:06
>>330
うーむ・・・

334 名前:デフォルトの名無しさん :2006/01/15(日) 10:13:49
>>331
Cもプログラムだろ、お前もやりなおせ

335 名前:デフォルトの名無しさん :2006/01/15(日) 10:16:39
>>331
すいません。最近VC++に手をつけ始めたもので・・汗

336 名前:328 :2006/01/15(日) 10:18:14
要するに、GetDlgItem() の第一引数の型がおかしいって
コンパイラ様がおっしゃってるので、適切にキャストするよろし

337 名前:デフォルトの名無しさん :2006/01/15(日) 10:18:44
>>335
まずあれだ。
キャストって知ってるかい?

338 名前:デフォルトの名無しさん :2006/01/15(日) 10:20:05
>>336
ありがとうございます!!!

コンパイラ様のお告げの意味がわかるようにならないとですね・・
ありがとうございました。

339 名前:デフォルトの名無しさん :2006/01/15(日) 10:57:55
>>332
CreateThreadは使わない方が良いのでしょうか?

340 名前:デフォルトの名無しさん :2006/01/15(日) 11:00:05
>>338
お前はC/C++をやるのはまだ早いよ。
プログラムを最初から勉強しなおせ。

341 名前:デフォルトの名無しさん :2006/01/15(日) 11:04:43
>>340はああ言ってるけど、>>343お前はどう思う?


342 名前:デフォルトの名無しさん :2006/01/15(日) 11:08:33
>>341ははあはあ言ってるけど、>>343お前はどう思う?

343 名前:デフォルトの名無しさん :2006/01/15(日) 11:17:33
             /        ヽ/          ヽ
                l          l             l
            l         l          l
         ,. ‐'' ̄ "'' 、    ,,. --‐┴─-- 、     / ̄ "'' -、
       /      ,.-‐''"´           \ _/        ヽ
      l       /                   ヽ          l
       l     /  ●                l          l
      ヽ    l       (_人__ノ         ● ヽ         /  そんな事言われても
       ,,>-‐|   ´´     |   /       , , ,. ‐'' ̄ "' -、/      ウチ ポン・デ・ライオンやし
      /    l        ヽ_/           /          ゙ヽ
     l     ` 、               l            l
      l       ,. ‐'' ̄ "' -、   ,. ‐'' ̄ "'' -、            l
       l,     /         ヽ /        ヽ,         /
       ヽ、,,  l            l          l,,,___,,,/
         "'''l            l             l
              ヽ          /ヽ        /
             ヽ,___,,,/  ヽ,,___,,,/
                   /     |
                /       |

344 名前:デフォルトの名無しさん :2006/01/15(日) 11:21:09
音楽CDだってリッピングの場合はx倍速で動くじゃん
DVDビデオだって2時間の映画が単純コピーに2時間かかったりしない

345 名前:デフォルトの名無しさん :2006/01/15(日) 11:21:26
>>343には少しハードルが高かった模様。
>>346お前はどう思う?

346 名前:デフォルトの名無しさん :2006/01/15(日) 11:31:09
                | ̄``''- 、
                |      `゙''ー- 、  ________
                |    ,. -‐ ''´ ̄ ̄`ヽ、_        /
                |, - '´ ̄              `ヽ、     /
              /               `ヽ、ヽ   /
             _/                    ヽヽ/
           / / /   /  /  /            ヽハ
          く  / /!   |   〃 _/__ l|   | |   |  |  | | ||ヽ
           \l// / |  /|'´ ∧  ||   | |ー、||  |  | l | ヽ
            /ハ/ |  | ヽ/ ヽ | ヽ  | || /|ヽ/!  |/ | ヽ
            / |  ||ヽ { ,r===、   \| _!V |// //  .!   |
            | ||   |l |ヽ!'´ ̄`゙   ,  ==ミ、 /イ川  |─┘
            | ハ||  || | """ ┌---┐  `  / //  |
            V !ヽ ト! ヽ、    |     !    / //| /
               ヽ! \ハ` 、 ヽ、__ノ    ,.イ/ // | /
    ┌/)/)/)/)/)/)/)/)/)/)lー/ ` ー‐┬ '´ レ//l/ |/
    |(/(/(/(/(/(/(/(/(/(/│||      |\  〃
  r'´ ̄ヽ.              | | ト    /    \
  /  ̄`ア             | | |  ⌒/     入
  〉  ̄二) >>322は死ねば| | |  /     // ヽ
 〈!   ,. -'                | | ヽ∠-----', '´    ',
  | \| |   .良いと思います   | |<二Z二 ̄  /     ',
  |   | |               _r'---|  [ ``ヽ、      ',
  |   | |  つかスレ違いです >-、__    [    ヽ      !
  \.| l.              ヽ、      [     ヽ    |
    ヽ|              \    r'     ヽ、    |


347 名前:デフォルトの名無しさん :2006/01/15(日) 11:33:15
   / ̄ ̄ ̄ ヽ
   ( ヌ … ヌルポ )      / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ヽ
   ヽ、_  _ノ      (   ぬるぽぬるぽ! )
       ヽ{          ヽ、_  _____ノ
           _,,, _     ノノ
     Σ   , -'"     `ヽ、
         / /  ィ ト  ヽ r、},々
      /  /,ィ ハ N \  }7凡 >
      ,彳 レレ' V   ヽN}Ll ヽ ぬるぽぬるぽ…
       ハM| ○//// ○ `ー、イ  }  ぬるぽぬるぽぬるぽ!
       {N{ヽl "" r-┐"" _6ノノNノ
     }ヽ、  ヽ _L__l_ ノ  _ノノノ
     {  `ー--'≪_ V  _≫'"  ノl l
     ll l l、_  r' ,ヘ 1  _,,-'"l l l
       l l l  ノ i レ'  V  l ヽ、_l l  バタバタ
      ヽ ̄ ノ|      ト、__彡


   _
 ,.'´   ヽ  ガッ
 ! ノ_,メ,_ハ〉  _
 l (!l.‘д‘ノ| , '´ィ´ `ヽ
  ! (とゝ )i卯ミノ从从リ *⌒) 
 ノ ノ/⊂彡☆#))Д゚ノリ
 ` `iララ′ と)j水!つ


348 名前:デフォルトの名無しさん :2006/01/15(日) 12:03:23
>>344
そうとは限らない。DVDビデオだと強制的に等倍になるドライブもある。
その場合ドライブのファームウェアを改造しなければ本来の速度を出せない。
通称 改ファーム。

349 名前:デフォルトの名無しさん :2006/01/15(日) 12:35:29
>>339
作ったスレッド内でCRTもMFCも使わないならCreateThreadでいいよ。

350 名前:デフォルトの名無しさん :2006/01/15(日) 12:54:26
んじゃオレはCreateThreadでいいや

351 名前:デフォルトの名無しさん :2006/01/15(日) 12:59:35
どこかで _beginthread 使った方が良いと書いてあったな

352 名前:デフォルトの名無しさん :2006/01/15(日) 13:17:19
画像ファイルをスライドショーするフラッシュファイル(swf)を作成する
アプリを作りたいのですが、フラッシュファイル(.swf)を書き出すAPI・仕様とか、
サンプルプログラムがあったらURLを教えてください。
(QuickTime APIで可能でしたでしょうか?)
ご教授よろしくおねがいします



353 名前:・∀・)っ-○●◎- ◆Pu/ODYSSEY :2006/01/15(日) 13:27:06
_beginthreadexのほうがいい。てかぶっちゃけ_beginthreadも非推奨。

354 名前:デフォルトの名無しさん :2006/01/15(日) 13:28:02
>>351
349じゃないが…CRTを使わないならCreateThreadでいい。
逆に使うなら_beginthreadでないとリークが発生する。

355 名前:354 :2006/01/15(日) 13:30:00
あっと、353にあるように_beginthreadexが推奨だね、、、失礼をば
_beginthreadを_beginthreadexと読み違いてた

356 名前:デフォルトの名無しさん :2006/01/15(日) 14:40:41
>>355
おっけなるほど・・了解した。

357 名前:デフォルトの名無しさん :2006/01/15(日) 15:03:05
          ;".:^;         ;".:^;
         ;";'.::.:';       ;'.::.:';
        ;' ;.::;.:;.:'; ;       ;.::;.:;.:'; ':
       ;" ;'.:;.::;:::;';"" "" ;'.:;.::;:::;'; ':
      ;"                   ':,
     ;'                     ':,   
     ;                      ';   また頑張ってね♪
    ミ       ●       ●      ミ
     ミ                        ミ' ~;";^:
    ミ  """   ;"   ミ    ';   """ ミ oOOo ミ
    ';  """   丶,.,,,:" 丶,,,,:"   """ ;"':,_ .○,'    ))
     ':,                     ;"ミ   ミ
      ,,;                 _ _;" ;   ;'
      ; "                :'    ;'
      ;    ':,                 ;'
     ; ':,     ':,           ,、:'
     ミ ':,   ;.,,;.,.         ;.,..,;.,.  ',
  ....,.,ミ    ミ' ~;";^:ミ   X    ミ' ~;";^: ミ
 ミ  `"ミ  ミoOOo ミ       ミoOOoミ ミ
 ミ  ,.,.,...':,_ミ  ○ ;ミ   ';   ;ミ ○ ;ミ_:'
         ミ,.,;.,.;,,. 丶, ,:"丶,,:" ミ,.,;.;,.丶



358 名前:デフォルトの名無しさん :2006/01/15(日) 15:04:29
>>346
:;' /:/ `メ、 i: ハ: i: : ii:i ヽ: i: :ii; : : : :iヽ: :
i: :i: i: i/,ィ=ミヽi: iヽNi:i_`iL:H---i:i: ヽ
i: :i :i / {.iトgj:i ヽ! lルィ丁゙)‐ミ「!: :ii/: : i
;':/ヾム⊂つ'´     i:.;{iil1:ソ i:i:::i !: : i:
: i: /: iト        、,,ミニっ /i/゚: o i .
: i:/: : i    、`_      ̄/.:/: : : i: :    >>322さんに
: /: .::ハ   ゙llllllル `ヽ    //. : :/! i: .   <あやまれ!
/: .::/:::/`、  lll/: : : : :} /〃:./: /i iハ!
i. ::/i::/::::::i::ヽ`三ー 'ノ , イ/: /: /.::i i::::::
::::///::::::::i:::i:..ヽ---<::::/:::/: :/: : i iヽ::

359 名前:デフォルトの名無しさん :2006/01/15(日) 15:05:04
           __, ----- 、
     ___「「 |    ̄⌒ヽ¬、\
    / ̄ブ /  |       \   ヽ
   〃   / /  ハ |ヽ   ヽ\  ヽ  ヽ
      // / | ||l  |ト、ヽ  \ \ ヽ   !
    // /l | || ヽ ヽ\>┼\ ヽヽ  |
    ||  | | | |」十 ヽ ヽ ヾィ¬ミヾ | 川|
    lハ | | | トxrテミ     ├1:::リ}| |}}リト〉
      ヽ !トlハ {{ ヒハ     ヽニソ | レ1∧|
       ヽV八ハ ゞ┘ ,   "" | | || {
       // /jハ ""  一   , イ /| l| ハ リテラです。
        // // / /`丶 、 __/ ||/l| /l| | ヽ
     // /// | / |川r┤    |//|/ || | | ヽ
    / ///川レ┬ '" /   /|ハ| >┬L|ヽ !
  ./ / // / | || |  /ヽ ァ'´  ||_メ/ /⌒ヽ}}
/ //  /レ7 」 || ヽ |  /  __乂レ'´ /     _ヽ
  / /  /ハ/ |  ̄\」 /r‐ '´ ̄ } \/     トミヘ
 / /  / //  }‐ ¬厂!'´   ヽ/  }}     \ハ
 |/  / //|  /   _L」      |   / , -------- ヘ
 || 〃/〈 |  |厂 //个、`ー、 /  //        


360 名前:デフォルトの名無しさん :2006/01/15(日) 15:05:38

               /  /     /   |      \ ヽ
               / /  /   / /    ||  |  i  ヽ i
              i /  / /  / / /    ||  ||  |│ |ノス
               |//  / /___, -一ァ|  /! |ト、|│ | | く」
                |,-‐¬  ̄---┘'7 |!  ハ! |,、-┼十|! | | |
          , -‐ ''"  し' '´_ /,ィ二l |ト、/!ヽト、\_ヽ!|!l | ハ |
       ,r/      __   ,イ|リ ヾハ! ヽ!  ,ィ⌒ヾミリノ!/リ  |
      / ||ヽ  -'     / ̄ )` __      |ヒノ:} '` ,イ/ |  | 
    ,r '   ヾ、  ,-、____ , イ ̄,r==-      ==-'  レ' /|  |   
  / ヽ    `ーソ  ' | |ト、,ヘ ′""          "" / / || |   
. /    \_  /  | ハ ヽ`゙'ヘ       ' '__. ィ  / / | |  |  
           /   / / |  ヽ 川\    ヾ三ニ‐'′//! |  | |  |   妹のクレアです!!
        /    / / 八  \川| |`ト- ..  __ , イ‐ァヘ |  | ||  |!
      /    / / /  \  \ 「`ー- 、    /  .〉  ト、|  ヽ、
     ,イ    /-─=¬ニヘ、_  \   厂\ 厂ヽ /!|   | `ー=ヘ
 -‐  ̄ /─ '  ̄     ├- ヽ\  \ノ\ \ 人 ハ!ヽ ||  |-┤ ヽ
      /          /!‐-- | |\   ト、_`ヽ oヽ  ト、!  ||  |‐┤- ヽ
  // 〉      __ /  ├‐-  ||  | 川-‐  | |  厂7! ハ!  ├:┤  ̄ヽ
  / / ー ─    ̄       ├‐- リ  || ハ!ヘ   | |  ト┤|/′ ヾ,┤   ゙i_
  ‐ '              〉‐-    | / /\ .|o | /ヽ/(′    ∨     \
‐--─ ──-r、___-、    /ー_     {(   '´>、! /ヽ/       |\       \


361 名前:デフォルトの名無しさん :2006/01/15(日) 18:32:08
>>359-360は勝手に偽名で自己紹介始めたけど、
本気でWin32APIの質問をしたいと言う>>363よ、どう思う?

362 名前:デフォルトの名無しさん :2006/01/15(日) 18:41:57
〉〉363に期待

363 名前:デフォルトの名無しさん :2006/01/15(日) 18:42:25
㍆㌋_㌆㌨㌰㌾㌈

364 名前:デフォルトの名無しさん :2006/01/15(日) 18:45:44
>>363
これは酷い・・・
>>366よ、この凍えきった空気を暖めてくれ!

365 名前:デフォルトの名無しさん :2006/01/15(日) 18:48:01
>>363
ワロスw

366 名前:デフォルトの名無しさん :2006/01/15(日) 18:50:19
意味わからん

367 名前:デフォルトの名無しさん :2006/01/15(日) 18:50:50
>>366
お前にはがっかりだ

368 名前:デフォルトの名無しさん :2006/01/15(日) 18:51:33
>>366
・・・

369 名前:デフォルトの名無しさん :2006/01/15(日) 18:54:37
             /        ヽ/          ヽ
                l          l             l
            l         l          l
         ,. ‐'' ̄ "'' 、    ,,. --‐┴─-- 、     / ̄ "'' -、
       /      ,.-‐''"´           \ _/        ヽ
      l       /                   ヽ          l
       l     /  ●                l          l
      ヽ    l       (_人__ノ         ● ヽ         /  そんな事言われても
       ,,>-‐|   ´´     |   /       , , ,. ‐'' ̄ "' -、/      ウチ ポン・デ・ライオンやし
      /    l        ヽ_/           /          ゙ヽ        ところで >>359-360 おはつです
     l     ` 、               l            l           可愛いなぁ 連絡先交換せーへん?
      l       ,. ‐'' ̄ "' -、   ,. ‐'' ̄ "'' -、            l
       l,     /         ヽ /        ヽ,         /
       ヽ、,,  l            l          l,,,___,,,/
         "'''l            l             l
              ヽ          /ヽ        /
             ヽ,___,,,/  ヽ,,___,,,/
                   /     |
                /       |

370 名前:デフォルトの名無しさん :2006/01/15(日) 18:56:03
>>369が二次元の世界で会話を始めちゃったよ・・・
>>372はどうすべきだと思う?


371 名前:デフォルトの名無しさん :2006/01/15(日) 18:57:16
自己解決しました。

372 名前:デフォルトの名無しさん :2006/01/15(日) 19:01:50
だが断る

373 名前:デフォルトの名無しさん :2006/01/15(日) 19:06:23
>>369をポン・デ・ライオンと言われてもかなり微妙なラインだと思う。
>>376はどう思う?

374 名前:デフォルトの名無しさん :2006/01/15(日) 19:13:11
技術板で何やってんだよ…他所行けや

375 名前:デフォルトの名無しさん :2006/01/15(日) 19:21:51
マ板にうってつけじゃないか。

376 名前:デフォルトの名無しさん :2006/01/15(日) 19:25:32
マ板行った事無いけど、そういう所なのか

377 名前:デフォルトの名無しさん :2006/01/15(日) 20:11:27
>>366よ、>>363が分からんと申すか。

そのまま横に読めばいいんだよ。
つまり、





マルカイミォナピボルエー

378 名前:デフォルトの名無しさん :2006/01/15(日) 20:30:33
・・・・っというAPIを探してるんですが、
どのファイルをインクルドーしたらいいのでつか?

379 名前:デフォルトの名無しさん :2006/01/15(日) 20:32:23
>>378
お好きにドウゾ。
突っ込む気にもなれない

380 名前:デフォルトの名無しさん :2006/01/15(日) 20:36:30
APIって中でどんなことしてるんだろう

381 名前:デフォルトの名無しさん :2006/01/15(日) 20:47:17
A・・・あなたの
P・・・パソコンで
I・・・生きている

382 名前:デフォルトの名無しさん :2006/01/15(日) 20:50:47
>>381によりAPIは専ら日本語が得意だということが判明。

383 名前:デフォルトの名無しさん :2006/01/15(日) 20:53:50
            _,、-‐‐'ー- 、,_ヽ_
           / ,、 -‐ ''"´;: ; ヽ
          / / ,、‐''"´´  ;: ;;`ヽ
         / (/  ,、-‐''"´´ _, ,丶          そおおおんあわけねええだろぉ?
         i  (ゝ /, , 、ー''"、´   _ヽ
         |  /'''_ー-<___, -'´ lー''"ノ ヽ.  , へ、 _
         、 'l { `ヽ;ー-、-,ー‐,r''1 ; ;ヽ<''ヘ  ヽー---‐'''"""""
          r、 iヽ  ヽ' `'   .|、  ,. |  |
         {λヽ.ヽ       ,,ソ ヽ-' t' __ノ   ,______
         \ゝ、iヽー '`ー'''`1´     ~ヽ、、、/~    ̄ ̄,~"=
   、‐'''''ヽ    `'ヘ.',ヽ   , 、 {              ,、- '´   
  /     \    ヾ ヽ⌒ヽ ヽ {       , ‐、_   /       
.  |        ゛‐-ー'.,!\\__  `ヽ. ,、   /   `'´        ,
  、        / / | \ \゛、ー'>' ノrー' ´    | ,       /
  r;       / /  |\,_\ `""´r''| ト、      | |     /
   i        /  |   フ 丶、___ノヽ.      |/ /  /
  rヽ\      (   |   ,ヘ   | | ヽ \     ‖/ /


384 名前:デフォルトの名無しさん :2006/01/15(日) 21:27:54
指定されたパスがディレクトリなのかファイルなのかの判定をしたいです。

GetFileAttributes()を使用してみたのですが、
FDドライブやCD-ROMドライブを指定された際、
FDやCDが入っていないと、キャンセル、再実行、続行の選択の
メッセージボックスが表示されていまいます。

メッセージボックスを表示させずに、属性を取得する方法はないでしょうか?

385 名前:デフォルトの名無しさん :2006/01/15(日) 21:33:14
>>384
SetErrorMode(SEM_FAILCRITICALERRORS);

386 名前:デフォルトの名無しさん :2006/01/15(日) 21:50:11
>>385
ありがとうございます。

387 名前:デフォルトの名無しさん :2006/01/15(日) 23:13:30
>>384
試してみんと分からんけど、
PathIsDirectory
という関数もある。

388 名前:デフォルトの名無しさん :2006/01/15(日) 23:24:18
>>384
HDDであることを確認してから読みに行くとか駄目なのかな?

389 名前:・∀・)っ-○●◎- ◆Pu/ODYSSEY :2006/01/15(日) 23:28:42
正直、シェルAPI使ったほうがいい。

390 名前:デフォルトの名無しさん :2006/01/15(日) 23:29:52
>>387
ありがとうございます。明日、そちらも試してみます。
(開発環境が会社にしかないので)

>>388
ユーザに指定されたパス(FDDやCD-ROMドライブも含む)から読み込んで・・・
という処理の流れになるので、HD上だけが対象じゃないんです。

391 名前:デフォルトの名無しさん :2006/01/16(月) 04:43:53
仕事でWin32APIを使っているひといる?

392 名前:デフォルトの名無しさん :2006/01/16(月) 04:46:44
スレ番が39だから、あんまり使ってる人いないんかなぁと、、

393 名前:デフォルトの名無しさん :2006/01/16(月) 05:45:10
↑Win32APIの国内利用者はネラーが大多数だと思っている中学生。

394 名前:デフォルトの名無しさん :2006/01/16(月) 06:00:19
ネラーの大多数はAPIって何の略?って聞かれても
>>381と答えるでしょうwww

395 名前:デフォルトの名無しさん :2006/01/16(月) 06:14:55
APIたん

396 名前:デフォルトの名無しさん :2006/01/16(月) 06:38:56
A あなたの
P ぱいぱい
I いじらせて

397 名前:デフォルトの名無しさん :2006/01/16(月) 06:44:30
にしても少ない気はしないかい?

398 名前:デフォルトの名無しさん :2006/01/16(月) 06:48:03
ひょっとして実は人気ないんちゃうんかとか不安になるじゃろがっ

399 名前:デフォルトの名無しさん :2006/01/16(月) 06:51:29
マナーが悪いから2chは嫌いなひと多いしなぁ

400 名前:デフォルトの名無しさん :2006/01/16(月) 07:12:39
他プロセスに{Send,Post}Messageする時、{W,L}Paramにポインタを格納しても、
送り先プロセスでは使えないからムダ。32bitに収まる値のみちゃんと渡せる

・・・って認識でOKですか?
またこれに関連し、「他プロセスに数十文字程度の文字列を渡したい」って思った時に
使うべきワザについて今調べています。
・メモリマップトファイルなる人 (使用経験なし)
・クリップボード
以外にもっと適切なワザはあったりするのでしょうか?キーワードだけで良いので
御教示頂けないでしょうか?

401 名前:デフォルトの名無しさん :2006/01/16(月) 07:21:22
WM_COPYDATA

402 名前:デフォルトの名無しさん :2006/01/16(月) 07:48:29
つ VirtualAllocEx()

403 名前:デフォルトの名無しさん :2006/01/16(月) 08:40:39
づ WM_SETTEXT

404 名前:デフォルトの名無しさん :2006/01/16(月) 10:10:44
PS/2とUSBにキードードをそれぞれ接続している状態(計2台接続)で、
WM_KEYDOWNが発生した際にどっちのキーボードが操作されたのか判定する方法ってありますか?

405 名前:デフォルトの名無しさん :2006/01/16(月) 11:43:02
>>404
オレは何でそんなことをする必要があるのか問い詰めたい。

406 名前:デフォルトの名無しさん :2006/01/16(月) 11:47:33
>>400
つGlobalAddAtom

407 名前:デフォルトの名無しさん :2006/01/16(月) 12:27:55
406に関連して思ったのだが、
アトムからそのアトムが持っている
文字列の長さを知る方法は無い?

408 名前:デフォルトの名無しさん :2006/01/16(月) 12:47:20
>>400
もひとつオマケに
named pipe

さらにオマケで
DLLでメモリ共有

個人的には、
小さなデータ:WM_COPYDATA
大きなデータ:メモリマップドファイル+PostMessageで通知
をよく使う。


409 名前:デフォルトの名無しさん :2006/01/16(月) 14:34:33
>>400
他にもメールスロットやソケットと言う手もある。

410 名前:デフォルトの名無しさん :2006/01/16(月) 15:43:52
>>404
あります。


411 名前:デフォルトの名無しさん :2006/01/16(月) 15:52:59
わからないなら黙っててください。
or
意地悪ですね。

412 名前:404 :2006/01/16(月) 16:10:19
>>410 方法を教えて下さい。お願いします。

413 名前:デフォルトの名無しさん :2006/01/16(月) 16:59:13
以前マウスのポインタデザインを簡単に変更するAPIがないかどうかを
質問した者ですが、レジストリを直接変更しても設定が即座には反映
されませんでした(あたりまえか)。

設定値を変更した後に何か行なう必要があるんでしょうか?。
それともやはり何か簡単に変更できるAPIが存在するのでしょうか?。

■変更した部分
\HKEY_CURRENT_USER\Control Panel\Cursor の各値

414 名前:デフォルトの名無しさん :2006/01/16(月) 17:04:32
>>413
SetSystemCursor?

415 名前:デフォルトの名無しさん :2006/01/16(月) 17:12:03
SetSystemCursor で全部変えちゃえばできそうな気もしますが、
それだとマウスのプロパティにある「デザイン」は変わりませんよね。
「デザイン名」でズバッと変更できそうな気もするんですが・・・。

416 名前:デフォルトの名無しさん :2006/01/16(月) 17:13:59
>>415
適当なこと言ってみるけど、デスクトップテーマ関係の
APIがあったと思うから、そこでいじれるんじゃない?

417 名前:デフォルトの名無しさん :2006/01/16(月) 17:32:11
>>412
あるにはあるが・・・・・

趣味で作っているプログラムならあきらめろ。

仕事で作っているプログラムでどうしても必要というなら、
「i8042.sys・kbdHid.sysとkbdclass.sysの間に入れてどちらのキーボードからのIRPかを
アプリに通知するfilter-driver」を作成できる(デバドラのスキルを持つ)システムハウスを
探して依頼しろ。

filter-driverは少なくとも下げ進行のスレの雰囲気も読めない教えてクンに作れるシロモノではない。


418 名前:デフォルトの名無しさん :2006/01/16(月) 17:40:26
ググッてみました。
なるほど、作ってみますね
ちょうど大学で研究してるところなんですよ。
それを応用すれば、なんとかなりそうです。
親切に教えてくれてありがとうです。

419 名前:デフォルトの名無しさん :2006/01/16(月) 17:45:49
>>404,412,418
Raw Input APIはどう?XP限定で。
GetRawInputDeviceList()でデバイスを列挙しておいて
WM_INPUTで判別するような手順になりそうだが。


420 名前:413 :2006/01/16(月) 19:03:30
うーん、デスクトップテーマっすか・・・。

マウスのデザインを保存すると

HKEY_CURRENT_USER\Control Panel\Cursors\Schemes

に設定が保存されるんですが、Windowsはこの値を取得し、
パースして SetSystemCursor でカーソルを変更して HKEY_
CURRENT_USER\Control Panel\Cursors にも値を設定する
などという面倒な事はやってないと思うんですが・・・。

やっぱデスクトップテーマ関連なんでしょうか・・・。。

421 名前:デフォルトの名無しさん :2006/01/16(月) 19:19:50
>400
WIN16から連綿と続く互換性の為に、有名なWM_系メッセージは
Windows側でマーシャリングしてくれたはず。

422 名前:デフォルトの名無しさん :2006/01/16(月) 19:21:47
SetWindowTextに〜なときにはWM_SETTEXTを使えと書いている有様。

423 名前:400 :2006/01/16(月) 19:47:34
>>401
>>402
>>403
>>406
>>408
>>409

みなさま、色々と本当にありがとうございます。勉強になります。
これから詳細を調べてみます

424 名前:デフォルトの名無しさん :2006/01/16(月) 19:52:09
>404
WM_KEYDOWNなんかに頼らず、はなからDirectInput使ったらよくね?

425 名前:デフォルトの名無しさん :2006/01/16(月) 20:48:44
バカな424が降臨いたしました

426 名前:デフォルトの名無しさん :2006/01/16(月) 20:52:14
>>425
おれもDirectInput使えばいいと思ったんだけど?

427 名前:デフォルトの名無しさん :2006/01/16(月) 20:53:36
自演乙

428 名前:デフォルトの名無しさん :2006/01/16(月) 21:02:21
>>427
詳しく

429 名前:デフォルトの名無しさん :2006/01/16(月) 21:15:17
>>425-426
俺もそう思う。
DirectInputの使い方を知ってるなら、だけどね。

430 名前:デフォルトの名無しさん :2006/01/16(月) 21:16:26
レス番間違えちゃったぜw
>>424, 426な OTL

431 名前:デフォルトの名無しさん :2006/01/16(月) 21:59:26
>>424、426、429
キミたちはそれでやっておけば良いと思うよ、それがお似合いだ。すごく似合ってる

432 名前:デフォルトの名無しさん :2006/01/16(月) 23:27:29
リストコントロールのアイテムの名前を取得しようと、
LVITEM pItem;
TCHAR Buf[256];
for(i = 0; i < NumItem; i++) {
pItem.mask = LVIF_TEXT;
pItem.iItem = i;
pItem.iSubItem = 0;
pItem.pszText = (LPSTR)Buf;
pItem.cchTextMax = sizeof(Buf);
::SendMessage(hw, LVM_GETITEM, 0, (LPARAM)(&pItem));
TRACE(Buf);
}

このように書いたのですがSendMessage関数の返値が0のままで取得できません。
ハンドルとかちゃんと取得できてるんですが、何か指摘お願いします。

433 名前:――――v―――――――――――――――― :2006/01/16(月) 23:28:35
    ミミ ヽヽヽヽリリノノノ
    ミ   ,,、,、,、,、,、,、,、、 彡
     l  i''"  u   u i
     | 」 u ⌒' '⌒  |
    ,r-/  <。> < ゚ >|
    l   u   ノ( 、_, )ヽu|  
    ー'    ノ、__!!_,.、| 
    |     |    | |
    |     |    | |
     ∧  u  ヽニニソ  l
   /\ヽ    u  u /
 /     ヽ.  `ー--一' ノ/ヽ 


434 名前:デフォルトの名無しさん :2006/01/16(月) 23:43:56
>>432
本題とは全く関係ないけど、次のところをつっこむ。
1. ポインタ型でない変数の名前の頭にpを付けている。
2. C++ではforでループ変数を宣言するのが極めて一般的。(::を使っていることからC++と見受けられる)
3. TCHARの配列をLVITEMのメンバpszTextに代入するのにキャストは不要。
  しかもLVITEMのメンバpszTextの型はLPSTRではないのでかえって害。

4. LPARAMへはC++的にはreinterpret_castだろうな。これだけは好みの問題だろうけど。

435 名前:デフォルトの名無しさん :2006/01/17(火) 00:09:49
DLLから呼び出し元の実行ファイル名を取得できる関数ってないでしょうか?

436 名前:デフォルトの名無しさん :2006/01/17(火) 00:21:06
>>435
GetModuleFileName(NULL,

437 名前:デフォルトの名無しさん :2006/01/17(火) 00:40:31
>>432
hwがあさってのウィンドウになってんじゃない?
あと、pItem.cchTextMax = sizeof(Buf)/sizeof(TCHAR); じゃん?
ListView_GetItemText() はどうよ?

438 名前:デフォルトの名無しさん :2006/01/17(火) 00:42:18
リストボックスと間違えてるとか・・・。
それはないかw

439 名前:432 :2006/01/17(火) 00:47:19
すみません。自己解決できました。
違うプロセスのコントロールを参照してました。
いったんWriteProcessMemoryでそのプロセス内に書いてからReadProcessMemory
で読んだらいけました。
バカな質問に付き合ってもらってホントにすみませんでした。

440 名前:デフォルトの名無しさん :2006/01/17(火) 01:06:43
>>436
ありがとうございます。

441 名前:デフォルトの名無しさん :2006/01/17(火) 01:08:00
ここらで誰かまとめてくだらい。
カーネルを介するプロセス間通信とmmap系のものと。

442 名前:デフォルトの名無しさん :2006/01/17(火) 01:12:28
>>441
メモリマップドファイル
VirtualAllocEx
名前付きパイプ
メールスロット
WM_COPYDATA
グローバルアトム
DLLでの共有セグメント
(WM_SETTEXT)

あと、COMもプロセス間通信できているよな。

443 名前:デフォルトの名無しさん :2006/01/17(火) 01:31:27
WM_COPYDATA,WM_SETTEXT,WM_GETTEXTも結局はWindowsが自動的にメモリマップトファイル作ってるだけだし。

444 名前:デフォルトの名無しさん :2006/01/17(火) 01:43:24
過程より界面

445 名前:デフォルトの名無しさん :2006/01/17(火) 06:59:28
ツールバーのデフォルトビットマップで、
STDとVIEW以外でなんか無いでしょうか。
更新、拡大、縮小があればいいなと思うんですが。

446 名前:デフォルトの名無しさん :2006/01/17(火) 09:55:55
>>442
名前無しパイプとソケットも結構使うと思う。

447 名前:デフォルトの名無しさん :2006/01/17(火) 14:28:17
COMのプロセス間通信の部分はRPCを使ってるらしいが、
RPC自体は名前付きパイプ、NetBIOS、Socketで実装されてるとさ。

448 名前:デフォルトの名無しさん :2006/01/17(火) 20:33:54
 こんにちわ。質問をさせて下さい。

 現在ブラウザからActiveXを介してローカルのEXEを起動するシステムを考えています。
 いくつかのサイトを調査しました。その中でハ○ゲームのゲームインストーラの動作
を見ていて、よく分かりません。

 ActiveX としては C:\WINDOWS\Downloaded Program Files\HgPlugiXJP21 Classとして
ダウンロードされています。

 サイトからダウンローダーを起動しているHTMLは以下の通りでした。

  location.href = "hangXme://http://gamestring.hangXme.co.jp:10000/?k22e..なんちゃら";

 試しに【ファイルを指定して実行】で hangXme: と実行してみると、該当EXEが起
動します。これはプロトコルとして登録されているのでしょうか?よく分からないので
すが rundll32.exe msconf.dll とかが関係しているのでしょうか?

 ちなみに 「ファイルの関連付け」としてはレジストリに以下が設定されています。

 HKEY_CLASS_ROOT\HanGXme\Shell\Open\Command

   値:C:\WINDOWS\Downloaded Program Files\HGStartXJP21.exe %1


 で、hangXame: を実行するとHGStartXJP21.exeが起動します。



 この辺の仕組みが分かりません。よろしくご教授下さい.

449 名前:デフォルトの名無しさん :2006/01/17(火) 20:39:46
そんなバックドアまがいなクソプログラム野郎はお帰りください

450 名前:デフォルトの名無しさん :2006/01/17(火) 20:46:58
プロトコルも関連付け可能。

なんでわざわざ伏字なの?

451 名前:デフォルトの名無しさん :2006/01/17(火) 20:51:53
 だけど、ネットゲームの世界ではそのやり方が標準ではないでしょうか?
 べりサインの証明書をつければ問題ないと思うのですが...

 確かにユーザーとしては不安な面もあるような気もしますが、ダウンロード元を信用してActiveXを
起動する訳ですから。
 それが信用できないとなると、一般のソフトウェアも使えないという事になるのでは?

 一般のソフトウェアだって、悪意があればローカルな情報を送信できる訳ですから。

452 名前:デフォルトの名無しさん :2006/01/17(火) 20:54:29
>>450
ありがとうございます。勉強してみます。

伏字にしないとまずいかなぁと思ったものですから...

453 名前:デフォルトの名無しさん :2006/01/17(火) 21:30:11
一般のソフトウェアにそんなバックドアまがいのがあったら大事だバカ

454 名前:デフォルトの名無しさん :2006/01/17(火) 21:31:18
寝糞んのとか、そいつらに悪意が無くても攻撃側に利用されりゃ一緒なんだよ

455 名前:432 :2006/01/17(火) 21:38:43
またハマってしまいました。昨日と同じ要領でリストビューのアイテムを選択状態にしたいのですが、
次のコードだと、SendMessageが失敗を返してきます。
メモリの確保まではいってるんですが、何かアドバイス願います。

LVITEM lvItem;
LRESULT lResult = FALSE;
DWORD dwProcessId = 0;
HANDLE hProcess;
i iItem = 3;

ZeroMemory(&lvItem, sizeof(LVITEM));
lvItem.mask = LVIF_STATE;
lvItem.state = LVIS_SELECTED;
lvItem.iItem = iItem;
lvItem.iSubItem = 0;
lvItem.stateMask = LVIS_SELECTED;

GetWindowThreadProcessId(hListView, &dwProcessId);
hProcess = OpenProcess( PROCESS_VM_OPERATION | PROCESS_VM_READ | PROCESS_VM_WRITE, FALSE, dwProcessId);

if ( hProcess ) {
LVITEM *pvlvi = (LVITEM *)VirtualAllocEx(hProcess, NULL, sizeof(LVITEM), MEM_RESERVE | MEM_COMMIT, PAGE_READWRITE);
::WriteProcessMemory(hProcess, pvlvi, &lvItem, sizeof(LVITEM), NULL);
lResult = (int)::SendMessage(hListView, LVM_SETITEM, 0, (LPARAM)pvlvi);

456 名前:デフォルトの名無しさん :2006/01/17(火) 21:58:19
hListViewがぬるぽだとか?

457 名前:432 :2006/01/17(火) 22:03:11
>>456
書いてなくてすみません。
hListViewはちょっと上で取得してます。
同コントロールのアイテム名は読めてるんで、正しいものが入ってると思います。

458 名前:デフォルトの名無しさん :2006/01/17(火) 22:09:47
>>456
ガッ

459 名前:デフォルトの名無しさん :2006/01/17(火) 23:08:35
>>455
lvItem.pszTextのアドレスが指定されていない

460 名前:デフォルトの名無しさん :2006/01/17(火) 23:14:24
>>455
SendMessageの戻り値をキャストする必要はない。

461 名前:デフォルトの名無しさん :2006/01/17(火) 23:28:36
本題とは関係ないけど
なぜSendMessageの戻り値をintにキャストしてるんだろ

462 名前:デフォルトの名無しさん :2006/01/17(火) 23:33:02
::WriteProcessMemory(〜 のところをVirtualAllocExでぐぐると二番目にでてくるページの
Windows NT/2000 用の VirtualAllocEx() と WriteProcessMemory() / ReadProcessMemory() 〜
のようにやってみたらどうかな

463 名前:432 :2006/01/18(水) 00:34:18
>>462
やっぱりだめみたいです。
リストビューを持つ他のアプリケーションやListView_SetItemState(...も試してみましたが
なぜかstateの変更だけがうまくいきません。削除や色の変更はできるのに。
別のWindowsXPSP2 proを使ってます。もう一台XPSP2 homeのマシーンでもできませんでした。
他のプロセスのstateはいじれないようになってるんでしょうか。

464 名前:462 :2006/01/18(水) 00:49:59
>>462 で書いた「共有メモリを利用するには?」ってページのNT/2000用のサンプルに
LVM_SETITEMするものを付け加えて実行してみたらデスクトップのアイテム全部選択されたけど、
>>432 のOSはなに? きちんとさっきのページのとおりやってみた?

465 名前:462 :2006/01/18(水) 00:50:57
書き忘れた。こっちはWinXPSP2。

466 名前:462 :2006/01/18(水) 00:52:00
あ・・・よく読んでなかった。XPSP2proね。スマソ。

467 名前:462 :2006/01/18(水) 00:59:36
となるとそのListView使ってるアプリがstateの変更をさせないようにしてるのかも。
そのアプリの名前は教えられないの?

468 名前:432 :2006/01/18(水) 01:08:45
>>462
いくつかのアプリで試してみたんですが、
デスクトップ(エクスプローラ)は試してないんで
「共有メモリを利用するには?」のところのをコピペしてやってみます。

469 名前:デフォルトの名無しさん :2006/01/18(水) 01:34:05
下のように変更して動かしているんですが、まったく選択されません。
pLocalShared->mask = LVIF_STATE;
pLocalShared->iSubItem = 0;
pLocalShared->state = LVIS_SELECTED;
pLocalShared->stateMask= LVIS_SELECTED;
...
forループ内
::SendMessage(hSysWnd, LVM_SETITEM, 0, (LPARAM)pSysShared);

470 名前:デフォルトの名無しさん :2006/01/18(水) 01:40:32
追加する部分

pLocalShared->mask = LVIF_STATE;
pLocalShared->iSubItem = 0;
pLocalShared->state = LVIS_SELECTED;
pLocalShared->stateMask = LVIS_SELECTED;

// アイテムの状態をセット
for (int i = 0; i < nCount; i++)
{
pLocalShared->iItem = i;
WriteProcessMemory(hProcess, pSysShared, pLocalShared, dwSize, &dwNumberOfBytes);
SendMessage(hSysWnd, LVM_SETITEM, 0, (LPARAM)pSysShared);
}


471 名前:デフォルトの名無しさん :2006/01/18(水) 01:55:10
ハンゲームプロトコルこうぇーよ。
クソ!一生いかねー。
ドメイン0.0.0.0で登録しといた。
これでよし。だよな?

472 名前:デフォルトの名無しさん :2006/01/18(水) 01:58:42
ハンゲーやばいの??

473 名前:デフォルトの名無しさん :2006/01/18(水) 02:29:48
チョソと関わるとロクなことはない

474 名前:デフォルトの名無しさん :2006/01/18(水) 03:37:27
ミューテックスについてなんですけど
まずCreateMutex関数でオブジェクトを作成しますよね。
この関数の戻り値はオブジェクトに対するハンドルでして、プログラムは明示的にこのハンドルを閉じるには
CloseHandleにより閉じるとあります。

ですが例えばペンやブラシのオブジェクトの場合
DeleteObjectで明示的にオブジェクトを削除しなければいけないのですが
このミューテックス及びセマフォの様なオブジェクトはどういうタイミングでオブジェクトが削除されてるのでしょうか。

あんまし理解してなくてすいませんorz

475 名前:デフォルトの名無しさん :2006/01/18(水) 03:44:23
>>474
CloseHandleすれば、削除されます。
厳密に即時削除されるかは定かではないけれど。

476 名前:デフォルトの名無しさん :2006/01/18(水) 03:57:42
では例えば
まず初回に一意のミューテックスを作成しますよね。
ミューテックスの名称をTEXT("hoge")とでもしておきましょうか
そして後続のプロセスもTEXT("hoge")をCreateMutex関数にて作成しようとした場合
既にTEXT("hoge")のミューテックスオブジェクトは存在するのだから、そのオブジェクトのハンドルが返ってきます。

そしてプロセスが終了する時、又は明示的にCloseHandleを実行するとオブジェクトは破棄されるとありますが、
ミューテックスオブジェクトの所有権を取り合ってるプロセスが複数あるとして、そのうちの一つのプロセスを終了する場合
このミューテックスオブジェクトが破棄されてはまずいですよね
破棄されるならば所有権を取り合ってるプロセスが0個の時であるべきです。

このような時でもWindowsは自動的にオブジェクトを削除するタイミングを図っているのでしょうか

477 名前:デフォルトの名無しさん :2006/01/18(水) 04:00:59
カーネルオブジェクトで具ぐれ

478 名前:デフォルトの名無しさん :2006/01/18(水) 04:07:32
>>476
ヒント:参照カウント

479 名前:デフォルトの名無しさん :2006/01/18(水) 04:25:34
>>477-478
有難うございます。
キーワードにより検索してみます

480 名前:デフォルトの名無しさん :2006/01/18(水) 06:18:15
>469
オーナードローとか使ってて、LVITEMのstateではない
内部のメモリを参照して選択描画をしているとか。

481 名前:デフォルトの名無しさん :2006/01/18(水) 09:06:34
>>471-473

くわしく


482 名前:デフォルトの名無しさん :2006/01/18(水) 10:33:11
http://www.trendmicro.co.jp/vinfo/virusencyclo/default5.asp?VName=BKDR_SURILA.B
検知されるような糞プログラムってわけか?

483 名前:デフォルトの名無しさん :2006/01/18(水) 11:12:48
ウィンドウサイズを変更できない親ウィンドウを作成したいのですが、
どの様にすればいいのでしょうか

対象となるウィンドウは解説サイトで取り上げられるような極普通のカスタムウィンドウです。
全然思いつかないのでそこら辺を取り上げてるサイトがあれば嬉しいのですが・・・

484 名前:デフォルトの名無しさん :2006/01/18(水) 11:23:39
ttp://msdn.microsoft.com/library/en-us/winui/winui/windowsuserinterface/windowing/windows/windowreference/windowmessages/wm_windowposchanging.asp

485 名前:デフォルトの名無しさん :2006/01/18(水) 11:23:49
>>483
ウィンドウを作成するときに、WS_THICKFRAMEを指定しない

WS_OVERLAPPEDWINDOWとかは、
WS_THICKFRAMEを含んでるんで、要注意

486 名前:デフォルトの名無しさん :2006/01/18(水) 11:35:56
WS_OVERLAPPEDのほうが要注意だけどな

487 名前:デフォルトの名無しさん :2006/01/18(水) 11:37:47
>>485
(WS_OVERLAPPEDWINDOW | WS_VISIBLE) ^ WS_THICKFRAMEとした所
見事境界がなくなり、システムメニューの"サイズ変更"も無効になっていました。
ありがとうございます。ちょっと強くなった気分(*´Д`)

>>484
読ませていただきます

488 名前:デフォルトの名無しさん :2006/01/18(水) 11:44:38
何この無能以前のミソッカス>>434と激甘教えたがりやども

489 名前:デフォルトの名無しさん :2006/01/18(水) 11:45:57
>>483>>434と間違えてるヤツが居るスレはここですか?

490 名前:デフォルトの名無しさん :2006/01/18(水) 11:57:58
>>483
WM_GETMINMAXINFO

491 名前:デフォルトの名無しさん :2006/01/18(水) 12:00:37
>>483
WM_GETMANKOINFO

492 名前:デフォルトの名無しさん :2006/01/18(水) 12:54:53
>>489
はい。ここで間違いありませんw

493 名前:デフォルトの名無しさん :2006/01/18(水) 13:38:33
いつからスレタイトルが「ハンゲは糞」になったんですか?
もうやってられません。WinAPIは永久に不滅です。

494 名前:デフォルトの名無しさん :2006/01/18(水) 14:11:38
「永久に不滅」って変だよね
頭痛が痛いみたいなもんで

495 名前:デフォルトの名無しさん :2006/01/18(水) 14:29:07
永遠に不滅

496 名前:デフォルトの名無しさん :2006/01/18(水) 14:30:54
>>494
いいじゃまいか
永遠に不滅です!!って誰か言ってた品

497 名前:デフォルトの名無しさん :2006/01/18(水) 15:05:24
>>493
(^ω^ ):「狐うどんと狐そば、どっち喰う?」
(゚д゚):「おれ、狐そばがいい。。。おれは狐そばがい…」(^ω^#):「一回言えばわかるお」

みたいなイライラを感じずにはいられない

498 名前:デフォルトの名無しさん :2006/01/18(水) 15:08:05
ウィンドウAから、子ウィンドウではないウィンドウBを呼び出します。

ウィンドウAで閉じる動作があった時、
ウィンドウBも閉じたいのでWM_CLOSE、WM_QUIT
などを送った所、閉じられはするのですが、
Ctrl + Alt + Deleteで見て見ると、残骸が残っているようです。

ここら辺に詳しい方がおられましたら、問題点などを教えてください。

499 名前:デフォルトの名無しさん :2006/01/18(水) 15:41:14
>>498
> 問題点などを教えてください。

・調査の仕方
・質問の仕方
に問題ありと思われ。

500 名前:デフォルトの名無しさん :2006/01/18(水) 15:54:52
とあるサイトで、BOOL型とC++のbool型がどちらも真の場合の判定に、

BOOL b1 = func1();
bool b2 = func2();

if ( (b1 && b2) || ! (b1 || b2) ) {
    // 処理
}

とあったんですが、これって
if( b1 && b2 ) {}
ではダメなのかな?と素人目に疑問が浮かびました…
上記の対処法の意図が分かりますでしょうか?


■過去ログ置き場に戻る■ 1- 前250 次250 最新50
DAT2HTML 0.33f Converted.