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


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

Win32API質問箱 Build32
1 名前:デフォルトの名無しさん :2005/05/28(土) 18:17:09
スレ立てるまでもない、Win32APIのついての質問はこちらへどうぞ。
やさしいお兄さんたちが答えてくれるかも。

  ∧_∧
 ( ´∀`) < 0x20

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

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


2 名前:デフォルトの名無しさん :2005/05/28(土) 18:18:52
-過去スレ
Build31:http://pc8.2ch.net/test/read.cgi/tech/1114762194/
Build30:ttp://pc8.2ch.net/test/read.cgi/tech/1112345886/
Build29:ttp://pc8.2ch.net/test/read.cgi/tech/1110281860/
Build28:ttp://pc5.2ch.net/test/read.cgi/tech/1108199304/
Build27:ttp://pc5.2ch.net/test/read.cgi/tech/1106103119/
Build26:ttp://pc5.2ch.net/test/read.cgi/tech/1104109858/
Build25:ttp://pc5.2ch.net/test/read.cgi/tech/1101393155/
Build24:ttp://pc5.2ch.net/test/read.cgi/tech/1098967135/
Build23:ttp://pc5.2ch.net/test/read.cgi/tech/1095534704/
Build22:ttp://pc5.2ch.net/test/read.cgi/tech/1092524669/
Build21:ttp://pc5.2ch.net/test/read.cgi/tech/1090422324/
Build20:ttp://pc5.2ch.net/test/read.cgi/tech/1088140233/
Build19:ttp://pc5.2ch.net/test/read.cgi/tech/1084697545/
Build18:ttp://pc5.2ch.net/test/read.cgi/tech/1081702990/
Build17:ttp://pc5.2ch.net/test/read.cgi/tech/1077470361/
Build16:ttp://pc2.2ch.net/test/read.cgi/tech/1073830065/
Build15:ttp://pc2.2ch.net/test/read.cgi/tech/1069339866/
Build14:ttp://pc5.2ch.net/tech/kako/1065/10653/1065328397.html
Build13:ttp://pc5.2ch.net/tech/kako/1059/10595/1059549320.html
Build12:ttp://pc5.2ch.net/tech/kako/1056/10560/1056033645.html
Build11:ttp://pc5.2ch.net/tech/kako/1052/10526/1052651750.html
Build10:ttp://pc5.2ch.net/tech/kako/1047/10478/1047819779.html
Build9:ttp://pc5.2ch.net/tech/kako/1044/10449/1044929160.html
Build8:ttp://pc5.2ch.net/tech/kako/1040/10409/1040964626.html
Build7:ttp://pc3.2ch.net/tech/kako/1036/10366/1036654893.html
Build6:ttp://pc3.2ch.net/tech/kako/1032/10325/1032548635.html
Build5:ttp://pc3.2ch.net/tech/kako/1028/10285/1028580373.html
Build4:ttp://pc3.2ch.net/tech/kako/1023/10233/1023361418.html
Build3:ttp://pc.2ch.net/tech/kako/1017/10170/1017072275.html
Build2:ttp://pc.2ch.net/tech/kako/1006/10067/1006783012.html
Build1:ttp://pc.2ch.net/tech/kako/991/991576947.html

3 名前:デフォルトの名無しさん :2005/05/28(土) 18:18:56
ニダ

4 名前:デフォルトの名無しさん :2005/05/28(土) 18:20:23
- MSDN Online
http://www.microsoft.com/japan/msdn/
- 猫でもわかるプログラミング
http://www.kumei.ne.jp/c_lang/
- Platform SDK Update
http://www.microsoft.com/msdownload/platformsdk/sdkupdate/
- Google
http://www.google.com/

Win32 API入門
http://wisdom.sakura.ne.jp/system/winapi/
Win32 プログラミング入門
http://www7.plala.or.jp/keny01/windows/win32/
Win32 SDK Programming
http://usr_vogel.at.infoseek.co.jp/Win32SDK/

■書籍
Advanced Windows
http://www.amazon.co.jp/exec/obidos/ASIN/4756138055

>>3
プッ

5 名前:デフォルトの名無しさん :2005/05/28(土) 18:37:07
ごんた

6 名前:デフォルトの名無しさん :2005/05/28(土) 18:46:29
無駄無駄無駄ァァァァァ

7 名前:デフォルトの名無しさん :2005/05/28(土) 19:05:45
七面鳥

8 名前:デフォルトの名無しさん :2005/05/28(土) 19:17:45
うっかり八兵衛

9 名前:デフォルトの名無しさん :2005/05/28(土) 19:18:37
九重佑三子のコメットさん

10 名前:デフォルトの名無しさん :2005/05/28(土) 19:19:53
十兵衛@ハレンチ学園

11 名前:デフォルトの名無しさん :2005/05/28(土) 19:34:25
獣医乳首

12 名前:デフォルトの名無しさん :2005/05/28(土) 20:06:46
女子十二楽坊

13 名前:デフォルトの名無しさん :2005/05/28(土) 20:14:04
阪急十三駅

14 名前:デフォルトの名無しさん :2005/05/28(土) 20:15:18
尾道市十四日町

15 名前:デフォルトの名無しさん :2005/05/28(土) 21:11:41
十五少年漂流記

16 名前:デフォルトの名無しさん :2005/05/28(土) 21:15:10
http://www.microsoft.com/downloads/details.aspx?familyid=EBA0128F-A770-45F1-86F3-7AB010B398A3&displaylang=en
http://www.microsoft.com/msdownload/platformsdk/sdkupdate/XPSP2FULLInstall.htm
http://www.microsoft.com/msdownload/platformsdk/sdkupdate/psdk-full.htm

17 名前:デフォルトの名無しさん :2005/05/28(土) 21:15:41
RegisterClipboardFormatで、
自分専用のクリップボードフォーマットの番号をOSから頂いたんですが、
この情報はレジストリに登録されるのでしょうか?
それとも、一時的なもので、再起動してRegisterClipboardFormatすると
再度割り当てが行われるものなのでしょうか?
(極力レジストリは汚したくないもので・・・)


18 名前:デフォルトの名無しさん :2005/05/28(土) 21:23:49
一時的だよ

19 名前:17 :2005/05/28(土) 21:28:09
>>18
ありがとうございます。
心置きなく使えます。

20 名前:デフォルトの名無しさん :2005/05/28(土) 22:07:21
> OSから頂いた
わろた

21 名前:デフォルトの名無しさん :2005/05/28(土) 22:07:32
"C:\\"のプロパティ(Explorerの右クリックと同じもの)を表示するのはどうすればいいですか?

22 名前:デフォルトの名無しさん :2005/05/28(土) 22:30:34
>1Z

23 名前:デフォルトの名無しさん :2005/05/28(土) 22:35:48
>>21
ShellExecuteの2番目の引数をTEXT("properties")にしたらいけるんじゃない?

24 名前:デフォルトの名無しさん :2005/05/28(土) 23:06:43
CreateDialogParamでダイアログボックス何個か作って各々WM_MOVEきたら座標を記録して終了時に保存、
起動時に読み込んでMoveWindowで位置を復元してみたところ
xyともに+3pixずれてるんですがそういうもんなんでしょうか。

25 名前:デフォルトの名無しさん :2005/05/28(土) 23:12:19
違います

26 名前:デフォルトの名無しさん :2005/05/28(土) 23:12:20
>>24
WM_MOVEはクライアント領域で、
MoveWindowはウィンドウ全体の座標ですよ。

27 名前:デフォルトの名無しさん :2005/05/29(日) 00:35:31
質問失礼します。
キャレットが表示されたら処理を行いたいのですが
キャレットが表示された、されない、の識別方法が解りません。
ウィンドウに左右されない
キャレットの状態を監視する方法がさっぱりです・・・。
どうすればいいのでしょうか?

28 名前:24 :2005/05/29(日) 00:46:01
レスありがとうございました。多謝。

29 名前:デフォルトの名無しさん :2005/05/29(日) 00:46:07
WM_SETFOCUSとか?

30 名前:デフォルトの名無しさん :2005/05/29(日) 01:39:51
>>17
レジストリが気になるなら、れぐもんでも使って変更点調べてみ。

31 名前:デフォルトの名無しさん :2005/05/29(日) 01:44:44
3D関連のAPIは無いのでしょうか?
もしくはDCに書き込めるフリーの3Dライブラリ無いでしょうか?
ワイヤーフレーム、球、半透明、程度の機能でいいんですが、、、
(独自ウインドウに書き出すようなのはいくつか見つけました)


32 名前:デフォルトの名無しさん :2005/05/29(日) 01:51:27
DirectXはお嫌い?

33 名前:31 :2005/05/29(日) 02:08:13
DirectXとOpenGLは無しでお願いします。
あまり大層じゃなくやりたいので、、、


34 名前:デフォルトの名無しさん :2005/05/29(日) 02:21:48
DirectGL作れ

35 名前:デフォルトの名無しさん :2005/05/29(日) 03:22:14
OpenGL = IndirectX

36 名前:デフォルトの名無しさん :2005/05/29(日) 03:48:20
>>31
大層なものじゃなくてもDirectX使ったほうが楽な結果に終わることもあるよ
GDIのみ→GDI+→DirectXと結局作り変えてる俺

ご利用は計画的にorz


37 名前:デフォルトの名無しさん :2005/05/29(日) 04:11:54
つーか、GDI+DIBSectionあたりでガリゴリやるほうがDirectXよりよっぽど大層なことだろ

38 名前:デフォルトの名無しさん :2005/05/29(日) 04:21:38
>>31
MoveToEx();
LineTo();


39 名前:デフォルトの名無しさん :2005/05/29(日) 11:54:24
ウインドウメッセージやスタイルを,0x0201→WM_PAINTといった感じに,数値から文字列に変換する方法を探しています。
FormatMessageの様な便利なAPIは用意されてないのでしょうか?

40 名前:デフォルトの名無しさん :2005/05/29(日) 12:26:09
前スレ1000は、ギャグのつもりでやっちゃたんだろうか

41 名前:デフォルトの名無しさん :2005/05/29(日) 13:23:03
>>39
ないよ
windows.hのWM_〜部分を全部持ってきて
Cならマクロで値と文字列のテーブル作るのが簡単
#defile WM_DEF(msg) {msg, #msg},
struct {
UINT msg;
const char *msg_str;
} msgtbl[] = {
WM_DEF(WM_CREATE)
WM_DEF(WM_DESTROY)
WM_DEF(WM_COMMAND)


};


struct {
UINT msg;
const char *msg_str;
} msgtbl[] = {
{WM_CREATE, "WM_CREATE"},
{WM_DESTROY, "WM_DESTROY"},
{WM_COMMAND, "WM_COMMAND"},

};
というのができる

42 名前:デフォルトの名無しさん :2005/05/29(日) 13:23:48
すいません、質問させてください。
MBCSかどうかをチェックするAPIがあったはずですが、
忘れてしまいました。
今Googleで調べてますが、ご存知な方がいらっしゃいましたら、教えていただけないでしょうか?

よろしくお願いいたします。

43 名前:デフォルトの名無しさん :2005/05/29(日) 13:28:29
>>42
IsDBCSLeadByte()
あとCharNext()とCharPrev()もある。

44 名前:42 :2005/05/29(日) 13:32:37
>>43
即答いただきまして、ありがとうございます。
助かりました。

45 名前:デフォルトの名無しさん :2005/05/29(日) 15:01:34
キーボードやマウスの操作を無効にしたいと思いBlockInputを使ってみたのですが
Windows95などでは使えないみたいなんです。Hookする以外に方法は無いでしょうか?

46 名前:デフォルトの名無しさん :2005/05/29(日) 17:22:55
>>41
ありがとうございます。
Spy++等で表示されてるのを見てひょっとしたらと思ったのですが用意されてないのですね。
てきとーに置換してテーブル作ることにします。

47 名前:デフォルトの名無しさん :2005/05/29(日) 18:08:57
ttp://www.kumei.ne.jp/c_lang/sdk/sdk_100.htm
ここのスクロール量の正規化について疑問があるので、教えてください。
>dy = max(-1 * si.nPos, min(dy, si.nMax - si.nPos));
なのですが、外側のmaxが必要になるケースが思いつかないのですが、どんなときですか?

48 名前:デフォルトの名無しさん :2005/05/29(日) 18:16:40
その前の章に解説があるようだが?

49 名前:デフォルトの名無しさん :2005/05/29(日) 18:20:44
すいません、どうしてもわからなかったんで質問させてください。
↓このアプリのように、トレイに表示されているアイコンに対して、外部からクリック操作をするには
どのようなAPIを使えばいいんでしょうか?
http://www.forest.impress.co.jp/article/2005/05/24/traycommand.html

50 名前:デフォルトの名無しさん :2005/05/29(日) 18:23:59
おとなしくそのアプリを使えよ。

51 名前:49 :2005/05/29(日) 18:29:03
>>50
うーん、自アプリにこの機能を組み込みたいんですよね。
どうかお願いします。

52 名前:デフォルトの名無しさん :2005/05/29(日) 18:29:25
こぴぺっぽい前スレ998だけど、北斗の拳は実写版があるぞ。
たしかハリウッドで。

53 名前:デフォルトの名無しさん :2005/05/29(日) 18:30:20
>>48
ありがとうございます、でも分かりませんでした。
外側のmaxはスクロール後の位置がマイナスにならないように正規化するためのものですよね。
でも、SetScrollInfoはオーバーフローとアンダーフローを自動的に補正してくれます。
また、内側のminでの計算でnPageが考慮されていないのでオーバーし放題です。



54 名前:デフォルトの名無しさん :2005/05/29(日) 19:04:27
( ・ω・)∩先生!質問です!

[hoge]
hage=100,200,300

という感じで一つのキーに複数の整数パラメータがあるiniファイルで
二つ目以降のパラメータを整数型で取得する方法は無いのでしょうか?

GetPrivateProfileIntは試してみたけど一つ目のパラメータしか取れないみたいだし、
GetPrivateProfileStructは文字コードのまま構造体に放り込むだけだし・・・
やっぱりGetPrivateProvileStringで文字列から整数に変換するしか方法はないんでしょうか?

55 名前:デフォルトの名無しさん :2005/05/29(日) 19:08:00
>54
API だけだと無理だと思う。素直に解析しましょう。
あるいは、ini ファイル側の仕様を変えて

[hoge]
foo1=100
foo2=200
foo3=300

みたいにするか。

56 名前:デフォルトの名無しさん :2005/05/29(日) 19:23:09
MFCなら GetProfileBinary WriteProfileBinary があるんだが


57 名前:54 :2005/05/29(日) 20:41:08
>>55
やっぱり無理なんですね(´・ω・`)
作ろうとしているのが他の人が作ったソフトのiniファイルを編集するツールなので
iniファイルの仕様を変えることができないので素直に解析するようにします。

