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


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

Win32API 質問箱 Build9
1 名前:デフォルトの名無しさん :03/02/11 11:06
スレ立てるまでもない、
   Win32 Application *Programmer* Interface
についての質問はこちらへどうぞ。
やさしいお兄さんたちが答えてくれるかも。
でも、質問する前に検索ぐらいしる!!

2 名前:デフォルトの名無しさん :03/02/11 11:06
過去スレ
Win32API 質問箱 Build8
http://pc2.2ch.net/test/read.cgi/tech/1040964626/
Win32API 質問箱 Build7
http://pc3.2ch.net/test/read.cgi/tech/1036654893/
Win32API 質問箱 Build6
http://pc3.2ch.net/test/read.cgi/tech/1032548635/
Win32API 質問箱 Build5
http://pc3.2ch.net/test/read.cgi/tech/1028580373/
Win32API 質問箱 Build4
http://pc3.2ch.net/test/read.cgi/tech/1023361418/
Win32API 質問箱 Build3
http://pc.2ch.net/tech/kako/1006/10067/1006783012.html
Win32API【2】
http://pc.2ch.net/tech/kako/1006/10067/1006783012.html
Win32API 質問箱
http://pc.2ch.net/tech/kako/991/991576947.html

参考
MSDN Online
http://www.microsoft.com/japan/msdn/default.asp
猫でもわかるプログラミング
ttp://www.kumei.ne.jp/c_lang/index.html


3 名前:デフォルトの名無しさん :03/02/11 11:28
>>1
乙。

4 名前:デフォルトの名無しさん :03/02/11 11:32
>>1
カレー

5 名前:デフォルトの名無しさん :03/02/11 14:04
>>1
Programmingだろ

6 名前:デフォルトの名無しさん :03/02/11 14:08
過去スレ7の894-参照

7 名前:デフォルトの名無しさん :03/02/11 14:10
ネタスレかw

8 名前:デフォルトの名無しさん :03/02/11 15:13
>>6
Programmerになるべき根拠がぜんぜん見出せなかったんだが。
>>7の言うとおりネタスレなのか?

9 名前:デフォルトの名無しさん :03/02/11 15:15
そんなことどうでもええがな。
Win32 Aplicationプログラミング
http://pc2.2ch.net/test/read.cgi/tech/1044267746/
だってネタスレなのに次スレとして使おうとしたくらいなんだから。

10 名前:デフォルトの名無しさん :03/02/11 15:42
だったらそっち使えばいいのに。

11 名前:デフォルトの名無しさん :03/02/11 15:47
次スレ無いと思った奴がここ立てちゃったんだろ。

12 名前:デフォルトの名無しさん :03/02/11 17:26
で、どこが本家なの?

13 名前:デフォルトの名無しさん :03/02/11 17:34
>>12
Win32 Aplicationプログラミング
http://pc2.2ch.net/test/read.cgi/tech/1044267746/

14 名前:1 :03/02/11 18:40
私はまじめにスレたてたつもりです。
何がどうなっているとネタスレなんですか?
誰か特定の人物がやっていることで
IP抜いて別人と判明したらネタスレなんですか?
だったら、今すぐ削除依頼出してきます。

15 名前:デフォルトの名無しさん :03/02/11 18:48
>>14
ネタですか?

16 名前:デフォルトの名無しさん :03/02/11 18:48
すでに次スレとして機能していた>>13のスレがあるのにどうしてわざわざ立てるんですか?

17 名前:1 :03/02/11 19:25
>>16
わかりました>>13に対して重複スレだったんですね。
削除依頼を出す場合の理由として取り上げることにします。

ですが、今しばらく他の方のご意見を拝聴します。

18 名前:デフォルトの名無しさん :03/02/11 19:49
ここはそんなに圧縮厳しくないんだから削除依頼までしなくても
次スレとして再利用すれば?
もちろんわざわざ保守まですることはない。>>13を使い終わった
ときに落ちてたら立て直せばすむこと。

19 名前:デフォルトの名無しさん :03/02/11 20:02
わざわざ削除依頼するほどでもないだろ。
ほっとけ。

20 名前:デフォルトの名無しさん :03/02/11 20:03
猫でもわかるプログラミングって役に立つの?
なんだか作者のオナーニみたいに見えるんだけどさ。

21 名前:デフォルトの名無しさん :03/02/11 21:47
>>20
何も知らない人の手がかりにはなるから、初心者を誘導して説明を省くのに使える。
何か不満があるのなら自分で書いてみたらどうだ?

22 名前:デフォルトの名無しさん :03/02/11 22:59
猫でもわかるの本は他の入門書と比べてあまり価値はないけどな

23 名前:デフォルトの名無しさん :03/02/12 00:05
漏れはWinプログラミングは猫(+APIブック)で覚えました。
コピペでビルド・実行できるのでめんどくさがりの漏れには役に立ったよ。

24 名前:デフォルトの名無しさん :03/02/12 00:13
俺も猫だな。
本買うのは面倒だし、(やたら高いしw)
bccでコピペだけでは動かないから、
いい勉強にもなった。

25 名前:デフォルトの名無しさん :03/02/12 01:48
Win32API で、使用可能なフォント一覧を取得するには
どのようにすればよいのでしょうか。
先達のお知恵を拝借したく。

26 名前:デフォルトの名無しさん :03/02/12 02:38
>>25
EnumFontsとかEnumFontFamiliesEx。

27 名前:デフォルトの名無しさん :03/02/12 17:13
nt系と 95系を判別する関数があったら教えてください。

28 名前:デフォルトの名無しさん :03/02/12 17:18
Win32APIでFtpFindFirstFileってありますよね。
これを使用してやるみたいに、httpのフォルダ内のファイルを列挙する方法
ってあるんでしょうか?
どなたか教えてください。
このスレが見つけられず、別のスレにも同じ質問をしていますが、
ご勘弁を。

29 名前:27 :03/02/12 17:32
GetVersionEx で解決。失礼しました。

>>28
不可能ではないか?

30 名前:デフォルトの名無しさん :03/02/12 17:32
>>28
一般的な方法は無い。サーバの設定でそのdirectoryのlistingが
許されている場合は、単純にGETして返された中身をパースする
ことはできるだろう。


31 名前:デフォルトの名無しさん :03/02/12 18:03
WebDAV使う、とか。

32 名前:デフォルトの名無しさん :03/02/12 18:27
>>28
APIでは用意されていない。
自力で何とかするしかない。

33 名前:デフォルトの名無しさん :03/02/12 19:27
API以前の話で、自力で何とかなるような物でも無いわけだが。

34 名前:デフォルトの名無しさん :03/02/12 19:44
そりゃそうだ
サーバが対応してなきゃな。

