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


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

Win32API質問箱 Build20
501 名前:名無しさん@そうだ選挙に行こう :04/07/11 12:01
>>499
だから利用可能な仮想メモリによって制限されます、って書いてるやん

502 名前:名無しさん@そうだ選挙に行こう :04/07/11 12:11
じゃあ、シングルスレッドのスタックのサイズを減らすにはどうやるの?

503 名前:名無しさん@そうだ選挙に行こう :04/07/11 12:18
strftimeの様にFILETIME構造体を日付に書式化するAPIって無いですか?
SYSTEMTIMEからの変換でも構わないですが。
ロケール関係でwsprintfで書式化する方法以外を探してます。

504 名前:名無しさん@そうだ選挙に行こう :04/07/11 12:23
FILETIME―FileTimeToSystemTime()→SYSTEMTIME―GetTimeFormat()→(゚д゚)ウマー

505 名前:名無しさん@そうだ選挙に行こう :04/07/11 12:44
>>504
サンクスです。でもコレは時間だけしかフォーマット出来ないのか、、、
でも
GetDateFormat(lpsz)
GetTimeFormat(lpsz + lstrlen(lpsz))
で何とかなりそうなので使わせていただきます。
贅沢言えば一発で出来るのが有ると良いんですけど。

506 名前:名無しさん@そうだ選挙に行こう :04/07/11 12:45
DWORD型変数dwの値を、デバッグ用にfprintfで出力したいのですが、
フォーマットはどのように指定すればいいのでしょう?
DWORDはunsined long のtypedefのようなのですが、

fprintf(stream,"%lu\n",dw);

としてしまって良いのでしょうか?
でもこうするとtypedefしている意味が無いような気がしますし…

507 名前:名無しさん@そうだ選挙に行こう :04/07/11 12:51
気持ちはわかるが、そうするしかない

508 名前:名無しさん@そうだ選挙に行こう :04/07/11 12:59
>>502
なんで>>498のリンク読まないの?


509 名前:名無しさん@そうだ選挙に行こう :04/07/11 13:02
>>506

#define DWF "%lu"
とか定義しておいて、
fprintf(stream,DWF"\n",dw);
ってのはどうよ?
古いコンパイラでは使えないけどナ。

510 名前:名無しさん@そうだ選挙に行こう :04/07/11 13:10
fprintf(stream,"%lu\n",(unsined long)dw);
ってやればいい

511 名前:名無しさん@そうだ選挙に行こう :04/07/11 13:21

   時が止まった


512 名前:名無しさん@そうだ選挙に行こう :04/07/11 18:08
continue;

513 名前:名無しさん@そうだ選挙に行こう :04/07/11 19:03
MessageBox(NULL , TEXT("選挙行ったか?") ,TEXT("質問") , MB_YESNO | MB_ICONQUESTION );

514 名前:名無しさん@そうだ選挙に行こう :04/07/11 19:20
PCに接続されているHDDのリストを取得するには、
どういうAPIを使えばいいんでしょうか?
CドライブとかDドライブとかいう単位ではなく、
「ディスクの管理」で見られる、ディスク0とかディスク1
とかいう物理的な単位でです。

515 名前:名無しさん@そうだ選挙に行こう :04/07/11 19:20
純粋に初心者の質問なんですが、
TEXT("選挙行ったか?") のTEST("")って使わなくてもいいのにみんな使ってるのはなんでですか?

516 名前:名無しさん@そうだ選挙に行こう :04/07/11 19:29
>>515
本に書いてあったから。
コードの流用性が上がるから。
めんどい以外の損がないから。
習慣。
なんとなく。
今日はいい電波ですね。
ぬるぽ。
はらへった。
早く帰りてーなあ。


517 名前:名無しさん@そうだ選挙に行こう :04/07/11 19:31
TEST("")って、アサーションでもしてるの?

518 名前:名無しさん@そうだ選挙に行こう :04/07/11 19:42
>>517
ちょっと前の過去ログを読めば、TESTがTypoだと気付くと思うんだが。


519 名前:名無しさん@そうだ選挙に行こう :04/07/11 19:46
TESTって何をするものですか?
関数ですか?

520 名前:名無しさん@そうだ選挙に行こう :04/07/11 19:51
テストする関数

521 名前:名無しさん@そうだ選挙に行こう :04/07/11 19:58
拡張子の説明(エクスプローラの詳細で表示される「種類」の項目の文字列)を
取得する為以下の様にしました。

SHFILEINFO shfi;
::SHGetFileInfo("hoge.txt", 0, &shfi, sizeof(SHFILEINFO), SHGFI_TYPENAME);

しかし、この場合実際に存在するファイルを指定しなければ取得出来無いようです。
その為、一々tempファイルを作成していますがかなり効率悪そうです。
これを何とかして取得出来る様にならないものでしょうか。

522 名前:名無しさん@そうだ選挙に行こう :04/07/11 20:03
#ifdef UNICODE
#define TEXT(s) L##s
#else
#define TEXT(s) s
#endif
だっけ?

523 名前:名無しさん@そうだ選挙に行こう :04/07/11 20:13
名無しの「そうだ選挙に行こう」はそろそろやめた方がいいよな

524 名前:デフォルトの名無しさん :04/07/11 20:19
>521
当たり前です。
たとえば、hoge.txtという名前のフォルダが存在できる以上、
実物を見ないと種類は決定できないのは明白でしょう。

525 名前:デフォルトの名無しさん :04/07/11 20:21
>>522
ってことは、TEXT(lpszHoge)とかやっちゃいけないはずだよね

526 名前:デフォルトの名無しさん :04/07/11 20:30
char *pszHoge = TEXT("HOGE");
こんなぼけもいる。

527 名前:デフォルトの名無しさん :04/07/11 20:30
>>524
なるほど。しかし拡張子の種類の文字列を取得したいだけなので
実物のファイルがフォルダか否かは関係無いんですよ。
フォルダオプションのファイルの種類なんかどう取得してるんでしょうね。
もっと全然違う取得法が有るんでしょうか?

528 名前:デフォルトの名無しさん :04/07/11 20:48
>>527
HKCR参照汁。


529 名前:デフォルトの名無しさん :04/07/11 20:49
>>527
レジストリを覗けばいいんでない?
http://www.lhut32.com/page5.html
の下のほうみたく。

530 名前:デフォルトの名無しさん :04/07/11 20:49
>>528
だせえじゃん

531 名前:デフォルトの名無しさん :04/07/11 20:50
>>530
脳無しのほうがダサダサ

532 名前:デフォルトの名無しさん :04/07/11 20:51
なに言ってんの?

533 名前:デフォルトの名無しさん :04/07/11 20:54
ださくない方法教えれ

534 名前:デフォルトの名無しさん :04/07/11 20:59
>>521
SHGFI_USEFILEATTRIBUTESを追加で存在しなくても取得できる

535 名前:デフォルトの名無しさん :04/07/11 21:03
つーか、HKCR検索するのが一番早いと思うけどな。

536 名前:514 :04/07/11 21:06
ずっと調べてるんですがまだわからないです。
物理的な単位はデバイスIDってよぶんですかね。