>>56
「へぇ〜そんな関数があるのか」とMSDNライブラリを見てみたけど
MSDNライブラリに載っていなかったのでぐぐったらあっさり見つけました。
これなら希望通りの動作をしそうですね。
今回はMFCを使わないのですが、MFCを使うことがあれば利用したいと思います。

もう一つ質問なんですが、
文字列を整数型に変化するにはatoiなどの標準ライブラリの関数を使うしかないのでしょうか?

初歩的な質問ばかりで申し訳ないですがよろしくお願いします。

58 名前:デフォルトの名無しさん :2005/05/29(日) 20:52:52
>>57
っ[ 文字コード表 ]

59 名前:デフォルトの名無しさん :2005/05/29(日) 20:54:57
>>57
StrToInt

60 名前:デフォルトの名無しさん :2005/05/29(日) 22:24:32
>>57
APIでなくてもいいならsscanf()

61 名前:デフォルトの名無しさん :2005/05/29(日) 23:52:26
>>49
Spy++でメッセージを拾うとか、
ApiMonで呼んでいるAPIを見るとか。

62 名前:デフォルトの名無しさん :2005/05/30(月) 01:00:11
そんな面倒なことやってられないからここで聞いているんだろうに、
使えない奴は答えるなよ、ボケ

63 名前:54=57 :2005/05/30(月) 03:36:45
StrToIntを試してみたら希望通りの動作をしたので今回はStrToIntを使うことにしました。