35 名前:名無しさん :03/02/12 20:38
シリアル経由でデバイスが読み取った結果を<LF>************<CR>(*は任意の半角英数字文字列)を送ってくるプログラムを組みたいんですけど、どうしたらいいのでしょう?
今回はじめてWin32API触るので、よくわからないんです・・・(泣

36 名前:デフォルトの名無しさん :03/02/12 20:48
>>35
APIで触らなくても、それぞれの言語にあるファイル入出力でやればいいと思うよ
APIでやってもそう変らないけど

37 名前:名無しさん :03/02/12 21:30
スレッド立ててそれなりに組んだつもりなんですけど、どうも何回か読みに行くと止まってしまって・・・。
ちなみに、OSはWindows2000、VC6.0です。

38 名前:デフォルトの名無しさん :03/02/12 23:02
排他処理してないとか

39 名前:デフォルトの名無しさん :03/02/12 23:34
ダイアログボックスのタイトルバーを消すにはどうしたらいいですか?

40 名前:デフォルトの名無しさん :03/02/12 23:38
>>39
SetWindowText

41 名前:名無しさん :03/02/12 23:39
>> 38
排他処理…ですか。具体的に言うとどんなかんじでしょう?

42 名前:デフォルトの名無しさん :03/02/12 23:55
>>40
タイトルバーの文字ではなく、タイトルバーそのものを消したいのですが。

43 名前:デフォルトの名無しさん :03/02/13 00:00
>>39 WS_CAPTIONをとればいい。


44 名前:デフォルトの名無しさん :03/02/13 00:00
>>36
そりゃねーだろ
一般にファイル入出力、例えばstdio.hは
通信パラメータを抽象化してないぜ

>>35
SetCommStateあたり調べてみな

45 名前:デフォルトの名無しさん :03/02/13 00:01
>>42
SetWindowLong

46 名前:名無しさん :03/02/13 00:09
>>44
一応こんな感じでやってたんですが・・・何かマズいところってあります?

DCB dcb;

GetCommState(comHandle, &dcb);
dcb.BaudRate = 1200;
dcb.ByteSize = 8;
dcb.StopBits = ONESTOPBIT;
dcb.Parity = NOPARITY;
dcb.fBinary = TRUE;
dcb.fTXContinueOnXoff = FALSE;
dcb.fOutX = FALSE;
dcb.fInX = FALSE;
SetCommState(comHandle, &dcb);

COMMTIMEOUTS timeouts;
timeouts.ReadIntervalTimeout = MAXDWORD;
timeouts.ReadTotalTimeoutMultiplier = 0;
timeouts.ReadTotalTimeoutConstant = 0;
timeouts.WriteTotalTimeoutMultiplier = 100;
timeouts.WriteTotalTimeoutConstant = 100;
SetCommTimeouts(comHandle, &timeouts);

47 名前:デフォルトの名無しさん :03/02/13 00:27
まず、マシンに聞いてみれ

48 名前:デフォルトの名無しさん :03/02/13 00:33
エクスプローラのように、ファイル名とそのファイルに
対応したアイコンを表示させたいと思っているのですが、
アイコンはどうやって取得すればいいのでしょうか?

49 名前:デフォルトの名無しさん :03/02/13 01:00
>>48
http://www.google.com/search?q=%E3%82%A2%E3%82%A4%E3%82%B3%E3%83%B3+%E5%8F%96%E5%BE%97

50 名前:デフォルトの名無しさん :03/02/13 01:02
>>48
SHGetFileInfo

51 名前:デフォルトの名無しさん :03/02/13 03:56
何処に書いたか分からなくなってしまったのでもう一度質問させてくさい。
mallocとGlobalAllocの違いはなんですか?

52 名前:デフォルトの名無しさん :03/02/13 04:25
メモリを管理する場所が違うのでは。
mallocはライブラリが管理、GlobalAllocはWindowsが管理。
違ったっけ。

53 名前:デフォルトの名無しさん :03/02/13 04:33
GlobalAllocよりHeapAllocを使えってSDKに書いてあったよな。
なんかGlobalAllocはちょっと遅いとか拡張性が低いとかで・・

54 名前:デフォルトの名無しさん :03/02/13 04:51
>>51
レイヤが違う。GlobalAllocの方が低レベルで、mallocはその上に成り立っている
(かもしれない)ってこった。

55 名前:デフォルトの名無しさん :03/02/13 05:13
>53
よく耳にする話だね。
GlobalAllocは移動可能だからじゃないかな。

56 名前:51 :03/02/13 05:45
どんな風に使い分けていますか?


57 名前:デフォルトの名無しさん :03/02/13 05:47
既に別スレにも書いてしまったのですが、こちらが本スレ(?)だったそうで(汗

今 TrackPopupMenu[Ex] を使ってショートカットメニューを表示しているのですが
画面中央付近に少し長めのメニューを表示すると一部が画面から飛び出してしまいます。
こういった時にメニューが画面におさまるよう移動してやるにはどうすればよいのでしょうか。
あるいはメニューを表示する前にメニューの描画サイズを得る方法はあるのでしょうか。
ご存じの方いらっしゃいましたらよろしくお願いします。

58 名前:デフォルトの名無しさん :03/02/13 05:53
普段はmalloc
HGLOBALを要求するAPIを使う時だけGlobalAlloc


59 名前:デフォルトの名無しさん :03/02/13 06:19
長いメニューがそもそも問題のような……
ブレーク設定しないのかな

60 名前:51 :03/02/13 06:46
なるほど。回答下さった皆さんどえうも有り難うございました。

61 名前:デフォルトの名無しさん :03/02/13 10:14
エクスプローラで表示している「ファイルの種類」を
取得するにはどうすればいいのでしょうか?
宜しくお願いします。

62 名前:名無し@沢村 :03/02/13 13:04
>>61
SHGetFileInfo()

63 名前:デフォルトの名無しさん :03/02/13 13:22
お願いします

VBにて、他アプリケーションをコントロールするプログラムを作っていますが
コンボボックスから任意のアイテムを選択するところで、つまづいています

任意のアイテムを選択表示することは、センドメッセージでできました。
 SendMessage(ByVal Handle_No, ByVal CB_SETCURSEL, ByVal Item_No, ByVal 0)

ただ、アイテムが変更された時にに、動くべきプログラムの処理がされません。
恐らく、アイテムが変更されたという別のメッセージを発行しなければいけないと、
思うのですが。。

どうすれば良いのか、教えてください。
よろしくお願いします

64 名前:デフォルトの名無しさん :03/02/13 14:40
CBN_* のどれかでできないかな?

65 名前:デフォルトの名無しさん :03/02/13 16:06
>>62
ありがとうございます!

66 名前:48 :03/02/13 16:30
>>49-50 うまくいきそうです。ありがとうございました。

67 名前:63 :03/02/13 17:53
CBN_SELCHANGE というコードでやってみましたが、
うまくいきませんでした

WM_COMMAND でのメッセージの送信方法が間違っているのか
CBN_SELCHANGE コードでは無理なのか調査してます

何か、情報がありましたらお願いします

68 名前:デフォルトの名無しさん :03/02/13 18:53
あ、すみません。
SHGetFileInfoでネットワークのアイコンと名前って取得できるのでしょうか?
取得できる場合は引数になにを与えればいいのでしょうか?
よろしくお願いします。

69 名前:デフォルトの名無しさん :03/02/13 19:01
SHGetFileInfoでは未確認ですが
ネットワークコンピュータ
::{208D2C60-3AEA-1069-A2D7-08002B30309D}


70 名前:デフォルトの名無しさん :03/02/13 19:14
>>68
キーワード
http://www.google.com/search?q=CSIDL+%83t%83H%83%8B%83_

71 名前:デフォルトの名無しさん :03/02/13 20:30
コンボボックスについて質問させてください♪

ドロップダウンリストにしているのですが、
▼を押したときにきれいに表示されません。
すごく細かったりします。
キーボードの上下キーで選ぶことはできるので、
表示の設定がまずいのだと思いますが、
どこをいじればいいのやらわからないです。

初歩的で申し訳ないですが、よろしくお願いします。
VC++のリソースエディタ使ってます。

72 名前:デフォルトの名無しさん :03/02/13 20:45
>>71
デザイン時に▼部分を押すとドロップダウンの長さが変えられる。

73 名前:71 :03/02/13 20:55
ありがとうございました〜!
できました。

74 名前:デフォルトの名無しさん :03/02/14 00:15
テキストボックスについてです。

テキストボックスに直接int型の変数を表示させたいのですが、どうしたらいいのでしょうか?
SetDlgItemTextだとchar型しか受け付けてくれなくて・・・(泣

お願いします。

75 名前:デフォルトの名無しさん :03/02/14 00:17
SetDlgItemInt

76 名前:デフォルトの名無しさん :03/02/14 00:17
あと、スレッドについてもお願いします。

スレッドで同期をとるにはどうしたらいいでしょう?for文やwhile文を使うとCPUを占拠しちゃって・・・

お願いします。

77 名前:デフォルトの名無しさん :03/02/14 00:20
せまふぉ、みゅーてっくすについて小一時間調べろ。

78 名前:デフォルトの名無しさん :03/02/14 00:47
( ´∀`)<せまぽ


79 名前:デフォルトの名無しさん :03/02/14 00:54
  ∧_∧
 ( ´∀`)< ぬるぽ

80 名前:デフォルトの名無しさん :03/02/14 01:03
  ∧_∧
 ( ´∀`)< お○んぽ

81 名前:デフォルトの名無しさん :03/02/14 01:05
>>74
表示する前に何でも sprintf を使って 文字列に変換した方がよくないかな。
これならどんなデータでも表示できる。

82 名前:デフォルトの名無しさん :03/02/14 01:22
ファイルに書き込むときに改行のみ書き込みたいときってどうしたらいいのでしょう?

83 名前:gn355my0 :03/02/14 01:33
>>82
fputs("改行", fp);

84 名前:デフォルトの名無しさん :03/02/14 01:53
>>83
スミマセン、APIでやってます。
あと、時間の書き込み方法もお願いします。

85 名前:デフォルトの名無しさん :03/02/14 02:02
なんとか解決できました。
ありがとうございます!

86 名前:デフォルトの名無しさん :03/02/14 02:20
ダブルクリックした場所がテキスト入力可能な場所
(メモ帳とかIEのアドレスバーなど)か判断するAPIって
ありますか?

87 名前:デフォルトの名無しさん :03/02/14 02:48
IEのツールバーを作りたいと思っているのですが、
参考になるドキュメントなどを教えてください。
なにかキーワードでも構いません。Googleりますから。

88 名前:デフォルトの名無しさん :03/02/14 02:55
>>87 IDeskBand

89 名前:デフォルトの名無しさん :03/02/14 03:17
>>88

有難う御座います。
いろいろとリソースが見つかりました。

90 名前:デフォルトの名無しさん :03/02/14 09:26
>>80
'さ'?

>>86
多分、ない。
ウインドウクラスから判断するとかどうだろう?
どんな用途に使いたいの?

91 名前:デフォルトの名無しさん :03/02/14 10:05
DNSから任意のサーバのMXフィールドを取得するAPIとかって存在しますか?

92 名前:デフォルトの名無しさん :03/02/14 10:32
SHGetSpecialFolderPath(Handle,szPath,CSIDL_NETWORK,FALSE);
これでネットワークのパスを取得するとszPathにNULLが帰ってくるのですが
何か制限があるのでしょうか?
環境はWin98SEです

93 名前:デフォルトの名無しさん :03/02/14 10:47
Explorerで、アイコンをマウスドラッグで選択するときにでてくる選択枠とか、
ウインドウリサイズのときに出てくる枠というのは、専用のAPIがあるのですか?
rectangle()でやってたりするんでしょうか?


94 名前:デフォルトの名無しさん :03/02/14 10:56
>>93
専用のAPIがありますが、むしろrectangle()がいったいなんなのかすげぇ気になるんだが。

95 名前:デフォルトの名無しさん :03/02/14 11:18
>>94
矩形だろう。

96 名前:デフォルトの名無しさん :03/02/14 11:35
>>94
そのAPIを教えて下さい

97 名前:デフォルトの名無しさん :03/02/14 12:34
>>92
CSIDL_NETWORK はnamespace hierarchyにだけ存在して目に見えるファイルシステム
ではないためSHGetSpecialFolderPathのような物理的なファイルパスを求め
るようなものではエラーになる。デスクトップ上のパス(ショートカット)を求めるのなら
CSIDL_NETHOOD でしょう。ITEMIDLISTを求めるAPIではエラーにはならないよ。

98 名前:デフォルトの名無しさん :03/02/14 12:45
>>92
>>69


99 名前:デフォルトの名無しさん :03/02/14 13:04
>>91
調べてないけど DnsQuery とかでできないかな?

100 名前:デフォルトの名無しさん :03/02/14 13:32
100ゲト

101 名前:デフォルトの名無しさん :03/02/14 13:51
質問です
1:windowsプログラムはなぜ2つの関数に分けられているのか?
2:メッセージを用いたプログラムとOSのやりとりを採用しているのはなぜか?
3:WinMain関数においてWNDCLASS構造体をwindowsへ
  登録する処理が含まれるが、なぜそのような処理が必要なのか?

この三つがよくわからんので 教えてください

102 名前:デフォルトの名無しさん :03/02/14 13:55
>>101
1.んな?初期化とそのウインドウ用のイベントハンドラ群(御幣あり)
2.そうしたかった。としか。
3.クラスとインスタンスの関係だと思われ。

103 名前:デフォルトの名無しさん :03/02/14 13:58
Microsoftにたずねろ。

104 名前:デフォルトの名無しさん :03/02/14 14:02
>>101
1.EntryとWndProcを同じ関数にすることは不可能ではない
2.当時(今も?)、GUIと相性がよいと考えられていた
3.クラス登録は必須ではない


105 名前:このレスの1/3くらいはネタでできています :03/02/14 14:03
>>96
FocusRectとかFrameRect(FrameRgn)とかSetPixelとか

106 名前:デフォルトの名無しさん :03/02/14 15:05
GetClientRectでは、ツールバーやステータスバーの領域も含まれるようですが、
これらを除いた描画領域の大きさを取得するにはどうしたら良いのでしょうか?

107 名前:デフォルトの名無しさん :03/02/14 16:07
このスレにいる人間はいかほど?

108 名前:デフォルトの名無しさん :03/02/14 16:22
>>106
普通に差分を取ったらまずい?

109 名前:デフォルトの名無しさん :03/02/14 16:51
つーか、含まれるか?
どんなウィンドウだ? それ。

110 名前:デフォルトの名無しさん :03/02/14 20:21
自分で考えろよ、馬鹿。
俺はお前の相談屋じゃねーんだぞ。

111 名前:デフォルトの名無しさん :03/02/14 20:37
110先生 スレの存在意義を問う!

112 名前:デフォルトの名無しさん :03/02/14 20:37
>>51
出遅れたがひとことふたこと書かせてもらうぞ。
あんたがどこに書いたか知ってるような気がするな。
忘れたというんじゃそっちをフォローすることもできまいが少しは
申し訳ないと思ってるんだろうな?

本題はこれから。
プログラムを作る上でめちゃくちゃ重要なことだからよっく読めよ。
その「何処に書いたか分からなくなってしまう」ような作業習慣を改めろ!
やったことは全部メモしておけ!
目の前にコンピュータとテキストエディタがあるだろうが!
以上だ。

113 名前:デフォルトの名無しさん :03/02/14 20:40
そりゃ無駄だ。
奴らはそのメモしたものがどこにあるかすら思い出せないんだから。

114 名前:デフォルトの名無しさん :03/02/14 21:21
>>101
いい質問だ

反問ですまんが
1:なぜ関数は1つでなければならないのか?
2:アプリとOSがやりとりする手段は他に何があるか?
3:標準入出力にどんな特性が必要かを、誰が決めるべきか?
これらに対する、おまえさん自身の答えが
ヒントを豊富に含んでいるであろうと予言する

115 名前:デフォルトの名無しさん :03/02/14 21:27
>>106
そのツールバー 《とやら》 をSpy++でつぶさに観察せよ
因みにGetSystemMetrics()ではなくGetRgnBox()を使う性格の問題であろう
というのが漏れの感想だ

116 名前:デフォルトの名無しさん :03/02/14 21:29
>>93
MFCのCRectTracker::TrackRubberBand()あたりではないか?
あの関数は中でPatBlt()等を使った力業をやっているだけだったような...
このスレで答えられるのはここまでだ

117 名前:106 :03/02/14 23:45
>>108
まずくないです。ただ、問題があるとすれば、ちょっと面倒かもしれません。
>>109
SPY++を見たところ、どのWindowのクライアント領域にもやはり、ツールバー
などが含まれてるようですが・・・

118 名前:デフォルトの名無しさん :03/02/15 00:04
>>117
(クライアント領域) - (ツールバーのGetWindowRect)
とかしか方法はないですよ。

119 名前:デフォルトの名無しさん :03/02/15 05:59
質問があるのですが、ウィンドウプロシージャをクラス内に隠蔽した場合、
サブクラス化を行う際に必要となるウィンドウプロシージャのアドレスを得るためには
クラスの(テンポラリーではない)インスタンスを生成する必要があるというのは
あまりにも当たり前のことなのでしょうか。プロシージャの差し替えだけのために
インスタンスを生成することに違和感を感じるのですが・・・。

//////////////////////////////////
class subclass {
static LRESULT WndProcMap(...); // プロシージャを選択的に実行
virtual LRESULT WndProc(...) = 0; // 実際のプロシージャは継承先で定義
void change(subclass* sc); // プロシージャをscのものに差し換える
};

class window : public subclass; // 基本となるプロシージャを含むクラス
class proc0 : public subclass; // 差し換えたいプロシージャその0を含むクラス
class proc1 : public subclass; // 差し換えたいプロシージャその1を含むクラス

window wnd;

/* Case 1 */
wnd.change(&proc0()); // こうできれば気持ちいいけど一時オブジェクトproc0()のアドレスを渡すのでもちろんエラー

/* Case 2 */
proc proc0;
wnd.change(&proc0()); // インスタンスを作ればOK
//////////////////////////////////


120 名前:  :03/02/15 08:24
class A_base
{
   static A_base* _a;
public:
   virtual void aa() = 0;
   static void out(){ if( A_base::_a ) A_base::_a->aa(); }
   void change( A_base* p ){ A_base::_a = p; }
};
A_base* A_base::_a= 0;

class A : public A_base{ public: A(){ change( this ); } virtual void aa(){ std::cout << "A" << std::endl; } };
class B : public A_base{ public: B(){ change( this ); } virtual void aa(){ std::cout << "B" << std::endl; } };

extern "C" int _tmain( int argc, TCHAR* argv[] )
{
   A a;
   a.change( ( A_base* )&B() ); a.out();
   a.change( ( A_base* )&A() ); a.out();
   return 0;
}

こんな感じか? 参考にならない? だったら無視してくれ。

121 名前:120 :03/02/15 08:30
上の class A は A a1, a2; って書いても同じ物をさしそうだな。
とりあえず役には立たなそうだ。

122 名前:デフォルトの名無しさん :03/02/15 11:50
初心者です、教えてください。
INPOCOMANCONTROLSEX構造体っていうのが本に載ってたのですが、
ヘルプで検索しても出てきません。
どんな構造体なんでしょう?


123 名前:デフォルトの名無しさん :03/02/15 12:11
インポコーマンコントロールセックス?

124 名前:デフォルトの名無しさん :03/02/15 13:07
>>122
ネタですか?















INITCOMMONCONTROLSEXの間違いだろうか、と心の中で思ってみる

125 名前:デフォルトの名無しさん :03/02/15 14:03
項目が多すぎて表示しきれないMENUの
スクロール方法を変えるにはどうすればよいのでしょうか?


126 名前:デフォルトの名無しさん :03/02/15 14:26
>>125
メニュー構造見直した方が良いかと。

127 名前:デフォルトの名無しさん :03/02/15 17:31
起動したexeの絶対パスを取得するようなAPIはありますか?
カレントディレクトリ = 起動したexeの絶対パス とは限らないですよね?

128 名前:名無し@沢村 :03/02/15 17:38
>>127
GetModuleFileName()

129 名前:デフォルトの名無しさん :03/02/15 17:40
>>127
ガイシュツだと思うけどGetModuleFileName

130 名前:デフォルトの名無しさん :03/02/15 20:31
コンソールプログラムで、終了時にきちんと終了処理を行いたいのですが、
コマンドプロンプトの×ボタンで終了させられた場合、try{}cathc(...){}でも__try{}__finally{}でも
ひっかからないので、正常に終了処理が行えません。

終了イベントをトラップするにはどうしたらよいのでしょうか?

131 名前:デフォルトの名無しさん :03/02/15 20:36
>>130
SetConsoleCtrlHandlerはどうでしょう



132 名前:デフォルトの名無しさん :03/02/16 00:17
>>131
SetConsoleHandlerは別スレッドでハンドラがよばれるんでハンドラからthrowしても
メインルーチンのほうではcatchできないんですよ。

133 名前:119 :03/02/16 02:13
>>120
どうもです。つまりプロシージャを指すメンバ変数をstaticにすることで
インスタンスなしに直接アクセスできるということですね。
それだとインスタンスごとにプロシージャを差し換えることができなくなりそうですが・・・。
なんだかプロシージャをクラスでラップすることの意義がわからなくなってきました。


134 名前:デフォルトの名無しさん :03/02/16 04:08
巨大なファイルをストリーミング処理するプログラムを書いています。(〜数GB)
読み込みにはReadFileExを利用し、読み込みバッファは5MByte程度です。
処理開始から暫く経つとスワップが行われるのか、他アプリへの切り替えにHDDアクセスが必要になります。

windowsのディスクキャッシュのアルゴリズムの問題と聞いたのですが、回避する方法はありませんでしょうか。
基本的に一度読み込んだデータにアクセスし直すことは無いので、
HDDへのキャッシュされないアクセス法があればいいのですが。

135 名前:デフォルトの名無しさん :03/02/16 04:13
データを保存しないのなら HDD は関係ないとかいう説は

136 名前:デフォルトの名無しさん :03/02/16 04:17
FILE_FLAG_NO_BUFFERING


137 名前:134 :03/02/16 04:29
素早い御教授ありがとうございました。早速試してみます。

138 名前:デフォルトの名無しさん :03/02/16 16:39
レスは試した後でするもんだ

139 名前:デフォルトの名無しさん :03/02/16 16:55
質問です。
Windows98以降でのDirectShowで、Indeo5のCodecの有無の判定は、
HKEY_CURRENT_USER\Software\Microsoft\ActiveMovie\devenum\{33D9A760-90C8-11D0-BD43-00A0C911CE86}\iv55
が開けるかどうかで行うことでよいですか?


140 名前:139 :03/02/16 17:31
あ、レジストリキーの最後が変でした。 iv55じゃなくてiv50です

141 名前:デフォルトの名無しさん :03/02/16 18:32
>>139
スレ違い

142 名前:デフォルトの名無しさん :03/02/16 19:57
この質問このスレでいいのかな?

WINDOWS KEYなど一部のKEYを手前で止めたいのですが
DLLで普通にフックかけても素通りされてしまいます
NT系OSならばSetWindowsHookEx と WH_KEYBOARD_LL で
捕まえて止めることができましたが

98系OSで同じことをやるAPIはないですか? 無理?
調べたところSystemParametersInfoでスクリンセーバ中にして強引に止めるという
ものしか発見できませんでした

143 名前:デフォルトの名無しさん :03/02/16 22:01
CallNextHookEx() を呼ばずにリターンしてみる

144 名前:デフォルトの名無しさん :03/02/17 00:26
リッチテキストコントロールに表示される文字の文字間隔と行間隔を変更する方法をご存じの方いらっしゃいませんか?

145 名前:デフォルトの名無しさん :03/02/17 00:52
>>144
オーナードローとか言ったらど突き倒されるんだろうなと少し思った。

146 名前:デフォルトの名無しさん :03/02/17 00:54
windowsに標準で付いているサウンドレコーダーのように
マイクから音声を取り込んでる最中にその音量を表示したいのですが、
どのようにしたらいいか分かりません。
waveIn系のAPIを使って調べるしかないのでしょうか?
それとも他に使えるAPIなどあるのでしょうか?
どなたか分かる方よろしくお願いします。
言語はC/C++かVBです。

147 名前:デフォルトの名無しさん :03/02/17 02:29
表示前にツールチップのサイズを得るにはどうすればよいんですか?


148 名前:デフォルトの名無しさん :03/02/17 02:40
>>146
方向性はそれで良い。検索でソースとか見つければいいかと。
あとはDirectSoundとか・・

149 名前:142 :03/02/17 06:35
>>143
レスありがとうございます
ダメみたいです

150 名前:デフォルトの名無しさん :03/02/17 10:21
>>144
EM_SETPARAFORMATとか言ったら押し倒されるんだろうなと少し思った。

151 名前:デフォルトの名無しさん :03/02/17 11:02
特別なフォルダを取得するAPIを教えて下さい

152 名前:デフォルトの名無しさん :03/02/17 11:21
>>151
SHGetSpecialFolderPath
SHGetSpecialFolderLocation
この辺のことか?

153 名前:デフォルトの名無しさん :03/02/17 11:45
>>152
ああ、それです、SpecialFolderって部分はわかってたのですが
フルスペルがわからなかったもので。
ありがとうございます!

154 名前:デフォルトの名無しさん :03/02/17 11:48
マウスの移動方向をAPIで取得する方法無いんでしょうか?
(DirectInput使う方法なら見つけたけど…)

前回座標との差分だと、画面端からさらにそっちに動かしたのが判らないし(汗

155 名前:デフォルトの名無しさん :03/02/17 12:03
画面端まで来たら反対側にワープ。
計算どうやるの?とかいうなよ。

156 名前:デフォルトの名無しさん :03/02/17 13:01
>>155
画面の一番右端にいるときにマウスを右に移動したのをどうやって判断するの?って
ことだろ。なにわけのわからんこといってんのよ?

157 名前:デフォルトの名無しさん :03/02/17 13:05
spy++使ってデスクトップで試してみたけど、
特別なメッセージは流れてなかったなぁ…

158 名前:デフォルトの名無しさん :03/02/17 13:21
メッセージレベルでは何も流れないだろうね。

159 名前:デフォルトの名無しさん :03/02/17 13:29
諦めて、画面端の場合はその方向にマウスを動かし続けていると見なす、とか。

160 名前:デフォルトの名無しさん :03/02/17 14:06
マウスドライバレベルで座標の変化を記録するしかないんじゃないの?

161 名前:デフォルトの名無しさん :03/02/17 14:42
教えてください
コンボボックスの表示スピード(下に伸びてくるスピード)を早くしたいのですが可能でしょうか?
可能でしたら、どういうメッセージを送ればよいのでしょうか?

よろしくお願いします


162 名前:デフォルトの名無しさん :03/02/17 15:43
LineToやTextOutで画面上に色々書いたのをけしたいのですが
現在は他のウィンドウを重ねて動かすという方法なのですが
何か良い消し方ないでしょうか?
描画させる?方法を教えて頂けませんか?

163 名前:デフォルトの名無しさん :03/02/17 15:56
>>162
それがわかればおそらくいい会社に就職できるでしょう.

164 名前:デフォルトの名無しさん :03/02/17 16:00
>>163
うぬぬ
もったいぶらずにお願いします

165 名前:デフォルトの名無しさん :03/02/17 16:04
>>164
一旦ウィンドウを閉じる

166 名前:デフォルトの名無しさん :03/02/17 16:06
デスクトップで最新の情報に更新するみたいな処理だと思うんですが
まったくわからずじまいでして、、、
お願いしますー

167 名前:デフォルトの名無しさん :03/02/17 16:06
>>162
おっきな四角を作ってそれで塗りつぶす。

168 名前:デフォルトの名無しさん :03/02/17 16:07
>>162
InvalidateRect, InvalidateRgn ?

>>163
???

169 名前:デフォルトの名無しさん :03/02/17 16:08
>>167
そのおっきな四角を消すのはどうするのでしょう?

170 名前:デフォルトの名無しさん :03/02/17 16:11
>>169
もっとおっきな四角で塗りつぶす。

171 名前:168 :03/02/17 16:11
>>169
もっと大きな四角を(略

172 名前:168 :03/02/17 16:11
省略しながら遅かった・・・(・ω・)ショボーン

173 名前:デフォルトの名無しさん :03/02/17 16:20
なんかだめぽ。。。
素直に最新の情報に更新をしてます。。、

174 名前:デフォルトの名無しさん :03/02/17 22:35
他アプリにメッセージ送信の仕方教えてください。

Alt + F4メッセージを送りたいのです。
API名だけでのいいんでよろしくです。

175 名前:デフォルトの名無しさん :03/02/17 23:02
>>162
XORで描いた四角の真上にもう一度XORで描くと元に戻るってやつかな?
SetROP2を調べてみたまい。

>174
PostMessage
メッセージはWM_SYSCOMMANDだったっけ?
「送信」とか「送る」とかいうとSendMessageと間違うな。

176 名前:gn355my0 :03/02/17 23:27
>>175
微妙に違うと思う。GetClientRect()してFillRect()でいいんちゃうの?

177 名前:デフォルトの名無しさん :03/02/17 23:47
>>162
SendMessage(hwnd, WM_ERASEBKGND

178 名前:gn355my0 :03/02/17 23:58
>>177
でもそれはちゃんと背景ブラシ設定してるかどうか。。。
ってウインドウを重ねて動かして消えるということは設定できてるってことですね。

179 名前:デフォルトの名無しさん :03/02/18 00:01
>>174
SendMessage

180 名前:デフォルトの名無しさん :03/02/18 01:49
多分この場合は、PostMessageの方が適切だね。
SendMessageだと、相手が応答不能な場合にこちらまで応答不能になるから。

181 名前:デフォルトの名無しさん :03/02/18 06:15
消した後で何か描画させるつもりならSendじゃないと不安が残るね
それからPostではあぼ〜んされてしまうメッセージもときどきある

182 名前:デフォルトの名無しさん :03/02/18 07:21
>>177>>179>>180
どーもでした。
SendMessage or PostMessageで普通に送れるんですか。
あとは、ウインドウクラス、ウインドウタイトル、実行ファイル名から
アプリ特定してHWND取得でいけるかなとおもた。

ちなみに偽メッセンジャー起動時にウインドウ開くの邪魔だったから

183 名前:デフォルトの名無しさん :03/02/18 07:33
>>162
SelectObject(hdc,GetstockObject(WHITE_BRASH));
Rectangle(hdc,-1,-1,9999,9999);

184 名前:154 :03/02/18 07:33
>155-160
thx。
駄目ですか…。

>159
現状はカーソルが端に来たらちょっと戻すような処理?でごまかしてます。
当然カーソルの動きがぶれます(汗

>160
いや、ハード的にはマウスは座標の概念持ってなくて相対的な動きしか検出出来ないんです。
本来取れるはずの値が取れないのが不自然に思ったもので。

185 名前:デフォルトの名無しさん :03/02/18 11:01
ウィンドウハンドルからGetModuleFileNameを使って
起動パスを取得したいのですがGetModuleFileNameの第一引数には
どのAPIで取得したハンドルを渡せばいいのでしょうか?

因みに知りたいのは自分の自信のパスではなくてEnumWindowsで
列挙したハンドルのパスです。
よろしくお願いします。

186 名前:デフォルトの名無しさん :03/02/18 11:49
>>185
GetWindowLong ?

187 名前:デフォルトの名無しさん :03/02/18 11:50
>>184
まず、ClipCursor()でスクリーンより大きい矩形を指定してカーソルが外に
出られるようにする。しかしこうしても、カーソルがスクリーンの外にあるときは
メッセージが来ないから、タイマなりでGetCursorInfo()/GetCursorPosを呼んだらどうよ。

>>185
http://216.239.33.100/search?q=cache:TwFOROT3lsoC:www.microsoft.com/japan/support/kb/articles/J041/6/32.htm+JP175030&hl=ja&ie=UTF-8&inlang=ja

188 名前:デフォルトの名無しさん :03/02/18 12:30
>>185
GetModuleFileNameは自プロセス内のモジュールにしか使えない。
PSAPI(NT)かToolhelp32(9x)使え

189 名前:デフォルトの名無しさん :03/02/18 12:33
>>187
何でキャッシュなの?
http://support.microsoft.com/default.aspx?scid=kb;ja;175030

190 名前:デフォルトの名無しさん :03/02/18 12:41
>>182
(´-`).。oO( 偽メッセンジャーはメインウィンドウ非表示で起動できるじゃん・・・ )

191 名前:デフォルトの名無しさん :03/02/18 13:13
他のアプリのツリービューの背景色(文字色も)を変更することはできますか?
SendMessageあたりでいろいろ調べてるんですけど、まだ決め手となるものが
ありません。


192 名前:デフォルトの名無しさん :03/02/18 13:17
>>191
てめーのダサいデザインセンスを勝手に適用すんな。
画面のプロパティで設定するからいらん。

193 名前:デフォルトの名無しさん :03/02/18 13:33
>>192
禿同。

194 名前:162 :03/02/18 13:55
あれからまた色々やったのですがだめでしたので、またご助言を、、
http://uniety.hp.infoseek.co.jp/mo.exe
を実行するとマウスの周りに色がぐちゃぐちゃっとなるのを消したいのです。
自分も相手もDelphiというのを使っておりまして、どうにかしたいのですが
そんなに詳しいわけでもなく知り合いに聞くとAPIとだけ言い残しただけ、、

どなたか助けて下さい。 それともDelphiのスレで聞くのがいいでしょうか

195 名前:191 :03/02/18 13:56
古い人間なので、エディタでもなんでも、背景色は黒でないとダメなのですが、
Windows全体をその設定にしてしまうと、いろいろと不具合が出ます。
Windowsは、黒背景で使うようにはできていません。
ある特定のアプリの一部を変更したいだけです。


196 名前:デフォルトの名無しさん :03/02/18 13:59
背景が黒だと文字が見えないとか言ったりして。プププ

197 名前:デフォルトの名無しさん :03/02/18 14:16
> Windowsは、黒背景で使うようにはできていません。
Windowsはできてるよ
できてないのはその糞アプリ

198 名前:デフォルトの名無しさん :03/02/18 15:16
>>190
できました。
毎回毎回閉じてたのがばかみたい。
うざったいの消えていい感じ

199 名前:デフォルトの名無しさん :03/02/18 15:21
>>188
ありがとう。
ウィンドウハンドルで識別するためにGetWindowThreadProcessIdでProcessIdを取得して
Process32First等で取得したth32ProcessIDと比較してIDが一致したらって
やったのですが、一致するIDがあなませんですた。比較する対象が違うのでしょうか?

200 名前:デフォルトの名無しさん :03/02/18 15:24
お前のプログラムが違う
つーか>>187>>189がせっかくリンク張ってやってるんだから読めよ

201 名前:デフォルトの名無しさん :03/02/18 15:28
CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS
を実行した瞬間に存在するプロセスのみが列挙されるはずですが
その辺のタイミングは大丈夫ですか?

202 名前:デフォルトの名無しさん :03/02/18 15:44
それを言い出したらウィンドウだって
列挙した瞬間のものしか取り出せないわけだが

203 名前:191 :03/02/18 16:03
>197
一度黒背景設定でやってみてください。もちろん、文字色は明るい色で。
他社のアプリではなく、Windowsそのものの各所で、
見えなくなるところがでてきます。

ていうか、単にAPI調べてるだけなんですけど…。


204 名前:デフォルトの名無しさん :03/02/18 16:20
この板でWindows自体といったらAPIレベルの話しだべ

205 名前:デフォルトの名無しさん :03/02/18 16:21
>>203
Windowsの画面設定にはデフォで背景黒があったはずだが、
それもおかしくなるか?

206 名前:デフォルトの名無しさん :03/02/18 16:24
>>203
ちゃんと隅々まで設定しろよ。めんどくさけりゃ「ハイコントラスト 黒」とかにしたら?

207 名前:デフォルトの名無しさん :03/02/18 16:45
WNetOpenEnumでグループ名はゲットできたんですが、
そこから各コンピューター名はどうやってゲットすればいいのでしょうか?

208 名前:デフォルトの名無しさん :03/02/18 16:46
ォィォィ
>>194落としたらすごい事になったぞ
タスクバーの汚れきえねーよ

209 名前:名無し@沢村 :03/02/19 00:27
>>199
ヌヒよ、GetWindowModuleFileName()では駄目なのか?

210 名前:デフォルトの名無しさん :03/02/19 00:43
駄目

211 名前:デフォルトの名無しさん :03/02/19 00:57
>>210
Why

212 名前:デフォルトの名無しさん :03/02/19 01:18
MDIアプリケーション(Photoshopみたいなもの)作ってるんですけど
パレットウィンドウやブラシウィンドウのように一つしか無いウィンドウ
のハンドルはグローバル変数にしてしまうのが一番スマートな方法なのでしょうか?

画像は複数個読み込むことが出来て、画像ごとにウィンドウを作成します。
そしてアクティブな画像ウィンドウは、パレットウィンドウやブラシウィンドウと
SendMessage()で必要な情報をやり取りする、という形なのですが…

213 名前:デフォルトの名無しさん :03/02/19 08:26
>>187
thx。
でも画面内にカーソルを置いたまま移動量がほしいので…
移動量だけ欲しいときはいいアイデアだと思いました。

>>194
すごいなこれ…
とりあえず最前面に画面と同じ大きさの窓を開いてすぐ閉じれば消えるかと。

214 名前:デフォルトの名無しさん :03/02/19 09:30
>>212
ハンドル解放後にハンドルに対する処理したら悲惨。


215 名前:デフォルトの名無しさん :03/02/19 11:13
>>211
NTではGetWindowModuleFileNameでも
他プロセスのモジュールのファイル名は取れないぽ

216 名前:デフォルトの名無しさん :03/02/19 21:38
>>212

モードレス ダイアログのハンドルは
オーナー ウインドウとメッセージ ループの両方で要るからなあ。

オーナー ウインドウにハンドルを預けておいて
メッセージ ループではSendMessageの戻りでがんがるって手もあるけど、
アプリケーション ユニークなオブジェクトなら
グローバルの方がかえってきれいじゃないか?

といってもHWND変数をextern宣言するのはいやだから
ちゃんと関数で隠蔽して。

217 名前:デフォルトの名無しさん :03/02/19 22:03
MAPISendMailについて教えてください。
これの4つ目の引数のflFlagsのフラグの意味がよくわかりません。
MAPI_DIALOG 、MAPI_LOGON_UI 、MAPI_NEW_SESSION
の使い分けってどういう風に行うのでしょうか?
ご存知の方がいたらご教授お願いします。

218 名前:デフォルトの名無しさん :03/02/19 22:29
>>217
http://msdn.microsoft.com/library/en-us/mapi/html/_mapi1book_c_mapisendmail.asp

219 名前:デフォルトの名無しさん :03/02/19 22:41
質問があります

WindowsXP上で赤外線通信を行うソフトを作ろうと
思ったのですが、どうやったら良いのでしょうか?
WinCEではIrSockを使うらしいことまでは分かったんですが・・・
XPでも同じで良いんでしょうか?

それと、WindowsXP標準の赤外線通信ソフトを無効にすることは
出来るのでしょうか?


Socket関係はあまり使ったことがなく、困っております
先達のお知恵を・・・


220 名前:86 :03/02/19 22:51
以前>86で質問した者です。
>90
ネットが使えなかったので返事ができませんでした、すいません。
マウスをグローバルフックするDLLを作っり、ダブルクリックした場所が
テキスト入力可能な場所ならソフトウェアキーボードを立ち上げるような
プログラムを作ろうとしています。
テキスト入力可能か判断する方法が知りたいのですが。
メモ帳などのエディタだけでなくIEのアドレスバーなどでも判断できるようにしたいので
ウインドウクラスから判断するのは難しいと思うのですが。

221 名前:デフォルトの名無しさん :03/02/19 22:52
>>220
事実上不可能な気もします。

222 名前:デフォルトの名無しさん :03/02/19 23:14
>>220
IMEでも作るんですか?

223 名前:217 :03/02/19 23:18
>>218
すいません。もちろんMSDNはちゃんと見ていますが、あの説明だけではとても理解できませんでした。
もしわかるのなら教えてもらえないでしょうか?


224 名前:220 :03/02/19 23:20
>>222
IMEなんて代物は作れませんが、ダブルクリックで立ち上がるソフトウェアキーボードを作る感じです。

フックDLLは既に作ってますが、フォーカスイベントなどを処理すればなんとかなるのかなぁ・・・。

225 名前:デフォルトの名無しさん :03/02/19 23:30
そっか、IMEにしちゃえばいいのか。

226 名前:デフォルトの名無しさん :03/02/19 23:33
>>220
GetCaretPos()を実行して座標が0,0なら入力不可と仮定。
完璧じゃないけど。


227 名前:デフォルトの名無しさん :03/02/19 23:40
>>226
うん、Windowsのエディット関係使ってないやつとか。


228 名前:220 :03/02/19 23:45
いろいろなレスありがとうございます。

IMEで調べるとImmSetOpenStatus関数が使えそうな気がしました。
IMEを開こうとして関数の戻り値が0以外ならテキスト入力可能だと判断できるような気もします。
この場合、無駄にIMEが開いてしまうという副作用もありそうですが・・・。


229 名前:デフォルトの名無しさん :03/02/19 23:51
>>228
だからあなたがIMEを作るんですよ。

230 名前:220 :03/02/20 00:00
>>229
ああ、そういうことなんですね、やっと意味がわかりました(汗

IME作るのか、めんどくさそうな予感・・・。サンプルとか落ちてないのかな。

231 名前:デフォルトの名無しさん :03/02/20 01:44
lstrcpyとかは、引数にNULLを指定しても
エラーダイアログとかワトソン博士とか出て来ないのですが
戻り値でエラーが返るだけなんでしょうか?

232 名前:デフォルトの名無しさん :03/02/20 01:50
>>231
うん

233 名前:デフォルトの名無しさん :03/02/20 06:15
既出だとは思いますが、

FillMemory(lpDest, lpSrc, var)の
varがBYTE型なのですが、
32ビット固定小数点型をセットできる関数をはないですか?

ループでやれば出来るんですが遅いんです…

234 名前:デフォルトの名無しさん :03/02/20 06:42
既出だと思うなら探せよ

235 名前:デフォルトの名無しさん :03/02/20 07:30
>>233
結局どのデータ型も突き詰めればバイトストリームだってことさ。

236 名前:デフォルトの名無しさん :03/02/20 07:42
REP STOS (合ってる?

237 名前:デフォルトの名無しさん :03/02/20 07:48
メモリを32ビット値で埋める?
CopyMemoryしたほうがいいんでない?

238 名前:デフォルトの名無しさん :03/02/20 14:29
質問です。
HBITMAP CreateDIBSection(
HDC hdc, // handle to DC
CONST BITMAPINFO *pbmi, // bitmap data
UINT iUsage, // data type indicator
VOID **ppvBits, // bit values
HANDLE hSection, // handle to file mapping object
DWORD dwOffset // offset to bitmap bit values
);

これで*ppvBitsには確保されたメモリーのアドレスが格納されると思うのですが、
これって使い終わったら自分で解放しなきゃいけないんでしょうか?
もし解放しなきゃいけないならfreeですか?それともdelete?

239 名前:デフォルトの名無しさん :03/02/20 14:33
メモリの値を16進数で取り出すにはどうしたらいいんでしょうか?

240 名前:デフォルトの名無しさん :03/02/20 14:39
hSectionがNULLの場合は、 オペレーティング システムが
デバイスに依存しないビットマップのメモリを割り当てます。
後でDeleteObject関数を呼び出してデバイスに依存しない
ビットマップを削除すると、 オペレーティング システムが
そのメモリのハンドルをクローズします。

と書いてある

241 名前:デフォルトの名無しさん :03/02/20 14:52
>>239
値そのものは10進だとか16進だとか関係ありません。

取ってきた値を16進で表示したいならprintfでもつかえば?

242 名前:デフォルトの名無しさん :03/02/20 14:59
>>240
サンクス
今度から下の方までよく読みます

243 名前:239 :03/02/20 15:19
>>241
ごめんなさい、よく分からないで質問してました。
WINAPI WinMain でprintfを使うにはどうしたらいいか分かりません。
stdio.hをインクルードすればmain()がないとエラーが返されてしまいます。
どのようにしたらよろしいのでしょうか?

244 名前:デフォルトの名無しさん :03/02/20 15:28
>>243
コンソールアプリケーションにすればいいよ。

245 名前:239 :03/02/20 15:41
>>244
ウインドウとコンソールは一緒に出来ないんですね・・・
ありがとうございました

246 名前:デフォルトの名無しさん :03/02/20 15:56
引数に何も指定しなかったらウインドウで
指定したらコンソールって作れますか?
ちらっと変なウインドウとか出さずに。

247 名前:デフォルトの名無しさん :03/02/20 16:10
XPならAttachConsoleでできるかも

248 名前:デフォルトの名無しさん :03/02/20 16:10
>>245
できるよ

249 名前:デフォルトの名無しさん :03/02/20 16:13
>>245
AllocConsole すれば コンソールが出るし
窓とコンソールの両方を出す事も出来る


250 名前:239 :03/02/20 16:45
やってみます、ありがとうございました


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