537 名前:521 :04/07/11 21:13
>>534
取得出来ました。
SHGFI_USEFILEATTRIBUTESにそんな効果が有るとは盲点でした。
WEBとかMSDNとか見るとファイルの属性を取得するフラグと書かれてるだけですからね。
MSDNは完全に翻訳して理解してたわけじゃないのでアレですが。

538 名前:デフォルトの名無しさん :04/07/11 22:09
>>536=514
WinNT系ならCreateFile()で指定できなかったっけ? APIのマニュアルよく読んでみ。

539 名前:デフォルトの名無しさん :04/07/11 22:45
>>208
こいつはまだオーストラリアか?

540 名前:デフォルトの名無しさん :04/07/11 22:56
>>538
\\,\PHYSICALDRIVExってやつですね。できそうです。
ありがとうございました。

541 名前:デフォルトの名無しさん :04/07/11 23:29
>>208
マジで行ってるのか?
デスマの休憩ぐらいはいいか

542 名前:4 ◆MwGQyQRf/o :04/07/11 23:46
>>539,541
もう帰ってきたよ。2週間位行ってた。
向こうは冬だったけど、日本は暑いね。

543 名前:デフォルトの名無しさん :04/07/11 23:51
1週間の間違いだろ

544 名前:4 ◆MwGQyQRf/o :04/07/11 23:59
>>543
いや、約2週間。6/28に日本を出発して
次の日にシドニー到着。2chに書き込むの
忘れてて、7/2にメルボルンで書き込み。
んで、7/10に帰ってきた。>>208の書き込みが
ちょっと、まぎらわしかったね。ゴメソ。

545 名前:デフォルトの名無しさん :04/07/12 00:00
なるほど。つーか決めてから三日で行ったんですが。身軽でいいっすね

546 名前:4 ◆MwGQyQRf/o :04/07/12 00:02
間違いメルボルンじゃなくてミルデューラだった。

547 名前:デフォルトの名無しさん :04/07/12 00:14
>>542
冬ってことは12月くらい?

548 名前:4 ◆MwGQyQRf/o :04/07/12 00:37
これ以上、語るとスレ違いとか言われそうなんで、
これで最後にします。スレ汚しスマソ。

>>547
向こうは北半球なので、日本と完全に逆。
場所にもよりますが、(日本の月+6)%12って
感じで…。1月位の気候かな?