初心者丸出しの質問に答えてくださった皆さんありがとうございました。

・・・もっと勉強しなきゃ・・・sscanfも知らなかったし(;´д`)

64 名前:デフォルトの名無しさん :2005/05/30(月) 05:18:19
>> 49

www.autohotkey.com

オープンソースらしい.

65 名前:デフォルトの名無しさん :2005/05/30(月) 08:17:32
リストビューの横スクロールバーだけ自動で出現しないようにする方法ありませんか?

66 名前:デフォルトの名無しさん :2005/05/30(月) 08:54:04
>>65
カラム幅を制御して横スクロールバーのいらない寸法を維持する。

67 名前:siokosho :2005/05/30(月) 09:00:34
素人の質問ですみません。うまく日本語化できないのですがどうしたらよいでしょう?
お願いします。

68 名前:デフォルトの名無しさん :2005/05/30(月) 09:12:00
まず日本語を勉強する

69 名前:デフォルトの名無しさん :2005/05/30(月) 09:58:56
>>66
WM_SIZEを乗っ取ってカラム幅とウインドウのクライアント幅を同じにしました。

ウインドウの縦サイズを調整して、縦スクロールバーがない状態からある状態にすると縦&横スクロールバーが出現するので、
カラム幅をクライアント幅に一致するように縮めスクロールしないでも収まるようにしたのですが、
それが横スクロールバーに反映されないので困っています。もう一段階サイズを変更すると消えるのですが・・・。

70 名前:デフォルトの名無しさん :2005/05/30(月) 12:19:05
CloseDriver
DRV_CLOSE

と同様の機能らしいAPIが二つあるのですが
使い方の違いですか?

71 名前:デフォルトの名無しさん :2005/05/30(月) 17:04:14
標準入出力のストリームをバイナリモードにするAPIを教えてください。

72 名前:デフォルトの名無しさん :2005/05/30(月) 17:31:18
>>71
後から変更することは出来ない。
が、改めてオープンしなおすことは出来る。
CreateFile(TEXT("CON"),

73 名前:デフォルトの名無しさん :2005/05/30(月) 18:25:12
>>72
それは標準入力ではない。

>>71
ファイルハンドルを複製せよ。

74 名前:デフォルトの名無しさん :2005/05/30(月) 18:42:49
Window Media Playerの設定を変更するアプリケーションが作りたいのですが
経験者の方はおられますか?

75 名前:デフォルトの名無しさん :2005/05/30(月) 21:52:13
おりますよ。何でも聞いてござれ。

76 名前:デフォルトの名無しさん :2005/05/31(火) 00:00:36
Explorerをシェル拡張するのではなく、
リパースポイントを使いたいのですが、
マイクロソフトと何か契約を結んだりしないとダメですか?

77 名前:デフォルトの名無しさん :2005/05/31(火) 00:59:00
質問です。
CreateEventをリモートで実現するにはどうしたらいいでしょう?
ソケットとか使わないとダメ?


78 名前:デフォルトの名無しさん :2005/05/31(火) 02:52:03
>>76
ttp://msdn.microsoft.com/library/en-us/fileio/fs/fsctl_set_reparse_point.asp

79 名前:74 :2005/05/31(火) 07:15:14
>>75
[ツール]-[オプション]-[ネットワーク]タブにあるチェックボックスを
ON/OFFすることなんてできますか?

80 名前:デフォルトの名無しさん :2005/05/31(火) 13:10:46
メッセージ処理(WM_TIMER)に依存しないウェイトのかけ方を教えてください>w<
SetTimerは内部でメッセージ使ってるようなので‥‥

81 名前:デフォルトの名無しさん :2005/05/31(火) 13:30:55
Sleepとか?

82 名前:デフォルトの名無しさん :2005/05/31(火) 13:44:00
昔はリソースの関係でタイマーを大量に作れなかったので
Sleepで実装したりもした、と聞く。

83 名前:デフォルトの名無しさん :2005/05/31(火) 13:46:43
Sleepだとスレッドが寝ちゃうから中断できなくてダメなんです>w<


84 名前:デフォルトの名無しさん :2005/05/31(火) 13:55:24
MsgWaitForMultipleObjects

85 名前:デフォルトの名無しさん :2005/05/31(火) 14:05:51
タイマスレッド、イベントオブジェクト

86 名前:デフォルトの名無しさん :2005/05/31(火) 14:09:25
空ループ

87 名前:デフォルトの名無しさん :2005/05/31(火) 14:18:29
日本語版Windows2000 VC6にて 入力された文字をStaticで表示させるDLLを
作っている(MFC無し)のですが、英語版NT4(GlobalIME IE4)環境下にて、
日本語が文字化けします。どなたかうまく表示させる方法をご存知ではない
でしょうか?

以下はソース抜粋です。
#include <windows.h>
#include <stdio.h>
#include <tchar.h>

void SetTxtMsg(LPCTSTR lpTxtMsg)
{
LOGFONT lf;
memset(&lf, NULL, sizeof(lf));

lf.lfCharSet= SHIFTJIS_CHARSET;
lf.lfOutPrecision= OUT_OUTLINE_PRECIS;
lf.lfClipPrecision= CLIP_STROKE_PRECIS;
lf.lfPitchAndFamily= DEFAULT_PITCH | FF_SWISS;
lstrcpy(lf.lfFaceName, TEXT("MS Gothic"));

hFont = CreateFontIndirect(&lf);

msg_hWnd = CreateWindowEx( NULL,
"STATIC", TEXT(lpTxtMsg),
WS_CHILD | WS_VISIBLE | SS_CENTER,
WNDMSG_X, WNDMSG_Y, WNDMSG_WIDTH, WNDMSG_HEIGHT,
hWnd, NULL, hInst, NULL);
SendMessage(msg_hWnd, WM_SETFONT, (WPARAM)hFont, TRUE);
}


88 名前:デフォルトの名無しさん :2005/05/31(火) 14:24:59
m9(^Д^)プギャーーーッ!

89 名前:デフォルトの名無しさん :2005/05/31(火) 15:08:37
やはwwwwwwwwwwwwwwwwwwうぇwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww

90 名前:デフォルトの名無しさん :2005/05/31(火) 15:09:32
>>80
timeSetEvent() とか SetWaitableTimer() とかは?

91 名前:デフォルトの名無しさん :2005/05/31(火) 21:12:03
タイマーは、呼び出される関数のポインタをNULLにするとメッセージで来るんだけどな
正確なのがほしけりゃマルチメディアタイマー使ったら

92 名前:デフォルトの名無しさん :2005/05/31(火) 21:40:11
スレッドとプロセスの違いを教えてください。

93 名前:デフォルトの名無しさん :2005/05/31(火) 21:42:22
それはいい所に気付いたね。

94 名前:デフォルトの名無しさん :2005/05/31(火) 21:56:30
DirectDrawあたりのSetDisplayModeとかそのへんで
適当に解像度を落としてから解像度を戻すと
Windowの配置が目茶目茶になるので
EnumWindowsとGet/SetWindowPlacementで処理したは良いが、
なぜか最大化しているWindowがタスクバーの下にえぐれてしまうのです。
タスクバーに適当にメッセージでも流せば戻るのかと思ったんですが
試した限りでは駄目でした。

タスクバーのエッジをクリックするとか、何か新しいWindowでも開くと直るのですが
何とかする手立ては無いんでしょうか。

ちなみにWindows2000上でしか試していませんので他の環境では分かりません。

95 名前:デフォルトの名無しさん :2005/05/31(火) 22:23:20
質問させて頂きます。
アクセラレータのメッセージが親ウィンドウに来ないで
そのときフォーカスのある子ウィンドウに行くようになってしまったのですが
私は何をしてしまったのでしょうか。

96 名前:デフォルトの名無しさん :2005/05/31(火) 22:24:45
ミス。

97 名前:デフォルトの名無しさん :2005/05/31(火) 22:59:43
アクセラレータはTransrateMessageだけど
何か思い当たる事ないか

98 名前:デフォルトの名無しさん :2005/05/31(火) 23:16:21
TranslateAcceleratorじゃなかったっけ

99 名前:デフォルトの名無しさん :2005/05/31(火) 23:23:42
イベントログファイル(*.evt)からイベント情報を取得してダンプするためには、
ReadEventLog関数を用いて1つずつレコードの内容をファイル等に書き出して
いくしかないのでしょうか?
もし書き込み用関数やサンプルソース等がありましたら教えて頂きたいので
よろしくお願いします。

100 名前:デフォルトの名無しさん :2005/05/31(火) 23:24:31
>なぜか最大化しているWindowがタスクバーの下にえぐれてしまうのです。
えぐれる?

101 名前:明日のために :2005/05/31(火) 23:30:46
えぐるように打つべし!

102 名前:デフォルトの名無しさん :2005/05/31(火) 23:53:51
>>95
TranslateAccelerator( HWND hWnd, HACCEL hAccTable, LPMSG lpMsg );
このHWNDに、呼び出すその時のMSG構造体のHWND渡してるとかじゃないか?


103 名前:94 :2005/06/01(水) 00:00:42
最大化Windowがタスクバーの下にもぐりこんでいる状態と言えばいいでしょうか。

104 名前:デフォルトの名無しさん :2005/06/01(水) 00:05:18
普通に最大化するとタスクバーを避けるように大きさが決まるのに解像度変更から
復帰したときはなぜかタスクバーを無視して最大化されてしまうってこと?

105 名前:デフォルトの名無しさん :2005/06/01(水) 00:12:15
タスクバーが原点方向(左・上)にあるときの話ならGetWindowPlacement/SetWindowPlacementの仕様上の問題。というか罠。

106 名前:デフォルトの名無しさん :2005/06/01(水) 01:21:58
XPでWindowsキー + [U]を押してユーティリティ マネージャーを開くと、
まずsystemアカウントでutilman.exeが起動して、その子プロセスとして
現在ログオンしているユーザーの権限でutilman.exeが実行されているのですが、
どうやってパスワードなしで現在のユーザーのトークンを得ているのでしょうか?

107 名前:94 :2005/06/01(水) 01:27:27
>>104
そんな感じですかね。SetWindowPlacementすると
最大化していたWindowがタスクバーの下に滑り込んでしまいます。

>>105
一応タスクバーはBottomに置いてあります。
今確認したところ左と上の時はいい感じですが、
右と下だとやっぱりタスクバーを無視した感じのサイズになるようです。

108 名前:デフォルトの名無しさん :2005/06/01(水) 02:15:02
>>99

BackupEventLog()じゃダメ?
リモート接続ならリモート先にしか保存できないという素敵な関数さんだけど

情報メッセージとかちゃんと変換して吐き出すなら
1レコード読み込んで吐き出すしかないと思われ

109 名前:95 :2005/06/01(水) 03:35:46
>>102
その通りでした。
「猫でも〜」を見て作ったときは
TranslateAccelerator(hWnd, hAccel, &msg)
としていたのですが、VCにひな形を作ってもらうと
TranslateAccelerator(msg.hwnd, hAccelTable, &msg)
このように作るようです。
どうもありがとうございました。

110 名前:デフォルトの名無しさん :2005/06/01(水) 04:16:01
今までWANIPの取得はENVを表示するCGIにアクセスさせて取得させていたのですが
WANIPを取得できるような関数ってありますか?

111 名前:デフォルトの名無しさん :2005/06/01(水) 05:51:38
>>110
残念ながらOSが管理してる情報じゃないのでそんなAPIはありません


112 名前:デフォルトの名無しさん :2005/06/01(水) 06:21:20
>>110
DDNSで登録しといて、Winsockでgethostbynameするとか

113 名前:デフォルトの名無しさん :2005/06/01(水) 08:57:15
>>110
UPnPに対応しているルータならUPnPで取れる

114 名前:110 :2005/06/01(水) 12:19:53
皆さんレスありがとうございます。検討してみます。
とても参考になりました。

115 名前:デフォルトの名無しさん :2005/06/01(水) 12:21:30
チルトホイールマウスのチルトに反応するにはどうしたらよいのでしょうか?

116 名前:デフォルトの名無しさん :2005/06/01(水) 13:41:10
・spyでなんかメッセージが出てないか見る
・MSでそれっぽいSDKが出てないか探してみる

117 名前:デフォルトの名無しさん :2005/06/01(水) 19:13:50
質問です。
スクリーンセーバーを作りたいのですが、
外部シンボル 'WinMain' が未解決
とエラーがでてしまいます。
ソースは「猫でも〜」のコピペなので間違いはないと思います。
コンパイラはBCCで開発環境はBCCDeveloperです。
原因があるとすればどこでしょうか?

118 名前:デフォルトの名無しさん :2005/06/01(水) 19:22:10
>>117
猫にはscrnsave.libを使うと書いてあるだろうが、これはVC++の本当のライブラリで、BCCには存在しない。
DLLのインポートライブラリではないからimplibで解決できるわけでもない。

119 名前:デフォルトの名無しさん :2005/06/01(水) 19:37:13
>>117
写したから間違いは無いと思うその思考がまず間違い
人間とは間違うはずの無いところで間違うもの

何よりも、間違いが無いならエラーが出るわけがない
エラーが出るということは間違っているということ


120 名前:デフォルトの名無しさん :2005/06/01(水) 19:52:01
>118-119
dクス ( ノД`)゚・。