>>545
フリーのPGで、しかもあまり仕事しないので(w
3ヶ月位仕事して9ヶ月遊ぶというような生活を
しているので、身軽です。遊ぶ分しか仕事
しないので、貯金は全然無いです…(;´Д`)

549 名前:デフォルトの名無しさん :04/07/12 02:44
CreateWindowのクラス名をBUTTONとして作ったボタンに
SetWindowLongPtrを使ってWS_THICKFRAMEを追加してサイズ変更できる
ボタンを作ったのですがWS_EX_WINDOWEDGEもいっしょにくっついてきてしまいます
SetWindowLongPtr等をつかってWS_EX_WINDOWEDGEを取り除こうとしたのですがだめでした
WS_THICKFRAMEを自前でエミュレートするのは避けたいのですが方法はありますか?

550 名前:デフォルトの名無しさん :04/07/12 08:35
プロシージャーのサブクラス化ぐらいしか思いつかないなぁ

551 名前:デフォルトの名無しさん :04/07/12 13:36
>>548
一年中仕事してるのに貯金が無い人へのあてつけですか?

552 名前:デフォルトの名無しさん :04/07/12 13:49
>>551
一年中仕事しているし貯金もないけど、そこそこの生活を維持できた親も養えているから不満はありません。

553 名前:デフォルトの名無しさん :04/07/12 13:59
>>551
でも、フリーで貯金無いと、「仕事無し→即あぼーん」だからね…。
かなり、綱渡り状態。会社で働いてて貯金無いのとは、
比べ物にならないと思うよ。

554 名前:教えてください :04/07/12 17:22
ドゥオオオ
PlaySound()を使うにせよmciコマンドを使うにせよ、
wavファイルを再生しようとすると外部参照が解決できません
というエラーがいつもでてしまうのですが、
wavファイルを再生するときは何か事前に設定したりしないと
だめなんでしょうか???
VC++6.0PRO使ってるんですが。
なんなんだ一体???ホゲゲ???

555 名前:デフォルトの名無しさん :04/07/12 17:25
#pragma comment(lib, "winmm.lib")

556 名前:デフォルトの名無しさん :04/07/12 17:27
とりあえずエラーメッセージを嫁。


557 名前:デフォルトの名無しさん :04/07/12 17:41
つい最近全く同じ質問を見たきがするんだが。

558 名前:デフォルトの名無しさん :04/07/12 19:39
ドゥオオオ


559 名前:デフォルトの名無しさん :04/07/12 20:09
定番質問は誰かまとめればいいのにと思ったりしないでもない

560 名前:デフォルトの名無しさん :04/07/12 20:11
まとめたってどうせ読まずに質問する奴は後を絶たないと思ったりしないでもない

561 名前:教えてください :04/07/12 20:12
こんなエラーなんですけど

mci2.obj : error LNK2001: 外部シンボル "__imp__mciGetErrorStringA@12" は未解決です
mci2.obj : error LNK2001: 外部シンボル "__imp__mciSendCommandA@16" は未解決です
Debug/mci2.exe : fatal error LNK1120: 外部参照 2 が未解決です。

つい最近の同じ質問も私のやつです。
っていうかPlaySound()で解決しないならmciコマンドでやろうと
思ったんだけどやっぱり同じエラーでてまたしても立ち往生です。
外部参照が未解決ってエラーは何をミスってると出るエラーなのかだけでも教えてください

562 名前:デフォルトの名無しさん :04/07/12 20:14
>>561
必要なlibをリンクしてない

563 名前:デフォルトの名無しさん :04/07/12 20:14
リンクすべきライブラリをリンクしてない。

564 名前:563 :04/07/12 20:15
カブッタ orz

565 名前:教えてください :04/07/12 20:18
あ、なるほど
winmm.libというのがその必要なライブラリってことですな??

566 名前:教えてください :04/07/12 20:19
ちゅーか手元の本にはそういう肝心なことが書いてない・・・
ドゥオオオなんだこの本は!

567 名前:デフォルトの名無しさん :04/07/12 20:27
書名を更科

568 名前:デフォルトの名無しさん :04/07/12 20:31
>>567
Programming Windows

569 名前:デフォルトの名無しさん :04/07/12 20:34
使ってる環境が何か知らんが、
ライブラリのリンク法くらい調べたほうがいい。

570 名前:デフォルトの名無しさん :04/07/12 20:41
おまえは某ランドのコンパイラ使っとけ

571 名前:デフォルトの名無しさん :04/07/12 20:43
見事にスルーされてる可哀相な>>555


572 名前:デフォルトの名無しさん :04/07/12 20:46
555==571

573 名前:デフォルトの名無しさん :04/07/12 20:47
>>571慰めて

574 名前:デフォルトの名無しさん :04/07/12 21:02
>>571
一応>481

575 名前:デフォルトの名無しさん :04/07/12 21:38
メニューバーの文字のフォントサイズを変えられるAPIは何ですか?


576 名前:デフォルトの名無しさん :04/07/12 21:39
RegSetValueEx

577 名前:デフォルトの名無しさん :04/07/12 21:42
StretchBlt

578 名前:デフォルトの名無しさん :04/07/12 22:00
CreateWindowExの第一引数にWS_EX_TOPMOSTを入れると
常に最前面に表示されるようになるのは解ったのですが。
常に一番後ろに表示されるようにするにはどうしたらいいでしょうか?

579 名前:デフォルトの名無しさん :04/07/12 22:04
WS_EX_USHIROMOST

580 名前:デフォルトの名無しさん :04/07/12 22:18
SetWindowPos(hWnd, HWND_BOTTOM, …

581 名前:デフォルトの名無しさん :04/07/12 22:21
"常に"

582 名前:デフォルトの名無しさん :04/07/12 22:21
スレッド作って
for(;;)
{
 SetWindowPos(hWnd, HWND_BOTTOM, …
 Sleep(1);
}

583 名前:デフォルトの名無しさん :04/07/12 22:22
デスクトップ貼り付けってのなかったっけ

584 名前:デフォルトの名無しさん :04/07/12 22:29
常に後ろにかくれるようなウィンドウにするには
http://techtips.belution.com/ja/vc/0014/

585 名前:デフォルトの名無しさん :04/07/12 22:29
>>580
>>582
有難うございます
SetWindowPosまでもたどりついたのですが
スレッドを使うとは知りませんでした。

586 名前:デフォルトの名無しさん :04/07/12 22:30
>>584
最前面の反対は最背面なんですね
URLまで張ってくれて有難うございます

587 名前:デフォルトの名無しさん :04/07/12 22:30
一番後ろって事はデスクトップウインドウより後ろって事だから、
単に非表示にしても変わらないんじゃね?

588 名前:デフォルトの名無しさん :04/07/12 22:31
一番後ろにすると見えなくなっちゃうけどいいのか?

589 名前:デフォルトの名無しさん :04/07/12 22:36
Lunaビジュアルスタイルにするのってmanifestファイルを
作ればいいってのはわかったんだけど、
リソースに含めるのは↓のとおりにやっても反映されません。
http://hp.vector.co.jp/authors/VA015850/delphi/tips/etc13.html

ちなみに使っているのはlcc-win32(バージョン3.8)です。
リソースコンパイラもそれに付属のものです。
なんかアドバイスお願いします。

590 名前:デフォルトの名無しさん :04/07/12 22:38
>>587-588
デスクトップを使わない時に表示できればいいので大丈夫です。

>>584さんのリンクを参考(というかそのまま)に
case WM_WINDOWPOSCHANGING:
((LPWINDOWPOS)lp)->hwndInsertAfter=HWND_BOTTOM;
break;
をウィンドウプロシージャに挿入したら上手くできました。

有難うございました

591 名前:デフォルトの名無しさん :04/07/13 01:57
>>561
つか、コンパイルエラーはAPIの問題じゃなくて環境設定の問題だから、
このスレの前提を満たしていない。背伸びしないでVC初心者スレあたりで聞きなさいな。

592 名前:デフォルトの名無しさん :04/07/13 07:36
以下の様にしてファイルのアイコンを取得していますが
どうもHTMLファイルのアイコンだけが取得出来ません。

SHFILEINFO sfi
SHGetFileInfo("hoge.html", 0, &sfi, sizeof(sfi), SHGFI_SYSICONINDEX | SHGFI_ICON | SHGFI_SMALLICON );
SetIcon(hWnd, sfi.hIcon);

何か足りない処理でも有るのでしょうか。

593 名前:デフォルトの名無しさん :04/07/13 10:27
>>591
コンパイルとリンクの区別がついてない人

594 名前:デフォルトの名無しさん :04/07/13 11:04
>>591もこのスレの前提を満たしていないってオチですか

595 名前:デフォルトの名無しさん :04/07/13 11:37

# Build16の368からコピペ

>質問なのですが、
>
>かなりいろんなサイズのフォント作成して、
>TextOutするアプリを作ってて、Win2kまではフツーに動く。
>
>が、
>XPで動かすとTextOut終わってフォントDeleteしても
>仮想メモリが増え続けて、アプリを終わらせないと
>戻らない。(リソースの明示的リークはないと思う)
>
>こんな現象に出くわした人いますか?

激遅れすですが、
これってアジア版XPの仕様みたいです。

回避法はあんまり無いので、バグとしか
思えませんけど。


596 名前:デフォルトの名無しさん :04/07/13 12:19
>>595
情報ソースは?

597 名前:595 :04/07/13 13:12
>596
開示できるソースは無いです。

598 名前:デフォルトの名無しさん :04/07/13 13:33
タイーホ

599 名前:デフォルトの名無しさん :04/07/13 15:35
脳内ソースじゃ開示できんわな

600 名前:デフォルトの名無しさん :04/07/13 15:41
開示しますた(`・ω・´)
ttp://www.bulldog.co.jp/


601 名前:595 :04/07/13 15:56
>599
そのとおりです。

602 名前:デフォルトの名無しさん :04/07/13 16:48
>>592
HTMLって事はIEかネスケでそ?

603 名前:デフォルトの名無しさん :04/07/13 16:51
ダサい発言禁止

604 名前:デフォルトの名無しさん :04/07/13 16:51
×でそ
○ウホ

605 名前:デフォルトの名無しさん :04/07/13 20:00
質問させてください。
HDCからHBITMAPを作成する事は可能ですか?
方法があれば教えて頂きたいのですが。

606 名前:デフォルトの名無しさん :04/07/13 20:01
CreateCompatibleBitmap

607 名前:デフォルトの名無しさん :04/07/13 20:03
>>605
やりたいことを「ちゃんと」書きなさい

608 名前:THE 初心者 :04/07/13 20:04
プログラミングの本を購入して、その中にプログラムらしき物が書いてあって、これを打ち込んでビルドしてくださいっていうところがあるんですが、どこに打ち込んだらいいんでしょうか?
メモ帳でしょうか?また、打ち込んだプログラムをどうやって起動させるのでしょうか?
教えてくださいおねがいします。
えっと、なんかCプログラミングってかいてあります。だからCなのかな?
すっごく初歩の質問ですみません

609 名前:デフォルトの名無しさん :04/07/13 20:07
>>608
よそへ行きなさい

610 名前:THE 初心者 :04/07/13 20:12
ごめんなさい。かくとこ間違えました

611 名前:605 :04/07/13 20:28
>>607
例えば、ウィンドウのHDCに転送した画像を
HBITMAPとして確保したいのですが、どうやればいいのでうしょうか?

612 名前:デフォルトの名無しさん :04/07/13 20:32
1.CreateCompatibleDC
2.CreateCompatibleBitmap
3.SelectObject
4.BitBlt


613 名前:デフォルトの名無しさん :04/07/13 20:48
>>612
この場合、CreateCompatibleBitmap()で作成したHBITMAPから
生のBit配列は取得可能ですか?

614 名前:デフォルトの名無しさん :04/07/13 20:48
CreateDIBSection

615 名前:デフォルトの名無しさん :04/07/13 20:51
GetBitmapBits
まあ、こんなもの使っても嬉しくはないわけだが、
HBITMAPから生のって言ったらこれだろ。

616 名前:デフォルトの名無しさん :04/07/13 20:52
中じゃダメって言ったのにー!

617 名前:605 :04/07/13 20:54
分かりました。あとは自分で調べてみます。
ありがとうございました。

618 名前:デフォルトの名無しさん :04/07/13 21:03
つーか、ビットマップに直接アクセスしたきゃ最初からDIBSection使えば。

619 名前:デフォルトの名無しさん :04/07/13 22:05
ビットマップ操作はAPI関係の質問としては定番中の定番だから、
google先生に聞いたほうがまとまったいい答えが見つかるよ。

620 名前:デフォルトの名無しさん :04/07/13 22:11
目的を明確にせずに手段ばかり聞こうとするから、役にも立たないDDB関数なんぞ
教えなきゃいけなくなっちゃうんだ罠。

621 名前:デフォルトの名無しさん :04/07/13 22:19
まぁgoogleに聞く前にプログラミングWindows読めばビットマップ関連の基本はばっちりなんだが

622 名前:デフォルトの名無しさん :04/07/13 22:24
どうせ読むなら「Programming Windows」にしようぜ。


623 名前:デフォルトの名無しさん :04/07/13 23:06
  大  改  定

624 名前:589 :04/07/13 23:11
bccのリソースコンパイラを使ったらできました。
なんでだろ〜。

625 名前:デフォルトの名無しさん :04/07/14 01:00
そういや旧版のプログラミングWindows95で、2章にGDIの解説まとめてやってて、
最初に読んだ時なかなかわからなくてかなりへこんだもんだ。
普通ならこれで一冊の本になるぞ、って

626 名前:デフォルトの名無しさん :04/07/14 02:13
Win95で256色主流だった頃は、DDB/DIBに加えてパレットも必須だったからねえ。
もーあの時代には戻りたくねえ・・・。

627 名前:デフォルトの名無しさん :04/07/14 02:16
256色以下だとパレット保持してるからね。


628 名前:デフォルトの名無しさん :04/07/14 02:24
256色でパレットのないドライバってのもあったけどね

629 名前:デフォルトの名無しさん :04/07/14 15:22
MSのCryptoAPIメーリングリスト、最近メールが配信されてこないなあ、
と思っていたのですが、調べ物をしようとしたところ、以下のURLで
アーカイブの閲覧も検索もできなくなっていることにことに気づきました。

http://discuss.microsoft.com/archives/cryptoapi.html

どこかに引越ししたのでしょうか? それとも廃止?
アーカイブはどこかで公開していないのでしょうか?
ちょう有用な情報満載だったので、何とかアーカイブをゲットしたいのですが、
もうだめぽげでしょうか...?

630 名前:デフォルトの名無しさん :04/07/14 15:45
>>629
今アクセスしたら普通に見れましたよ。

631 名前:デフォルトの名無しさん :04/07/14 15:50
だめぽげです。

632 名前:デフォルトの名無しさん :04/07/14 16:06
>>630
スタートページと検索フォームは見れるのですが、
各アーカイブをクリックすると"The archive files could not be accessed..."と表示され、
検索実行すると0件になってしまいます...

633 名前:デフォルトの名無しさん :04/07/14 16:08
>>631
だめぽげですか。_| ̄|○

634 名前:デフォルトの名無しさん :04/07/14 16:20
>>633
今年の2月第1週以降はリンクすらない事から鑑みるに、
その辺りで終わったんじゃないか?

直接MicrosoftのWebMasterに問い合わせてみては?


635 名前:629 :04/07/14 16:27
まったく気づいていなかったのですが、最後のほうに配信されていたメールで
以下のようなアナウンスがあったのに気づきました。俺って間抜け。

Microsoft will discontinue the CryptoAPI, CAPICOM, Smartcard SDK and
Smartcard DDK mailing lists on Feburary 1, 2004. Support for these areas
will contine on the microsoft.public.platformsdk.security newsgroup.

上記newsgroupでは見慣れたGulu達があまり現れていないみたい。このメールの後に
別メーリングリストを作ろうという動きもあって、今はそっちで活躍しているのかも。
ただ、今までのCryptoAPIメーリングリストはMSの技術者の人が出入りしている点も
魅力だったんだよなあ。

そんなわけで、お騒がせしました。m(_ _)m

636 名前:デフォルトの名無しさん :04/07/14 16:30
>>634
インシデント取られるぞ:P

637 名前:デフォルトの名無しさん :04/07/14 16:30
DVDドライブに入っているメディアがCDかDVDかを調べるAPIわかりませんか?

638 名前:デフォルトの名無しさん :04/07/14 16:34
>>636
WebPageに対する問い合わせでもインシデント取られるのけ?

とマジレスしてみる:-)