121 名前:デフォルトの名無しさん :2005/06/01(水) 19:56:16
>>120
http://homepage2.nifty.com/tenk/prog/scrnsvr.htm

122 名前:デフォルトの名無しさん :2005/06/01(水) 20:25:41
>121
クスコ

123 名前:デフォルトの名無しさん :2005/06/01(水) 20:33:55
>>108
レスくれてありがとうございます。
BackupEventLog関数でファイルそのものを
バックアップすることはできるのですが、
1レコード読み込んで、そのメッセージ内容を
dllから読み込み変換、ファイルに出力という事を
やろうとしています。
そういう処理は、LoadLibrary、ReadEventLog、FormatMessage等を
駆使してやるしかなさそうですね。
数少ないながらもネット上にサンプルがありまして、
参考にして何とか実装することができました。

Windowsのイベントビューア上で、「ログファイルの名前を付けて保存」と
同じ事をしたいわけですが、どういう実装になってるか予想できますか?
(それ使えばいちいち作らなくてもいいわけですが…)

124 名前:デフォルトの名無しさん :2005/06/01(水) 20:59:33
>>123
プラットフォームSDKにサンプルがあったような希ガス。

125 名前:デフォルトの名無しさん :2005/06/01(水) 21:26:57
>>124
Platform SDKではないですが、サンプルがあっさりと見つかりました。
英語の本家サイトもきちんとチェックするようにしないといけませんね。反省。
ttp://msdn.microsoft.com/library/default.asp?url=/library/en-us/debug/base/reading_the_event_log.asp