639 名前:デフォルトの名無しさん :04/07/14 20:03
タスクバー(notタスクトレイ)に並んでる順にウィンドウハンドル列挙ってできるんでしょうか?
再配置ならShowWindowで一旦全部消して好きな順にSW_SHOWするってサンプルは見つかったんですが……。
現在の並びを取得するってのが見つからなくて。

640 名前:デフォルトの名無しさん :04/07/14 21:47
639です。
ITaskbarListってのを調べてみましたが、
これもAdd/Delete/Activateしかない模様……。

641 名前:デフォルトの名無しさん :04/07/14 22:04
強いて言うならウィンドウが最後に表示された順だろうが、Explorer落としたりするとかなり好き勝手な順番に変わるからあんま意味ないと思うが。

642 名前:デフォルトの名無しさん :04/07/14 22:15
AllocConsole()で作ったコンソールウィンドウをシステムメニューから閉じると、
GUIのメインウィンドウまで閉じて、プロセスが終了してしまうのを防止したいのですが。
どなたか、方法を御存知ないでしょうか。


643 名前:デフォルトの名無しさん :04/07/14 22:23
>>642
勘だけど、SetConsoleCtrlHandlerかSetConsoleModeでどうだろう?

644 名前:デフォルトの名無しさん :04/07/14 22:35
>>643

BOOL WINAPI HandlerRoutine(DWORD dwCtrlType)
{
if(dwCtrlType == CTRL_CLOSE_EVENT)
{
FreeConsole();
}

return 0;
}

SetConsoleCtrlHandler(HandlerRoutine, true);

てな具合にやってみたのですが、やはりプロセスが終了してしまいます。

SetConsoleMode は Ctrl+C の無効化には使えましたが、この用途にも使えるなら、
具体的にどう使うのでしょう?
サンプルコードは無いでしょうか。

645 名前:デフォルトの名無しさん :04/07/14 22:45
CとAPIでオセロを作っています。棋譜みたいなのをlogというファイルに
書き込んでいくのですが、これを保存したいんです。
普通のアプリで保存とかを選ぶと保存の画面がでてきますよね?ファイル名とか
ディレクトリとか選べる画面。あれを表示してオセロのlogを保存するには
どうしたらいいのでしょうか?

646 名前:デフォルトの名無しさん :04/07/14 22:47
GetSaveFileName()でぐぐりましょう

647 名前:デフォルトの名無しさん :04/07/14 22:59
>>644
FreeConsoleしてもいいんなら最初からさっさとFreeConsoleしちゃえば?

648 名前:デフォルトの名無しさん :04/07/14 23:00
>>644
ヘルプくらい読めよ。

HandlerRoutine