自分が作成したものとは全く違うわけで…。
自分の場合は、ログのレコードを格納するためのバッファのサイズを
取得するために、ReadEventLog関数を2回呼び出すようにしていました。

126 名前:デフォルトの名無しさん :2005/06/02(木) 02:41:30
質問です。

現在、テキストエディタを制作しているのですが、
保存処理で詰まっています。

CreateWindow()で生成したエディットコントロールから文字数を
取得してmalloc()でその分のバッファを用意します。
そのバッファにエディットコントロールの内容をコピーして、
WriteFile()でファイルに書き込む、という感で作りたいのですが
どうすればエディットコントロール文字数を取得できるのか
がわかりません。どうすればいいのでしょうか?




127 名前:デフォルトの名無しさん :2005/06/02(木) 03:19:19
エディットコントロールはコントロールの一つ。
コントロールはウィンドウの一種だ。
Windowsは1個のウィンドウに対して一つの名前(文字列)を付けることが出来、
その名前を操作するためのAPIを提供している。

タイトルバーのタイトル文字列はメインウィンドウの名前を表示している。
そして、コントロールはこの名前(文字列)をスタティックコントロールの文字列や
エディットコントールの編集しているテキストとして扱っている。


128 名前:126 :2005/06/02(木) 03:30:46
>>127
ありがとうございます。
GetWindowText()ってことですよね?
GetWindowText()でバッファに文字列を格納する前に
malloc()でバッファを作りたいのですが・・・


129 名前:デフォルトの名無しさん :2005/06/02(木) 03:32:59
つGetWindowTextLength

130 名前:126 :2005/06/02(木) 03:57:33
>>127 >>129
ありがとうございます!解決しました。
こんな関数があったとは知りませんでした。


131 名前:デフォルトの名無しさん :2005/06/02(木) 05:20:50
こんな関数があったとはって、MSDNでGetWIndowTextの次に出てくるんだがなぁ・・・

132 名前:デフォルトの名無しさん :2005/06/02(木) 07:20:41
こういう奴はいつまでたっても無能

133 名前:デフォルトの名無しさん :2005/06/02(木) 10:32:13
無能といえば無能だが、title bar の caption を取るのも GetWindowText() ってのは
最初はとっつきにくい感じはある。空の window で文字列があるのは title bar
だけだから text はそこしかないが、多くの window にはあちこちに text が
あるように「見えて」そんなことは最初は分りにくい。
dialog には GetDlgItemText() が用意されているが、GetEditControlText() や
GetTitleBarText() とかあると直感的には分りやすいと思う。
マクロ定義で済むのにね。

134 名前:デフォルトの名無しさん :2005/06/02(木) 11:01:07
違うだろGetWindowTextLengthを探せないのが無能なんだよ

135 名前:デフォルトの名無しさん :2005/06/02(木) 13:43:04
>>133
Edit_GetText()

136 名前:デフォルトの名無しさん :2005/06/02(木) 17:09:06
ISAPIの一覧が見たいのですがどこにあるかわかりますでしょうか?

137 名前:デフォルトの名無しさん :2005/06/02(木) 20:25:44
16x16のビットマップをアイコンとして使用したいのですが
hIcon = LoadImage(hInst, "test.bmp", IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE);
としてロードしたものを
ImageList_AddIcon(hIList, hIcon)
として利用可能でしょうか?


138 名前:デフォルトの名無しさん :2005/06/02(木) 20:48:46
Altキーを押したり、マウスカーソルを一番上に持っていった時だけメニューが出るようにするAPIはどれ?

139 名前:デフォルトの名無しさん :2005/06/02(木) 20:49:40
無い

140 名前:デフォルトの名無しさん :2005/06/02(木) 21:04:56
ビットマップを横に並べて表示させたいのですが、
何も表示されません
case WM_PAINT:
hdc = BeginPaint(hWnd , &ps);
for(i = 0;i > 256;i+=64) {
BitBlt(hdc , i , 0 , 64 , 64 ,
hMem2 , 0 , 0 , SRCCOPY);
BitBlt(hdc , i , 0 , 64 , 64 ,
hMem1 , 0 , 0 , SRCCOPY);
}
EndPaint(hWnd , &ps);
break;
原因を教えてください。お願いします。

141 名前:デフォルトの名無しさん :2005/06/02(木) 21:06:48
ループが1回も回らないから。

142 名前:デフォルトの名無しさん :2005/06/02(木) 21:10:56
>>133
それはWindowsのWindowの構造が理解できてないからだ

>>137
LoadImageでIMAGE_BITMAPで何が返って来ると思う?
てか似たような質問前スレにもあったぞ

>>140
まずhMem1とhMem2の出所を教えてくれ

143 名前:140 :2005/06/02(木) 21:18:55
HDC hdc;
static HDC hMem1 , hMem2;//メモリデバイスコンテキスト
PAINTSTRUCT ps;
HBITMAP hBmp;
int i;

case WM_CREATE:
hdc = GetDC(hWnd);
hBmp = LoadBitmap(
((LPCREATESTRUCT)lp)->hInstance ,
TEXT("BASE")
);
hMem1 = CreateCompatibleDC(hdc);
SelectObject(hMem1 , hBmp);
DeleteObject(hBmp);
hBmp = LoadBitmap(
((LPCREATESTRUCT)lp)->hInstance ,
TEXT("BASE_M")
);
hMem2 = CreateCompatibleDC(hdc);
SelectObject(hMem2 , hBmp);
DeleteObject(hBmp);
ReleaseDC(hWnd , hdc);
break;
小出しスマソ。
マスク画像を表示するプログラムにしようと思ってます。

144 名前:141 :2005/06/02(木) 21:26:30
俺は無視かい

145 名前:137 :2005/06/02(木) 21:26:48
>>142
すんません、過去ログみれないんです;;

146 名前:デフォルトの名無しさん :2005/06/02(木) 21:30:57
>144
スマソ。よく分かりません。。。

147 名前:141 :2005/06/02(木) 21:35:28
for(i = 0;i > 256;i+=64)
~~~~~~~

148 名前:デフォルトの名無しさん :2005/06/02(木) 21:39:24
>>137
最初のインスタンスハンドルはリソースを読み込むときに使うものだから、
LR_LOADFROMFILEを指定するときにはNULLで良い。

149 名前:デフォルトの名無しさん :2005/06/02(木) 21:40:33
>147
神様ありがとう。馬鹿だ漏れ。。。

150 名前:デフォルトの名無しさん :2005/06/02(木) 21:48:27
DeleteObject(hBmp);
もつっこんどいてやったほうが親切?

151 名前:137 :2005/06/02(木) 21:58:46
>>148
NULLですね・・すんません;;

で、やはり .bmpを読み込んで
ImageList_AddIconに渡しても-1が戻ってだめぽ、なんで
何らかの解決方法ってないですかね・・
bmpを読み込んで動的にiconに変換させるとか
そのままiconとして扱えるとか、お手軽なAPIとか手法はないものでしょうか?
おとなしくiconファイルに変換したものを渡した方が無難でしょうか・・・?

152 名前:デフォルトの名無しさん :2005/06/02(木) 22:27:07
CreateIconIndirect

153 名前:デフォルトの名無しさん :2005/06/02(木) 22:56:28
HDCをstaticにするのも感心しないが・・・

154 名前:デフォルトの名無しさん :2005/06/02(木) 22:58:04
NTFSに複数同時にログを書き込むと高確率でフラグメントが発生してしまうんですが
最終的に書き込むサイズが(だいたい)わかっている場合ヒントを与えるような仕組みってないですか?

155 名前:デフォルトの名無しさん :2005/06/02(木) 22:59:56
ファイルマッピングでやったら確実かもね

156 名前:デフォルトの名無しさん :2005/06/03(金) 00:01:02
>>154
SetFilePointer
SetEndOfFile

157 名前:149 :2005/06/03(金) 06:56:48
>150
ごめん、気になるから教えて神様。

>153
グローバルにすればいいですか?

158 名前:デフォルトの名無しさん :2005/06/03(金) 07:06:21
>>157
必要な時に宣言するという思考は無いのか?

159 名前:デフォルトの名無しさん :2005/06/03(金) 07:25:03
>>157
case の中でも、{ } でくくればブロックの先頭で変数の宣言できるよ

160 名前:デフォルトの名無しさん :2005/06/03(金) 07:48:36
そもそも複数の処理を記述するのに{}でブロックを作らないVCの雛型がおかしい

161 名前:デフォルトの名無しさん :2005/06/03(金) 09:25:27
そんな雛型に頼るのがおかしい。

162 名前:デフォルトの名無しさん :2005/06/03(金) 10:07:15
Windows 2000 で
USBメモリ等のリムーヴァブルメディアの
とりはずし操作
# 物理的なとりはずしではなく,
# 前もってOS上でやる「安全なとりはずし」
が行われたらそれを検知したいのですが,
方法はありますか?

163 名前:デフォルトの名無しさん :2005/06/03(金) 10:41:49
>>162
WM_DEVICECHANGEはどう?

164 名前:162 :2005/06/03(金) 10:54:46
>>163
いまドキュメントを読んでも
要領をえないんですが,

WM_DEVICECHANGE

が実際にメディアを抜いたときにくる
メッセージなんですか?

OS の「ハードウェアの取り出し」操作を
キャッチしたいのですが,
このメッセージでできるんでしょうか?

165 名前:デフォルトの名無しさん :2005/06/03(金) 10:56:04
質問する前に試せ

166 名前:163 :2005/06/03(金) 11:25:38
>>164
『OS のハードウェアの取り出し操作をキャッチ』というのは
ハードウェアの取り外しダイアログで[停止]ボタンを押したときのことか?
今試したらWM_DEVICECHANGEが来たぞ。
何かLPARAMに値がセットされてたが、それは面倒なので調べてないが。

(調査にはWin2000&WTLを使用)

167 名前:164 :2005/06/03(金) 12:31:29
>>166
> ハードウェアの取り外しダイアログで[停止]ボタンを押したときのことか?

まさにそれです

> 今試したらWM_DEVICECHANGEが来たぞ。

ならばいけそうです


168 名前:デフォルトの名無しさん :2005/06/03(金) 12:54:48
実際の経過時間を知りたいのですが。
time()やGetSystemTime()などでは時刻の設定をされたり「Windows Time
サービス」がSetSystemTimeAdjustment()をしていたりするので、正しい
経過時間が不明です。ハード的な誤差はあってもよいがソフト的な設定
による影響を避けたい。

169 名前:デフォルトの名無しさん :2005/06/03(金) 13:16:25
GetTickCount

170 名前:149 :2005/06/03(金) 13:45:23
>159-160
亀レスですが、よく分かりません。
詳細キボンです。

171 名前:デフォルトの名無しさん :2005/06/03(金) 13:55:11
>>170
こういうことかと思われ

×な例
case WM_PAINT:
  int a;

○な例
case WM_PAINT:
{
  int a;
}

172 名前:デフォルトの名無しさん :2005/06/03(金) 14:04:41
>>170
PAINTSTRUCT ps; が戦先頭にあったもんでね。
WM_PAINTでしか使わないようなこういうのは、
case WM_PAINT:
{
  PAINTSTRUCT ps;
  ・
  ・
  break;
}

とかね

173 名前:デフォルトの名無しさん :2005/06/03(金) 14:04:57
>171
な〜る。dクス

174 名前:149 :2005/06/03(金) 15:02:13
>172
d

しかし>>150の言いたいことがよく分かりません。
誰かつっこんでくれる方いませんか?

175 名前:デフォルトの名無しさん :2005/06/03(金) 15:28:11
>>174
hDCにSELECT中のhBmpをDeleteObjectしてどーすんの

176 名前:デフォルトの名無しさん :2005/06/03(金) 15:31:41
>169
望みどおりのことができました。ありがとうございます。

177 名前:164 :2005/06/03(金) 15:54:25
WM_DEVICECHANGE

このメッセージなんですが

> ハードウェアの取り外しダイアログで[停止]ボタンを押したときのことか?

のときにたしかにくるんですが,
当然,USBメモリをさしたときとか
CD をぬきさししたときにもきます.

このメッセージがきたときに

> ハードウェアの取り外しダイアログで[停止]ボタンを押したときのことか?

かどうかを判定し,どのドライヴ文字にわりあてられていた
記憶装置かを知ることはできますか?