各コンソールプロセスは、HandlerRoutine 関数の独自のリストを持っています。
最初、このリストには ExitProcess 関数を呼び出す既定のハンドラ関数だけが含まれています。
・・・
コンソール信号を処理するときは、TRUE を返してください。
FALSE を返すと、このプロセスのハンドラのリストに登録されている次のハンドラ関数が使われます。

TRUEの値は何だよ?FALSEの値は何だよ?

649 名前:デフォルトの名無しさん :04/07/14 23:03
644じゃないけど、CにBOOL型は要らないとよく思う。紛らわしいだけで利益がない。

650 名前:デフォルトの名無しさん :04/07/14 23:10
Cにあるのは_Bool型だが?

651 名前:645 :04/07/14 23:12
>>646
ファイルを保存ダイアログボックスの表示は分かったんですけど、
どのファイル(この場合オセロのlogの事です)を保存するってのは
どこで指定してるんですか?


652 名前:デフォルトの名無しさん :04/07/14 23:14
>>648
失礼、ミスりました。
でも結果は同じ。
やはり終了します。
ちなみに、FreeConsole をコメントアウトすると、
ダイアログが現れ、当然「このプログラムを終了できません」となり、コンソールウィンドウのみ閉じること
はできません。

BOOL WINAPI HandlerRoutine(DWORD dwCtrlType)
{
if(dwCtrlType == CTRL_CLOSE_EVENT)
{
FreeConsole();
}

return 1;
}

SetConsoleCtrlHandler(HandlerRoutine, true);

>>647
システムメニューから閉じたいのです。
あるいは、タイトルバーの×印のボタンから。

653 名前:639 :04/07/14 23:41
>>641
> 強いて言うならウィンドウが最後に表示された順だろうが、
やっぱりないですかね……。
Win+Tabでタスクバーの並び順にタスクバーボタンのフォーカスが移動するから
なんかあるんじゃないかと思ったんですが。

> Explorer落としたりするとかなり好き勝手な順番に変わるからあんま意味ないと思うが。
だからこそ並び順で取得したい訳なんですけど……。

クラス名順でソートとかして使いやすく再配置が実際的な解なのかな。

654 名前:デフォルトの名無しさん :04/07/14 23:59
日本語リファレンスには、

SetConsoleCtrlHandlerで各パラメータにNULLおよびTRUEを指定して呼び出すと、
呼び出し側プロセスがCtrl+Cシグナルを無視するようになる。

と書いてあるけど。

655 名前:654 :04/07/15 00:03
あ、Ctrl+Cじゃないのね、失礼。

656 名前:デフォルトの名無しさん :04/07/15 00:09
>>653
Win+Tabはタスクバーを管理してるエクスプローラ自体が反応するから、
内部的には持ってるんだろうけどね。

ということで、タブコントロールから取得するというのはどうでしょう。

657 名前:デフォルトの名無しさん :04/07/15 00:29
>>649
スレ違い。こちらへどうぞ。
http://pc5.2ch.net/test/read.cgi/tech/1085915001/

658 名前:デフォルトの名無しさん :04/07/15 01:02
>>645
何がしたいの? ファイルへの出力はGetSaveFileName()じゃできませんが。

659 名前:デフォルトの名無しさん :04/07/15 03:10
>>639
某スレでそこらへんの話題が出たのでちょうど調べてた.
w2kでしか確認してないけど,TCITEMのlParamにウィンドウハンドルが入ってる.
xpはどうなのかな?

660 名前:デフォルトの名無しさん :04/07/15 04:25
下のようなリソースがあるんですが、バージョン情報を取得する定石で
VerQueryValueを使って文字コードを\VarFileInfo\Translationから取得
すると、800004B0になってしまって、\StringFileInfo\040904E4に
アクセスすることができません。どうすればよいのでしょうか・・・

1 VERSIONINFO
FILEVERSION 5,0,128,0
PRODUCTVERSION 5,2,6,0
FILEOS 0x4
FILETYPE 0x1
{
BLOCK "StringFileInfo"
{
  BLOCK "040904E4"
  {
    VALUE "CompanyName", "Adobe Systems, Incorporated"
    VALUE "FileDescription", "Adobe Photoshop"
    VALUE "FileVersion", "5.0.2"
    (省略)
  }
}

BLOCK "VarFileInfo"
{
  VALUE "Translation", 0x8000 0x04B0
}
}



661 名前:デフォルトの名無しさん :04/07/15 05:03
643だけどごめん、無理かも。
素直に別コンソールプロセス立ち上げて名前なしパイプでつなぐとか。

662 名前:639 :04/07/15 08:11
>>659
XPですが、タスクバーのが
Shell_TrayWnd : ReBarWindow32 : MSTaskSwWClass : ToolbarWindow32
とToolbarに変更されているため、TBBUTTON.dwDataまたはIBBUTTONINFO.lParamがそれっぽいです。