178 名前:デフォルトの名無しさん :2005/06/03(金) 16:05:21
>>177
PlaformSDK or MSDN LibraryのWM_DEVICECHANGEの説明嫁


179 名前:149 :2005/06/03(金) 16:29:04
>175
dです。
つまり二番目のビットマップをロードする前に
Deleteする必要ないってことですか?

180 名前:デフォルトの名無しさん :2005/06/03(金) 16:35:38
>>179
おそらくそのDeleteObject失敗してるよ。
戻り値調べてごらん。
DeleteObjectするときは、hDCを使わなくなったときに
別のhBmpをSelectしたときに返ってくるhBmpを使うか
しないとね。

hDCにSelectされた状態でDeleteするなって書いてなかったか?

181 名前:180 :2005/06/03(金) 16:53:12
何か日本語変だけど、めんどくさいので察してくれたまい

182 名前:デフォルトの名無しさん :2005/06/03(金) 16:59:05
>>179
とりあえずおまいはMSDNをよーく読め

183 名前:180 :2005/06/03(金) 17:09:39
実際にやってみたらDeleteObjectはTRUEを返して
かつ表示はできてたな、、、、
まあやっちゃいけないことではあるが

184 名前:149 :2005/06/03(金) 17:18:27
>180
色々とdクス。
何となく理解できますた希ガス。

185 名前:デフォルトの名無しさん :2005/06/03(金) 19:52:24
すべての Windows API の関数プロトタイプを
プログラムから操作したいのですが、
API の宣言を、C 言語のヘッダーではなくて、
XML などの扱いやすい形式で入手することはできないでしょうか?

186 名前:デフォルトの名無しさん :2005/06/03(金) 19:55:18
フォルダ内のアイコンの表示位置を取得・設定することってできますか?

187 名前:デフォルトの名無しさん :2005/06/03(金) 19:58:54
>>186
マルチは芯でいいよ(´・ω・`)

188 名前:デフォルトの名無しさん :2005/06/03(金) 20:07:39
>>185
可能

189 名前:デフォルトの名無しさん :2005/06/03(金) 20:10:52
>>185
既に出来上がってる関数の宣言を弄って何をしようと言うのだ・・・

190 名前:デフォルトの名無しさん :2005/06/03(金) 20:17:45
>>189
とある言語で、Win32 API を使いたくて、
すべての宣言をコンバートしたい。

191 名前:デフォルトの名無しさん :2005/06/03(金) 21:39:03
昔のSDKはCSVで関数名とライブラリ名が
入ったファイルがついてたけど今は無いのかな

192 名前:デフォルトの名無しさん :2005/06/03(金) 21:41:06
関数名だけならBccのimpdefとかで取り出せばいいじゃないか。

193 名前:デフォルトの名無しさん :2005/06/03(金) 23:19:43
>>192
もちろん、プロトタイプが必要だよ。
構造体のサイズとかアラインメントとかも。

194 名前:デフォルトの名無しさん :2005/06/04(土) 01:59:14
とある言語ってなんだ?

195 名前:デフォルトの名無しさん :2005/06/04(土) 02:30:04
すいません、メインウィンドウのみで子ウィンドウを一つも
持たないアプリケーションがあってそのアプリケーション上で
ふつうにキー入力をする分には認識しますがプログラムで
メインウィンドウにWM_CHARを送っても認識していません。
恐らくそのアプリケーションでそういったことを対策してると思うのですが
どういったトリックを使ってるのでしょうか?教えてくださいお願いします

196 名前:デフォルトの名無しさん :2005/06/04(土) 02:33:21
ハァ?
WM_CHAR 以外でキー処理してるんじゃねーの?

197 名前:デフォルトの名無しさん :2005/06/04(土) 02:33:39
ちなみにそのアプリーションはdirectXを使っています。
明らかにメインウィンドウのほかにも別のコントロールが存在してると
思うのですがEnumChildWindowsでは検出できませんでした。

198 名前:デフォルトの名無しさん :2005/06/04(土) 02:34:08
>>196
馬鹿はすっこんでろボケ

199 名前:デフォルトの名無しさん :2005/06/04(土) 02:52:42
DirectX使ってるならWM_CHARでキー入力処理してないって推論で何も間違ってないと思うが。
煽り口調でレスされると中身とは無関係にとにかく煽り返さないと気が済まない人ですか?

200 名前:デフォルトの名無しさん :2005/06/04(土) 02:55:45
198はボクではありません

201 名前:デフォルトの名無しさん :2005/06/04(土) 03:59:15
200はボクではありません

202 名前:ボク :2005/06/04(土) 04:12:06
さて問題です。
ボクとは誰でしょうか?

203 名前:デフォルトの名無しさん :2005/06/04(土) 04:15:31
ボクではありません。

204 名前:デフォルトの名無しさん :2005/06/04(土) 05:23:14
急速にスレの質が低下してまいりました

205 名前:デフォルトの名無しさん :2005/06/04(土) 08:59:57
>>195
普通キー入力の処理はKEY_DOWN
DirectXアプリならDirectInput使ってる可能性もある

206 名前:デフォルトの名無しさん :2005/06/04(土) 09:32:17
ページテーブルを見たくてCR3を調べたのですが、変な値(1とか20hとか)しか出てきません。
この値は本当の値なのでしょうか、それとも例外ハンドラに引っかかってでたらめな値になっているのでしょうか?
ページテーブルを取得する方法があったら教えて下さい。

207 名前:デフォルトの名無しさん :2005/06/04(土) 10:05:32
ボクの振りしないでください。

208 名前:デフォルトの名無しさん :2005/06/04(土) 12:25:10
ボクボク、ボクだよ。
鯛焼き屋さんのおじさんに捕まっちゃった。
今まで盗った鯛焼き代払えって放してくれないんだよ。うぐぅ。
今すぐ口座に100万円振り込んでよ、
ねえ、アッコさん。

209 名前:デフォルトの名無しさん :2005/06/04(土) 13:13:59
現実と空想の区別がつかなくなった妄想オタが引っかかりそうだな。

210 名前:デフォルトの名無しさん :2005/06/04(土) 16:08:59
今あるCのプログラムでSTLを利用した機能をつけたいのですが、
C++で作成したdllやlibを、Cで作成したプログラムから使用することはできるのでしょうか?
(クラスを使用するとしてもライブラリの中だけで使用して、exportは行いません。)


211 名前:デフォルトの名無しさん :2005/06/04(土) 16:14:02
>>210
extern "C" でCリンケージを指定すれば、その関数は普通にCから使えるよ

212 名前:デフォルトの名無しさん :2005/06/04(土) 17:55:02
>>211
志村、逆! 逆!


213 名前:デフォルトの名無しさん :2005/06/04(土) 18:03:31
>>206
デバイスドライバ書いてください。

214 名前:デフォルトの名無しさん :2005/06/04(土) 19:51:49
>>212
逆じゃないだろ。

C++で作成するライブラリの外に見せる部分を
extern "C" {


}
で囲うのが正解。

Cからextern "C++"を使うのは邪道。

215 名前:デフォルトの名無しさん :2005/06/04(土) 19:53:42
>214
よく嫁よ

216 名前:デフォルトの名無しさん :2005/06/04(土) 20:08:49
Cの方を修正で ってことだよねぇ?
extern "C++"やるよりかは、C++の方直してやったほうが良いと思うに一票

ってかWinAPIと関係ねぇw

217 名前:デフォルトの名無しさん :2005/06/04(土) 20:13:25
C++でCリンケージが指定されてないんなら、ねーむあんまんぐる
された名前でCから呼ぶしかなくなるが、あれってCシンボルとして
つかっていい文字以外とかも使われてるからダメかもな。
試したことないからわからんが。

218 名前:デフォルトの名無しさん :2005/06/04(土) 20:54:49
>>210のやりたいことって、dllにするほどのことなんだろうか。
単に、Cで書いたobjファイルとC++で書いたobjファイルをリンクすればいいだけのような気もするが。

219 名前:デフォルトの名無しさん :2005/06/04(土) 21:19:17
>>218
それは今回の問題にはあまり関係がないけどな
どっちみちリンケージ指定は必要だし

220 名前:デフォルトの名無しさん :2005/06/04(土) 22:09:36
>>218



221 名前:デフォルトの名無しさん :2005/06/04(土) 23:44:23
ファイルマッピングって、メモリに読み込むわけじゃ無いんですか?

222 名前:デフォルトの名無しさん :2005/06/05(日) 00:01:03
アクセスする段階ではメモリに読み込まれている。仮想メモリの応用だな。
ttp://msdn.microsoft.com/library/default.asp?url=/library/en-us/dngenlib/html/msdn_manamemo.asp

223 名前:デフォルトの名無しさん :2005/06/05(日) 05:01:07
ローカルエリア接続に割り当てられたネットワークデバイスに
ネットワークケーブル(LANケーブル)が接続されているかどうかを検出するAPIってありますか?


224 名前:デフォルトの名無しさん :2005/06/05(日) 05:52:36
無い

225 名前:デフォルトの名無しさん :2005/06/05(日) 05:52:52
>>223
あります。

226 名前:デフォルトの名無しさん :2005/06/05(日) 09:42:08
>>225
あるというなら提示してみろ。

227 名前:デフォルトの名無しさん :2005/06/05(日) 09:51:51
ip helper apiにあるんでねーの?

228 名前:デフォルトの名無しさん :2005/06/05(日) 11:14:08
>>223
もちろんあるが、今、出先だから思い出せない。
ところで対象OSは何?

229 名前:デフォルトの名無しさん :2005/06/05(日) 13:27:35
ありますん

230 名前:デフォルトの名無しさん :2005/06/05(日) 14:14:41
有無だけ聞いているんだから有るだけでいいよ

231 名前:デフォルトの名無しさん :2005/06/05(日) 14:43:22
昔はヘルプファイルとかCSVファイルとかにAPIの一覧とか解説がビッシリあったのに
最近は凄く説明がいい加減になっているのは何故ですか?

もうAPIという物を無くしたいのかなM$は('A`)