……が、なぜか言うことを聞いてくれません(涙
まずボタン総数を取得すると倍の数値が返ってくるし。
正直Cそのものにあまり慣れてないので、下のに何か胡乱なところがあるんでしょうか?

void Hoge(HWND toolbar) {
   int c, i;
   TBBUTTON b;
   c = SendMessage(toolbar, TB_BUTTONCOUNT, 0, 0);
   for (i = 0; i < c; i++) {
      if (SendMessage(toolbar, TB_GETBUTTON, i, (LPARAM)&b)) {
         printf("%2d : %x\n", i, b.dwData);
      }
   }
}

663 名前:デフォルトの名無しさん :04/07/15 14:10
>>662
タスクバー(エクスプローラ)は別プロセスなのでTB_GETBUTTONで使う
TBBUTONは共有メモリーを使わないとダメ.

664 名前:教えてください :04/07/15 14:46
mciで動画を再生したいんだけど、
動画のためにわざわざ別のウィンドウを用意したりしたくなくて、
ウィンドウの隅っこのほうで動画が動くようにしたい。
んで、動画をウィンドウのどこらへんの位置で再生するかを指定
したりする方法ってないですか?

665 名前:デフォルトの名無しさん :04/07/15 14:50
ない

666 名前:教えてください :04/07/15 15:20
ええっマジですか????????
一つのウィンドウの中で動画を再生する領域とボタンとかコントロールが
ならんでる領域がわかれているようなウィンドウって
なにか別の方法でないと作れませんか???

667 名前:教えてください :04/07/15 15:26
もしやひとつのウィンドウにみえるけど実は中に子ウィンドウを
埋め込んでつくるってことなのかな???

668 名前:デフォルトの名無しさん :04/07/15 15:35
>>664
WINDOWで再生するウィンドウハンドルを指定
PUTで位置・サイズ指定
…だったっけ?

669 名前:デフォルトの名無しさん :04/07/15 16:23
>>667
そう。その「ボタンとかコントロール」も子ウィンドウなわけだし。

670 名前:デフォルトの名無しさん :04/07/15 16:27
>>668
それでもいいけど、リドローその他の問題考えると MCIWndCreate で親ウィンドウを
指定して、スタイルに WS_CHILD 付けとくほうが良くない?


671 名前:645 :04/07/15 17:40
>>658
オセロを作っているんですがゲーム中に打った手をlogに書き込んでいくのですが、
そのlogを保存したいんです。
保存ダイアログボックスを表示させてその棋譜を保存したいんです。

672 名前:デフォルトの名無しさん :04/07/15 17:51
>>671
OPENFILENAME構造体のメンバ調べた?
ファイル名やフルパス取得できるでしょ。

そのlogの出力処理は自分で書かなきゃダメだよ。

673 名前:645 :04/07/15 18:38
>>672
開くの場合開きたいファイル名やフルパスを取得できるからその後の処理はできるなぁ
となんとなく分かったのですが、保存の場合がいまいち分かりません・・・。
例えばオセロというフォルダにオセロ本体とlogというファイルがあった場合、
どの関数でlogを見つけてその中身を別名保存できるのでしょうか・・・。

674 名前:デフォルトの名無しさん :04/07/15 18:53
>>673
うーん、もう少し頭の中を整理したほうが良いと思うよ。

675 名前:デフォルトの名無しさん :04/07/15 18:53
取り敢えずオセロの棋譜から離れろ。

データをファイルに保存する処理で必要な条件をきちんと挙げてみな。
取り敢えず、

(1)メモリ上にあるデータをファイルに出力したい。
(2)フォルダとファイル名は保存ダイアログを表示して選択&入力したい。
(3)フォルダに同名のファイルが既にある場合は別名保存したい。

と言う事か?なんか微妙に違ってそうな気もするんだが…


676 名前:デフォルトの名無しさん :04/07/15 19:05
コンソールアプリケーションの出力をウインドーズのウインドーにする方法教えてください
16ビットと32ビットの両方のcomファイルとかも表示したいです
出来ないと思うけどコンソールアプリケーションを起動したときにコンソールを出さないでできたら
またそのやり方もおしえてください

677 名前:デフォルトの名無しさん :04/07/15 19:12
まともなオセロが作れるんならファイル保存くらい簡単だろうに・・
まあオセロの方がまともじゃ(

678 名前:デフォルトの名無しさん :04/07/15 19:15
単に保存ダイアログの出し方がわからんのじゃないか?

679 名前:デフォルトの名無しさん :04/07/15 19:20
>>678
いや、それは>>646が書いてる。

>>673
もしかして、オセロのexeのパスを知りたい?
なら、GetModuleFileName()。


680 名前:デフォルトの名無しさん :04/07/15 19:27
Win32スレっぽくまとめると、

・オセロのプログラムのコード内で、実行ファイル(たぶん EXE?) のパスを知りたいときには
 GetModuleFileName(NULL) を使う。
・実行ファイルと同じ場所にあるファイルのパスを得るには、
 PathRemoveFileSpec で最後の「ファイル名」を取り除いてディレクトリのパスを得て、
 PathAppend でそのファイルの名前をくっつける。

例えば既に実行ファイルと同じディレクトリに "log" という名前のファイルがあったとき、
それを lpszDstPath にコピーする関数は、

void CopyLogFile(LPCTSTR lpszDstPath)
{
 TCHAR rgszLogFile[MAX_PATH];
 GetModuleFileName(NULL, rgszLogFile MAX_PATH);
 PathRemoveFileSpec(rgszLogFile);
 PathAppend(rgszLogFile, "log");
 CopyFile(rgszLogFile, lpszDstPath, FALSE);
}

681 名前:デフォルトの名無しさん :04/07/15 19:27
>>679
>>645を見るとダイアログを表示してファイルを指定したがってるようだが・・・

682 名前:デフォルトの名無しさん :04/07/15 19:43
でもlogって名前で決め打ちなんだよね。
ダイアログ開く必要ないじゃん。

683 名前:デフォルトの名無しさん :04/07/15 19:50
マルチバイトとUNICODEを切り替えるのに使うマクロは

標準ライブラリは _UNICODE
WindowsSDKでは UNICODE

であっていますか?

684 名前:デフォルトの名無しさん :04/07/15 19:54
標準ライブラリってのがC/C++のことなら、一般的にいって知るかヴォケ

685 名前:デフォルトの名無しさん :04/07/15 20:41
>>676
>コンソールアプリケーションの出力をウインドーズのウインドーにする方法教えてください
GUIアプリケーションとして作り直せ。

>16ビットと32ビットの両方のcomファイルとかも表示したいです
意味がわからん。既存のプログラムの表示方法を変更するという意味なら、
そのプログラムをそのように作り直せ。

>出来ないと思うけどコンソールアプリケーションを起動したときにコンソールを出さないでできたら
>またそのやり方もおしえてください
起動後にFreeConsoleでコンソールを切り離せ。


686 名前:デフォルトの名無しさん :04/07/15 20:59
>>676
パイプを作ってそこへ標準出力(必要なら標準エラーも)をリダイレクトさせ、
CreateProcessで対象のコンソールプログラムを起動させる。
(この時に標準出力を継承させる。コンソールを表示させない指定もここでできる)
あとは随時パイプから読み出した文字をウィンドウへ書き出す。

687 名前:デフォルトの名無しさん :04/07/15 21:01
>>683
含みを持たせすぎる問いには答えにくい。

UNICODEマクロは、WinAPIのA(ANSI)系とW(WideChar)系を切り替えるマクロ。

_UNICODEマクロは、汎用テキストマッピングで使用する文字の種類を切り替えるマクロ。
これはVC付属のCライブラリの他、MFC等でも使用される。

688 名前:683 :04/07/15 21:37
>>687
ああなるほど。
TCHAR等とAPIのA系W系の切り替えは
UNICODEマクロで同時に切り替わるものだと思ってました。


689 名前:デフォルトの名無しさん :04/07/15 21:42
↓こういうのをWin32APIで作りたいんですが
ttp://www.aajp.jp/exev5/speech.swf

adobe reader や narrator.exe みたいに、指定した文字列を
読み上げさせるにはどうすればいいのでしょうか?

690 名前:デフォルトの名無しさん :04/07/15 21:48
>688
TCHARとA/Wは同時切り替えしないとコンパイルエラーになるだろう。
ぶっちゃけ、古いコンパイラとの互換性維持のためにあるんじゃねーの?

691 名前:デフォルトの名無しさん :04/07/15 21:54
>>689
この辺?
http://www.microsoft.com/speech/download/sdk51/

692 名前:デフォルトの名無しさん :04/07/15 21:54
>>690
互換性維持のくだりは意味不明だけど、両方セットして切り替えるのが普通だろうね。
実際に切り替えるには、そのマクロ以外にもあれこれ変更する必要があるから、
けっこう面倒くさかった記憶がある(スタートアップ関数も変更したな、確か)。

693 名前:690 :04/07/15 22:04
>692
_inlineと__inlineとか、_asmと__asmとか、
その辺を想像して書いたんだが…。

694 名前:デフォルトの名無しさん :04/07/15 22:06
>>688
winnt.hのTCHARとかはUNICODEで切り替わる。
_UNICODEで切り替わるのはtchar.hの_TCHAR類。


695 名前:689 :04/07/15 22:06
>>691
おお!きっとその辺です。
ありがとうございます。


696 名前:デフォルトの名無しさん :04/07/15 22:23
>>685
方法を知らないなら、くだらん回答しなければいいのに

697 名前:デフォルトの名無しさん :04/07/15 22:43
>>696
なんとまあパターンどおりの厨房レスなのか。
自分の質問が質問の体を為してないことぐらい気づけよ。
コンソールベースのテストプログラムから脱却してウィンドウを作ってみたいのか、
古いDOSベースのプログラムをWindowsに移植でもしたいのか、意図がはっきりしてないんだよ。サトリ募集中ですか?

字面どおりに解釈するならパイプでも使ってそのプログラムを起動し、出力をとってからDrawStringでウィンドウに出力結果を描画とか。

これで後で「釣れた」とか抜かしやがったらふざけるのも大概にしろって感じだな。

698 名前:デフォルトの名無しさん :04/07/15 22:45
最初から意味が分からんとだけ書けばいいものを。

699 名前:デフォルトの名無しさん :04/07/15 22:46
ツレタ!!

700 名前:デフォルトの名無しさん :04/07/15 22:50
見事に釣られたところで次の質問者ドゾー↓

701 名前:デフォルトの名無しさん :04/07/15 22:50
>>697 ( ´,_ゝ`)プッ・・

上級者ぶって偉そうにしたかっただけなのね。
素直にパイプを使うと答えればいいものを。

702 名前:デフォルトの名無しさん :04/07/15 22:52
CreateCompatibleDCでつくったDCについてる
ビットマップはストックオブジェクトです。

703 名前:ほんたま :04/07/16 00:07
おみゃ〜らよ、おみゃ〜らさーん♪
おりはよ、「Slim de Can」を使ってやっとメインウィンドウにコントロールをつけるサンプルの作成に成功したぜ。わはは♪
「Slim de Can」ってすげ〜な〜、イベントドリブンプログラムが作成できるとこまでついに進化したよ。
おりはもう神だね♪どうよ?

http://hp.vector.co.jp/authors/VA015412/


704 名前:645 :04/07/16 00:12
えっと分かりにくくてすみません・・。
オセロの盤面はboard[8][8]の配列を作ってそこに黒、白を書き込んでいく。
それと同時に1手目はd5黒、2手目、・・・・という具合にlogファイルに書き込む。
このlogがなぜあるかというと戻りや棋譜を読むことによってあとで感想戦みたいな
物を実装するためにあります。このlogは常に1個しかなく、上書きされていきます。
保存しておきたい対戦の場合はこのlogをダイアログを表示させ、別名にて保存します。
今分からないのはダイアログを表示させ、保存を押した場合何が保存されるのかが
分からないって事です。

680さんの方法のPathRemoveFileSpecとPathAppendでできるのかな・・・

705 名前:デフォルトの名無しさん :04/07/16 00:17
>>704
> 今分からないのはダイアログを表示させ、保存を押した場合何が保存されるのかが
> 分からないって事です。

だからね、保存を押した時に何が保存されるのかは、君が書くコード次第なの。

>>646を実行して、>>672を調べたら、ファイル名とフルパスが取得できるから、
logってファイルをリネームすればいいんじゃねぇの?

と、君以外のみんなが思っている筈なんだが。

706 名前:デフォルトの名無しさん :04/07/16 00:17
開くダイアログも保存ダイアログもファイル名を得るだけだろ
なんで前者は分かるくせに後者は分からんのよ?

707 名前:645 :04/07/16 00:31
>だからね、保存を押した時に何が保存されるのかは、君が書くコード次第なの
そのコードが知りたかったんです・・・。

ファイルを開くの場合はファイル選択→開く→ファイル名、フルパス取得。
ファイル保存の場合はPathRemoveFileSpecとPathAppend→ファイル名、場所→保存
でいいんですか?

708 名前:デフォルトの名無しさん :04/07/16 00:37
久々にすごいのが現れたな・・・

そもそもファイル入出力はやったことがあるのだろうか。

709 名前:デフォルトの名無しさん :04/07/16 00:39
>>707
1.GetSaveFileName()を実行する。
2.保存ファイルを指定するダイアログが出る。
3.ユーザーがファイル名を入力する。
4.1で引数として渡したOPENFILENAME構造体からファイル名を取得する。
5.そのファイルに保存する処理は君が書く。

オセロのログを出力するAPIなんてないから、
出力したいフォーマットに合わせて自分でコード書くんだよ。


710 名前:デフォルトの名無しさん :04/07/16 00:41
と言うか、”Log”ってファイルを出力するコードは自分で書いたんだろ?
なんで別名保存する事に躓くんだよ(´・ω・`)

まさかとは思うが、”Log”ってファイルを出力するコードを他人が書いてる
ってオチじゃねぇだろうな?

711 名前:645 :04/07/16 00:42
今までAPIをやった事がないんですよ。演習で初めてAPIを使う事になり、
猫でもわかるを買ってよんだんですがいまいち・・・。

いろいろ教えてもらいありがとうございました。
教えてもらったので一度プログラムに組み込んでみます。

712 名前:デフォルトの名無しさん :04/07/16 00:44
つか、API以前の問題だと思うなぁ。

そうは思わないか?>>713

713 名前:645 :04/07/16 00:46
>>710
えーっとLogってのはオセロを起動すると勝手に作られます。
別名で保存するってのは将棋とかと同じく棋譜を集めるためと、
保存した場所からスタートできるようにするためです。


714 名前:デフォルトの名無しさん :04/07/16 00:53
>>713
そのLogってのには一手打つ毎に保存されてんの?
もしそうなら、ユーザーに保存ファイル名入力させて
Logファイルをコピーすればいいのでは?

「猫でも・・・」ならネットのSDK編の第329章でも参考にしてみ


715 名前:デフォルトの名無しさん :04/07/16 00:57
>>713で思考の呪いに掛かってしまった…

ムネン アトヲ タノム

orz



716 名前:645 :04/07/16 00:57
>>714
そうです1手目から60手目まで保存されます。
これを使って感想試合や戻りなどできるようになります。

>もしそうなら、ユーザーに保存ファイル名入力させて
>Logファイルをコピーすればいいのでは?

これができればいいんです。 保存ウィンドウの表示→ファイル名、場所記入→
保存をしてLog1みたいな感じで元のLogがコピーできれば作れればOKです。


717 名前:デフォルトの名無しさん :04/07/16 01:00
情報隠しすぎだねぇ。他人が書いたものと自分が書かなきゃいけないものを
きちんと提示しないから話がややこしくなると言うのに。

718 名前:デフォルトの名無しさん :04/07/16 01:09
オセロってのはあれか、既にオセロのソフトが存在しているのか?

で、そのソフトがLogってファイルを作るんだけど、そのファイルを
別名保存するアプリを作りたいって話なのか?



単に別フォルダにでもコピーすればいいやん、って気がしてきた…


719 名前:デフォルトの名無しさん :04/07/16 01:10
俺は答える気なくした。他のひとよろ。

720 名前:デフォルトの名無しさん :04/07/16 01:11
俺はもう寝るぽ(´・ω・`)


721 名前:デフォルトの名無しさん :04/07/16 01:15
>>645は最高の釣り師だな。
よくやった。

722 名前:デフォルトの名無しさん :04/07/16 01:17
>>721
一昨日のVB6スレと言い今日といい、最近は疲れる奴が多いな…

夏だからか?


723 名前:645 :04/07/16 01:22
いろいろすみませんでした・・・。

これで最後にします。

C書いたオセロではDOSでしか動きません。それをAPIを使って普通に
windowsのアプリに変換というか作るというか。
Cならif文でも使ってLogのコピーをリネームしてすぐ作れますが、
APIを使った時には保存ボタンをクリックしたらどうなるとかそういうのが
分からず困っていたという話でした。

714さんが教えてくれた所は結構参考になりそうなので助かりました。

不愉快になられた方々すみませんでした。またこんな自分に付き合って
くださった方々ありがとうございました。




724 名前:デフォルトの名無しさん :04/07/16 01:49
mallocの変わりにGlobalAllocを使うメリットってなんかありますか?
(クリップボードとかとは全然関係ない単純なメモリ確保です。)

担当者になんで?って聞いたらmallocより効率がいいと
えらい人にいわれたらしい。GlobalReAllocとかも使ってる。

MSDNには低速だから使うなって書いてあるし。

725 名前:デフォルトの名無しさん :04/07/16 02:08
強いていうならC/C++で確保したメモリをDelphiで開放するようなことができる。

726 名前:デフォルトの名無しさん :04/07/16 02:12
>>724
ヒープメモリってわかってる???

727 名前:デフォルトの名無しさん :04/07/16 02:17
APPのコードをライブラリ化。
長文ソース簡略化で作業時間、効率を削減。

基本的なWin32システムを支援します。

最強のACライブラリー
ttp://www.geocities.jp/osoftjp

728 名前:デフォルトの名無しさん :04/07/16 02:55
そこでHeapAlloc()ですよ

729 名前:デフォルトの名無しさん :04/07/16 04:17
WM_MOVINGとWM_SIZINGが発生する要因はSendMessage系で呼び出さない限り
ユーザーのマウス操作によるものだけと断定して問題ないでしょうか?

730 名前:デフォルトの名無しさん :04/07/16 04:25
ALT+SPACE+S→カーソルキーの存在は無視か?

731 名前:デフォルトの名無しさん :04/07/16 04:44
MFCフレームワークで、CWinApp, CMainFrm, CChildView という派生クラスを使う事を強要されますけど、どこにどういう機能を置けばいいのかいまいちピントきません。
リアルタイムでレンダリングするスクリーン、キー入力、パラメータ入力用のダイアログがあるので,
CWinApp -> OnIdle() レンダラーアップデート, CChildViewへの描画。
CChildView -> キー、マウス入力
CDialog -> CMainFrm::hoge->SendMessage(...) で入力パラメータを送る。
CMainFrm -> SendMessage(...)でクラス間のデータ受け渡し。
っていう感じでやっているんですが、クラスが保持している別クラスインスタンスへのポインタがprotectedになっていたりするので、SendMessage()のバケツリレーみたいになったりして、2度手間3度手間が多くて疲れます。
「プロはこうやる」っていうのがあったら教えてください。


732 名前:デフォルトの名無しさん :04/07/16 05:04
その前に良い事を教えてやる。

 ス レ 違 い だ


733 名前:729 :04/07/16 05:47
>>730
そんな機能あったですか、、、
やりたいことはサイズ変更中であれ位置変更中であれマウスが動いてたら
WM_MOUSEMOVEが発生して欲しいのですが発生してくれません
正確にいうとspy++上では発生してることになっているのですがWndProc内のswitch文で捕捉されません
spy++のメッセージ コードはPとなっていて、ヘルプによると
PostMessage 関数によってキューにポストされました。
とあるのですがPostMessageで発行されたメッセージはWndProc内では捕捉されないのでしょうか?


734 名前:731 :04/07/16 08:13
>>732
ほんとだ、Win32じゃん。誤爆しました。MFCスレに落としてきます。


735 名前:デフォルトの名無しさん :04/07/16 10:56
>>723
おまいさんの最大のミスは

>C書いたオセロではDOSでしか動きません。それをAPIを使って普通に

を最初に言わなかった事だ。お陰で大勢の膨大な時間が
無駄に失われてしまった…

736 名前:デフォルトの名無しさん :04/07/16 11:07
DLLから全体をフックするのはフックプロシジャーもDLLに無いとできませんか?

737 名前:デフォルトの名無しさん :04/07/16 11:43
USBメモリのシリアル番号を取得するAPIを教えて

738 名前:デフォルトの名無しさん :04/07/16 11:55
>>737
getDeviceID

739 名前:デフォルトの名無しさん :04/07/16 12:13
>>737
デバイスデスクリプタを取得して、
iSerialNumberからストリングデスクリプタのインデックスを計算

iSerialNumberを元にストリングデスクリプタを取得すると、
シリアルナンバーが手に入る・・・と思う

↓のMass Storage参照
http://www.usb.org/developers/devclass_docs

やったことないけど、
DDKのサンプルのUSBView(Win32アプリ)見れば、何とかなるんじゃない?

>>738
デバイスIDとシリアル番号は別物じゃないか?

740 名前:デフォルトの名無しさん :04/07/16 12:59
複数台繋がったキーボードからキー入力を受け、どのキーボードから入力されたのかを
判定したいのですが、どのようなAPIを利用すれば実現出来るのでしょうか?
USBキーボード二台(もしくはPS2キーボード1台+USBキーボード1台)を使っての入力を想定しています。

741 名前:デフォルトの名無しさん :04/07/16 13:47
出来ない

742 名前:ほんたま :04/07/16 13:54
おみゃ〜らよ、おみゃ〜らさーん♪
おりはよ、「Slim de Can」を使ってあるボタンをクリックしたらある処理を行わせ、別のボタンをクリッしたら別の処理をおこなわせるプログラムの作成についに成功したよ。
つまり「Slim de Can」はすでにイブントドリブンプログラムがつくれる環境になっているということを自ら証明したという次第よ。
おい、「Slim de Can」はすでに簡単なゲームくらいはころっとつくれるぞ。誰かつくらんか?
「Slim de Can」ってすげ〜な〜。
おりはもう神だね♪どうよ?

http://hp.vector.co.jp/authors/VA015412/


743 名前:デフォルトの名無しさん :04/07/16 13:57
新たなキチガイの登場か

744 名前:デフォルトの名無しさん :04/07/16 14:16
無理ですか・・・。DDKまで降りていけばなんとかなりそうなので色々調べてみます。

745 名前:デフォルトの名無しさん :04/07/16 14:18
降りるとかいうな馬鹿

746 名前:デフォルトの名無しさん :04/07/16 14:20
>>745
同僚とうまくいってます?ある程度イメージ化した話が通じる人でないとこの業界ではうまくやれないと思うんですが・・・。

747 名前:デフォルトの名無しさん :04/07/16 14:23
通じてはいるだろ

748 名前:デフォルトの名無しさん :04/07/16 14:27
人の心配をする前に自分の(ry

749 名前:729 :04/07/16 14:42
クライアント領域をマウスが移動して発生したWM_MOUSEMOVEも
spy++のメッセージ コードはPとなっていてこちらはWndProcで捕捉できていました
WM_SIZNG,WM_MOVING直後にspy++上で観測されているWM_MOUSEMOVEだけがWndProcで捕捉できません
spy++が嘘をいってるとしか思えないのですが、WndProcでも補足できる方法はありますか?

750 名前:デフォルトの名無しさん :04/07/16 14:44
>>749
GetMessage で取ってきて

・DefWindowProc を呼ばない(メッセージを取り除いちゃうかもしれないから)
・TranslateMessage も呼ばない(同様)
・DispatchMessage もしない(同様)

で試してみた?


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