232 名前:デフォルトの名無しさん :2005/06/05(日) 14:54:20
昔はなかったサンプルコードが増えてる

233 名前:223 :2005/06/05(日) 16:55:17
GetIfEntry()でネットワークケーブルの接続されているか検出できました。
MibIfRowのdwOperStatusで5だったら接続されてて0だったら切断されてるっぽいです。
それ以外のステータスがよくわからない・・・orz

234 名前:デフォルトの名無しさん :2005/06/05(日) 17:10:14
>>231
Blogや掲示板が増えている。

235 名前:デフォルトの名無しさん :2005/06/05(日) 17:56:49
>>231
日本語ドキュメント作るのマンドクセ(M$談)

236 名前:デフォルトの名無しさん :2005/06/05(日) 19:14:36
GetWindowModuleFileName()って役立たず?

237 名前:デフォルトの名無しさん :2005/06/05(日) 19:25:15
うん

238 名前:デフォルトの名無しさん :2005/06/05(日) 19:31:49
オマエのチソコと同じだなww

239 名前:デフォルトの名無しさん :2005/06/05(日) 19:32:32
Windows XP上で、FDからプログラムを立ち上げた場合、プログラム中でスレッドを作成
(CreateThread()や_beginthreadex()を実行)するたびにディスクへのアクセスを行うようです。
おそらく、ライブラリを検索しているんだと思うのですが(違っていたらご指摘ください)、
この(FDへの)ディスクアクセスを抑制する方法がありましたらご教示ください。

240 名前:デフォルトの名無しさん :2005/06/05(日) 19:33:56
スマン、知らん

241 名前:デフォルトの名無しさん :2005/06/05(日) 19:34:35
SetCurrentDirectory

242 名前:デフォルトの名無しさん :2005/06/05(日) 19:50:27
>>241
ありがとうございます。早速試してみたのですが、残念ながらだめでした。
どうやらカレントディレクトリを調べているというわけではなさそうです。
ちなみに、リストビューのアイテムを最初にクリックしたときも >>239 と同じ現象が見られるんですよね…。

243 名前:デフォルトの名無しさん :2005/06/05(日) 21:08:20
CDみたいなリムーバブルメディアから起動したときのための
何かがあった気がする

244 名前:239 :2005/06/05(日) 22:48:36
>>243
どうもありがとうございます。
で、ヒントをもとに探してみたのですがやっぱり分かりませんでした_| ̄|○

245 名前:デフォルトの名無しさん :2005/06/06(月) 00:30:36
>>243
たまたまAdvancedWindowsのメモリ管理のページ読んでたら、
それ関連の記述があった。リンク時に/SWAPRUNなんとかってオプション付けると、
実行時にメモリ上に実行イメージ全てを読み込むらしい。

98や2000だと、FDから実行した場合は標準で/SWAPRUNな動作になるらしいんだが、
それだと>>239みたいな動作にはならなさそうだよな。標準動作が変わったのかね?

246 名前:デフォルトの名無しさん :2005/06/06(月) 01:48:17
.exeのあるディレクトリを探索する何かが実行されてんだろうか
よそうだけど、SWAPRUNが影響するのは、
.exeとそれに暗黙にリンクされたdllだけだろうし・・・

247 名前:デフォルトの名無しさん :2005/06/06(月) 02:20:24
LoadLibraryとかが呼ばれるとexeのあるフォルダから検索される。

248 名前:239 :2005/06/06(月) 02:36:47
>>245
Advanced Windows を持っているのにそのあたりは読み飛ばしていました_| ̄|○
>>243 さんがおっしゃっているのは、どうやら /SWAPRUN のことみたいですね。
試していなかったのですが、Windows 98 と 2000 ではFDへのアクセスは発生しないようです。
しかし、リンク時に /SWAPRUN を付けてもXPだとやはりFDへのアクセスが発生してしまいます。

>>246 >>247
そうですね…「.exeのあるフォルダ」の情報を上書きするAPIでもあると
一気に解決するのですが、それも見つからないので困ってしまいます。

249 名前:デフォルトの名無しさん :2005/06/06(月) 12:37:02
こんにちは

ユーザーに色を選ばせる様なポップアップ
またはダイアログを表示したいんだけど、
VBのプロパティのBackColorで出てくるような
ポップアップとかChooseFontみたいな便利な
関数ってありますか?
やさしいお兄さん教えて

WinXPpro、VC++6.0

250 名前:デフォルトの名無しさん :2005/06/06(月) 13:27:54
ChooseColor


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