Win32API質問箱 Build86 at TECH
[2ch|▼Menu]
1:デフォルトの名無しさん
10/02/05 15:23:00
スレ立てるまでもない、Win32APIのついての質問はこちらへどうぞ。
やさしいお兄さんやお姉さんたちが答えてくれるかも。
「知らないならレスしないで下さい。ウザイだけです。 」なんて言わないでねっ!

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

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

- Win32API質問箱 wiki
URLリンク(wiki.livedoor.jp)

Win32API質問箱 Build85
スレリンク(tech板)

2:デフォルトの名無しさん
10/02/05 15:23:45
84 スレリンク(tech板)
83 スレリンク(tech板)
82 スレリンク(tech板)
81 スレリンク(tech板)
80 スレリンク(tech板)
79 スレリンク(tech板)
78 スレリンク(tech板)
77 スレリンク(tech板)
76 スレリンク(tech板)
75 スレリンク(tech板)
74 スレリンク(tech板)
73 スレリンク(tech板)
72 スレリンク(tech板)
71 スレリンク(tech板)
70 スレリンク(tech板)
69 スレリンク(tech板)
68 スレリンク(tech板)
67 スレリンク(tech板)
66 スレリンク(tech板)
65 スレリンク(tech板)
64 スレリンク(tech板)
63 スレリンク(tech板)
62 スレリンク(tech板)
61 スレリンク(tech板)

3:デフォルトの名無しさん
10/02/05 15:23:57
60 スレリンク(tech板)
59 スレリンク(tech板)
58 スレリンク(tech板)
57 スレリンク(tech板)
56 スレリンク(tech板)
55 スレリンク(tech板)
54 スレリンク(tech板)
53 スレリンク(tech板)
52 スレリンク(tech板)
51 スレリンク(tech板)
50 スレリンク(tech板)
49 スレリンク(tech板)
48 スレリンク(tech板)
47 スレリンク(tech板)
46 スレリンク(tech板)
45 スレリンク(tech板)
44 スレリンク(tech板)
43 スレリンク(tech板)
42 スレリンク(tech板)
41 スレリンク(tech板)
40 スレリンク(tech板)
39 スレリンク(tech板)
38 スレリンク(tech板)
37 スレリンク(tech板)
36 スレリンク(tech板)
35 スレリンク(tech板)
34 スレリンク(tech板)
33 スレリンク(tech板)
32 スレリンク(tech板)
31 スレリンク(tech板)

4:デフォルトの名無しさん
10/02/05 15:24:06
30 スレリンク(tech板)
29 スレリンク(tech板)
28 スレリンク(tech板)
27 スレリンク(tech板)
26 スレリンク(tech板)
25 スレリンク(tech板)
24 スレリンク(tech板)
23 スレリンク(tech板)
22 スレリンク(tech板)
21 スレリンク(tech板)
20 スレリンク(tech板)
19 スレリンク(tech板)
18 スレリンク(tech板)
17 スレリンク(tech板)
16 スレリンク(tech板)
15 スレリンク(tech板)
14 URLリンク(pc5.2ch.net)
13 URLリンク(pc5.2ch.net)
12 URLリンク(pc5.2ch.net)
11 URLリンク(pc5.2ch.net)
10 URLリンク(pc5.2ch.net)
9 URLリンク(pc5.2ch.net)
8 URLリンク(pc5.2ch.net)
7 URLリンク(pc3.2ch.net)
6 URLリンク(pc3.2ch.net)
5 URLリンク(pc3.2ch.net)
4 URLリンク(pc3.2ch.net)
3 URLリンク(pc.2ch.net)
2 URLリンク(pc.2ch.net)
1 URLリンク(pc.2ch.net)

5:デフォルトの名無しさん
10/02/05 15:24:34
引き続きクソスレクソレスの嵐をお楽しみください

6:デフォルトの名無しさん
10/02/05 15:31:55
前スレの991さんへ

これですこれです
出来ましたありがたや

7:デフォルトの名無しさん
10/02/05 15:35:19
それじゃない
それじゃない
コンソールアプリとして組んで(int mainエントリー)
GUIも使う
それが出来てからWinMainエントリーなGUIアプリ
に改造する
これが常道。
WinMainから始めるのは外道

8:デフォルトの名無しさん
10/02/05 15:40:42
そんなやり方もあるんですか?
よかったらそれも教えてください
subsystemスイッチを消すとエントリポイントを勝手に探してくれるのは知ってるけど
GUI用のメッセージキューとか?は
どうやって準備するんですか?

9:デフォルトの名無しさん
10/02/05 15:45:06
てか今時コンソールにメッセージ出すんじゃなくて
ファイルにHTMLとかでメッセージ出したほうが
見やすくね?表とかに整形して出すこととか
出来るし、フォントの大きさも色も変えられるし...

10:デフォルトの名無しさん
10/02/05 15:45:17
何も変わらない
WinMainがなにか用意してくれたか?

11:デフォルトの名無しさん
10/02/05 15:54:32
なるほど。hInstanceにGetModuleHandle(NULL)渡したら普通に出来ました
こっちはGUIが終了してもコンソールは残るのか

12:デフォルトの名無しさん
10/02/05 16:20:55
>>7
実は外道と常道なんてちょっとした差
でしかないという考えもある。ブラウザ
とかインフラが揃っておるご時世、
UNIXのシェルアプリのような組み合わせ
て使ってナンボなアプリにするわけでもな
きゃ、最初からコンソール出力はせず
>>9のようにリアルタイムにHTML出
力してブラウザでログを眺めるというよう
なやり方もありだとオモ

13:デフォルトの名無しさん
10/02/05 16:45:27
いつまでもあると思うなカネとブラウザ
ってか?

14:デフォルトの名無しさん
10/02/05 16:48:12
できた!
int test()
{
 HKEY hRootKey;
 char KeyName[512];
 strcpy(KeyName, "SOFTWARE\\Microsoft\\NET Framework Setup\\NDP\\v2.0.50727");
 if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, KeyName, 0, KEY_READ, &hRootKey) != ERROR_SUCCESS) {
  printf("err!\n");
  return 0;
 }
 DWORD dwType, DWordValue, cbBuff;
 dwType = REG_DWORD;
 cbBuff = sizeof(DWordValue);
 if (RegQueryValueEx(hRootKey, "Install", NULL, &dwType, (LPBYTE)&DWordValue, &cbBuff) != ERROR_SUCCESS) {
  RegCloseKey(hRootKey);
  printf("err!\n");
  return 0;
 }
 RegCloseKey(hRootKey);
 printf("dwType=%d\n", dwType);
 printf("DWordValue=%d\n", DWordValue);
 return 0;
}

15:デフォルトの名無しさん
10/02/05 17:15:15
Ctrl+Oでファイルを開くとかのアクセラレータキーって
対応するメニューアイテムないと使えないんでしょうか

ショートカットキー込で再利用できる部品を作れないかと思ったんですが
メニューアイテムとセットになってるんだとすると
そういう部品化は出来ないってことになりますよね?

16:デフォルトの名無しさん
10/02/05 18:27:16
独自でアクセラレータテーブル作って非メニューコマンドを実装することはできる
CreateAcceleratorTable()で作ったハンドルをTranslateAccelerator()に渡すだけでよい
複数のハンドル作れば、PCゲームみたいな1つの操作に複数のキー割り当て的なこともできる

17:デフォルトの名無しさん
10/02/06 04:28:49
EnumWindowsて先に起動された順に列挙していくの?

18:デフォルトの名無しさん
10/02/06 09:05:10
何を言ってるんだ

19:デフォルトの名無しさん
10/02/06 11:07:19
だから
早く起動されたアプリの情報から順番に
プロシージャへ渡されるの?

20:デフォルトの名無しさん
10/02/06 11:10:35
EnumWindows で取得できるウィンドウと、プロセスには直接の関係はない。

21:デフォルトの名無しさん
10/02/06 19:00:01
Win32APIって.netでも使えますか

22:デフォルトの名無しさん
10/02/06 20:57:55
使えます。

23:デフォルトの名無しさん
10/02/06 22:42:13
Wikipedia項目リンク


24:デフォルトの名無しさん
10/02/07 00:03:34
うぃなぴ

25:デフォルトの名無しさん
10/02/07 06:06:38
全スレは史上最低の無駄スレだったな

26:デフォルトの名無しさん
10/02/07 10:02:41
そうだなすべてが無駄だ

27:デフォルトの名無しさん
10/02/07 13:32:15
winsockとSocketクラスってどっちが優れてるの

28:デフォルトの名無しさん
10/02/07 13:49:03


Socketクラスはwinsockで実装されてるんじゃないかな

29:デフォルトの名無しさん
10/02/07 14:11:27
ツールバーのボタンの右横に、▼マークのついた
メニューボタンをつけるにはどうしたらいいの?

30:デフォルトの名無しさん
10/02/07 14:16:36
TB_SETEXTENDEDSTYLEとTBSTYLE_EX_DRAWDDARROWS

31:デフォルトの名無しさん
10/02/07 14:43:01
有名なこのサイト
URLリンク(www.kumei.ne.jp)
信頼度は高いですか?

32:デフォルトの名無しさん
10/02/07 14:47:28
うまくいかないと思ったらMSDN確認するくらいの気で行けば平気

33:デフォルトの名無しさん
10/02/07 14:48:25
本家というかMSDNライブラリ(>>1)を信頼したほうがいい

34:デフォルトの名無しさん
10/02/07 17:07:56
apiで数式エディタを作りたいのですが
参考になるサイト等がありましたら教えて

35:デフォルトの名無しさん
10/02/07 17:12:54
URLリンク(msdn.microsoft.com)

36:デフォルトの名無しさん
10/02/07 17:17:29
参考になるサイトっていうのは
APIで数式エディタを作ろう!みたいなタイトルでサンプル提供してるような所を指してるの?
そんなニッチなもんあるわけねえだろ

37:デフォルトの名無しさん
10/02/07 17:29:32
数式エディタは難しいよ
Σとかどうやって作るんだよ

38:デフォルトの名無しさん
10/02/07 17:35:54
>>30
ありがとう

39:デフォルトの名無しさん
10/02/07 18:16:44
>>34
こんなんあるけど↓ ???
URLリンク(www.vector.co.jp)


40:デフォルトの名無しさん
10/02/07 19:17:50
数式を表示できるソフト普及するよりは、コンピュータに適した形で
数式の体系自体を変えるべきだと思うんだ

41:デフォルトの名無しさん
10/02/08 02:59:53
Tex最強!

42:デフォルトの名無しさん
10/02/08 18:02:11
ツールバーのドロップダウンメニューにチェックマークを付けたいのに
クリックしても何もおこらないんですがなんでですかねえ

HWND hToolbar;
HMENU hPopupMenu;

LRESULT CALLBACK WndProc(HWND hwnd , UINT msg , WPARAM wp , LPARAM lp) {
switch (msg) {
case WM_COMMAND: {
if(LOWORD(wp) == 50){
MENUITEMINFO info;
info.cbSize = sizeof(info);
info.fMask = MIIM_STATE;
GetMenuItemInfo(hPopupMenu, 50, false, &info);
if(info.fState == MFS_CHECKED){
info.fState = MFS_UNCHECKED;
SetMenuItemInfo(hPopupMenu, 50, false, &info);
} else {
info.fState = MFS_CHECKED;
SetMenuItemInfo(hPopupMenu, 50, false, &info);
}
DrawMenuBar(hToolbar);
}
return 0;
}

43:デフォルトの名無しさん
10/02/08 18:03:23
つづき
case WM_NOTIFY:{
#define lpNM ((LPNMHDR)lp)
#define lpnmTB ((LPNMTOOLBAR)lp)
RECT rc;
TPMPARAMS tpm;
if(lpNM->hwndFrom == hToolbar && lpNM->code == TBN_DROPDOWN){
SendMessage(lpnmTB->hdr.hwndFrom, TB_GETRECT,
(WPARAM)lpnmTB->iItem, (LPARAM)&rc);
MapWindowPoints(lpnmTB->hdr.hwndFrom,
HWND_DESKTOP, (LPPOINT)&rc, 2);
tpm.cbSize = sizeof(TPMPARAMS);
tpm.rcExclude.top = rc.top;
tpm.rcExclude.left = rc.left;
tpm.rcExclude.bottom = rc.bottom;
tpm.rcExclude.right = rc.right;
hPopupMenu = CreatePopupMenu();
AppendMenu(hPopupMenu, 0, 50, TEXT("開く(&O)"));
TrackPopupMenuEx(hPopupMenu,
TPM_LEFTALIGN| TPM_LEFTBUTTON| TPM_VERTICAL,
rc.left, rc.bottom, hwnd, &tpm);
DrawMenuBar(hToolbar);
}

44:デフォルトの名無しさん
10/02/08 23:15:32
Windowsで開発したことないんですが、
あるスレッドが複数のイベントを待ちたい場合ってどういうふうに
設計するのが一般的でしょうか?

複数のイベントとは、片方はソケットからの入力、
もう片方は他のスレッドからの要求です。

MsgWaitForMultipleObjectはソケットが待てないっぽいんで。
環境はCで、MFCなしです。

45:デフォルトの名無しさん
10/02/09 00:35:34
windowsプログラミングでオブジェクト指向なコードが書きたいときって、アンマネージド限定でどうするのがベター?
メインウィンドウのプロシージャに振り回されて、まともな設計ができない

46:デフォルトの名無しさん
10/02/09 00:46:55
>>44
むしろ、MsgWaitForMultpleObjectでソケットが待てないソースを教えてほしい。
WaitForMultipleObjectsとかでもソケット使えるのだから、
直感的にはMsgWaitForMultpleObjectでダメとは思えないのだけど。

47:デフォルトの名無しさん
10/02/09 00:51:09
>>45
つMFC

48:デフォルトの名無しさん
10/02/09 00:56:55
>>45
Windows API自体オブジェクト指向の固まりだと言うことに気付け。
ハンドル1つ1つがインスタンス。

それはともかく、ウィンドウプロシージャをクラスのメンバ関数にする方法は
いくつかあって誰か書いているはずだから、ググれば見つかる。
それでメインウィンドウという括りで1つのクラスが出来上がる。

49:デフォルトの名無しさん
10/02/09 00:59:20
ExtTextOutで文字を表示する時に等間隔にしてくれるような関数ありますか?
例えば日本語(全角)5文字表示する所に半角10文字のスペースを上書きしても
日本語の方が横長みたいで全て埋まらないのです

まとめると、全角5文字を半角10文字のスペースできっちり埋めれるようにするような関数はありますか?


50:デフォルトの名無しさん
10/02/09 01:06:27
等幅フォントは?

51:デフォルトの名無しさん
10/02/09 01:13:26
>>50
CreateFontのcharsetに等幅フォントやってみようと思います
ありがとうございました


52:デフォルトの名無しさん
10/02/09 02:40:04
>>45
WTLもあるよ

53:44
10/02/09 08:44:11
>>46
*WaitFor*Objectで待てるものに、ソケットが対象になっていませんでした。
ハンドルしか待てないからソケットは待てないと思っているのですが、
何か方法があるのでしょうか?
単純に待つハンドルの配列にソケットを突っ込めばいけてしまうとかでしょうか?

MFCのAPIを使えば、ソケットとハンドルが関連付けられてWaitFor*でも
待てるっぽいところまでは分かったのですが、今回はMFCが使えないので…。

54:デフォルトの名無しさん
10/02/09 09:06:56
>>43
毎回CreatePopupMenu呼んでるから

55:デフォルトの名無しさん
10/02/09 09:40:54
他のスレッドからの要求もソケットでやればいいな

56:デフォルトの名無しさん
10/02/09 09:42:19
>>44
WSAEventSelect

57:デフォルトの名無しさん
10/02/09 11:54:22
CSSパーザ探してます。
だいぶ昔に作り捨てたプログラムではスタイルシートをres:プロトコルでIEコン
ポーネントに流し込む手法を使いましたが、この方法は使えなくなってしまった
ようで、IHTMLStyleSheet::addRuleで流し込む必要ががあるようです。

元データ自体はCSSの文法で持ちたいので、C/C++から利用できるフリーのCSSパー
ザまたはIEコンポーネントの再利用法は有りませんか?

58:デフォルトの名無しさん
10/02/09 12:57:07
>>57です
正規表現だけでいけるような気がしてきたので質問取り下げます。

59:デフォルトの名無しさん
10/02/09 15:54:13
TEXTマクロって1バイト文字には使わなくていいんだよね?

60:デフォルトの名無しさん
10/02/09 16:09:28
_tcslen()に1バイト文字入れてみ


61:デフォルトの名無しさん
10/02/09 16:48:18
unicode/MBCSをコンパイルオプションで切り替える、ってことをしないならTEXT自体使わなくていい。
切り替えるからTEXT使う、なら基本は全部に使う。(処理の詳細的に使わない場合はあり得る)
切り替えないけどLよりTEXTが好き、でも別にいい。

だいぶスレ違いな気がする。

62:デフォルトの名無しさん
10/02/09 19:06:03
ファイルが関連付いているアプリケーションのアイコンを取得したいと思っています。
ExtractAssociatedIcon という API を使用すると 32 x 32 のアイコンしか取得することができません。
48 x 48 のアイコンを取得したいのですが、どのようにすれば良いでしょうか?

63:デフォルトの名無しさん
10/02/09 22:50:25
漏れの記憶では
xn_resourceeditor

64:デフォルトの名無しさん
10/02/09 23:02:59
>>56
ありがとです。
いろいろ検討してみます。

65:デフォルトの名無しさん
10/02/10 04:59:51
IMPLEMENT_DYNAMIC(CCustomFileDialog, CFileDialog)

CCustomFileDialog::CCustomFileDialog(BOOL bOpenFileDialog, LPCTSTR lpszDefExt, LPCTSTR lpszFileName,
DWORD dwFlags, LPCTSTR lpszFilter, CWnd* pParentWnd) :
CFileDialog(bOpenFileDialog, lpszDefExt, lpszFileName, dwFlags, lpszFilter, pParentWnd)
{
m_customDlgPtr = this->GetIFileDialogCustomize();
if(m_customDlgPtr != NULL){
m_customDlgPtr->AddComboBox(IDC_COMOBOBOX1);
m_customDlgPtr->AddControlItem(IDC_COMOBOBOX1,101,L"foo");
m_customDlgPtr->AddControlItem(IDC_COMOBOBOX1,102,L"bar");
}
}

BOOL CCustomFileDialog::OnFileNameOK()
{
DWORD Item;
m_customDlgPtr->GetSelectedControlItem(IDC_COMOBOBOX1,&Item);
return CFileDialog::OnFileNameOK();
}

コンボボックスから選択中のアイテムを取得できたんだが、そこから文字列を取得する方法がわからない。
くぐってもさっぱり出てこないので教えてほしい。

66:デフォルトの名無しさん
10/02/10 10:35:41
コア別のCPU使用率を取得する方法を教えてください。


67:デフォルトの名無しさん
10/02/10 10:39:47
パフォーマンスカウンタの値を見る
パフォーマンスカウンタデータヘルパーAPIっていうバカ長い名前のAPIがあるのでそれを使います

68:デフォルトの名無しさん
10/02/10 10:41:47
使いかたの説明は面倒なので↓でも見て自分で考えてください
URLリンク(nienie.com)

69:デフォルトの名無しさん
10/02/10 12:31:50
>>65
記憶によると、comboboxの各アイテムに文字列へポインタをユーザ定義のデータと
して埋め込んでおく。

70:デフォルトの名無しさん
10/02/10 12:33:51
コントロールの文字を小さくするには?

71:デフォルトの名無しさん
10/02/10 12:39:16
小さいフォントをセットすればいい

72:デフォルトの名無しさん
10/02/10 19:46:50
>>65
選択中のならGetWindowText()でできた希ガス
リストボックスのほうならCB_GETLBTEXTとか

73:デフォルトの名無しさん
10/02/10 22:11:54
>>69
>>72
とんくす。

74:デフォルトの名無しさん
10/02/11 10:01:07
AnimateWindowでウインドウのフェードアウトをする方法を検索すると、
AW_BLEND | AW_HIDE としているのが見つかるのですが
msdnには、AW_BLENDとAW_HIDEを併用してはいけないと書いてあります。
どうやればいいのか教えてください。

75:デフォルトの名無しさん
10/02/11 10:52:41
英語版のMSDNにはそんな事書いてないけど、日本語版が間違ってるんじゃ?

76:デフォルトの名無しさん
10/02/11 10:55:07
日本語版は間違いだらけ
戻り値 True/False 間違えてて正反対の意味なんてことも


77:デフォルトの名無しさん
10/02/11 11:04:31
>>74
URLリンク(msdn.microsoft.com)

78:デフォルトの名無しさん
10/02/11 11:16:43
msdnに間違いがあるとは考えませんでした
ありがとうございました

79:デフォルトの名無しさん
10/02/11 11:29:18
MSDNだけじゃなくて
●●入門とかの言語とかフレームワークとかの書籍も結構致命的な間違いがある

80:デフォルトの名無しさん
10/02/11 15:40:49
ツールバーとステータスバー
両方画面の下に共存させるにはどうしたらいい?

81:デフォルトの名無しさん
10/02/11 15:51:32
>>76
APIは一度公開したらインターフェースを返ることは
出来ないからな。使われない余計なパラメータがあ
ったりするのはそういう理由だし。
時には内容はほぼ同じだがインターフェースだけ
変えたAPIとかあるらしいし。古いAPIの更新を
やめて新しいAPIとして管理していくというやり方
を取らざるを得ないケースも多いだろうし
結局数は増える一方。墓地の埋葬者名簿みたいな
もので正確性を永続的に保証できるものじゃない
だろ

82:デフォルトの名無しさん
10/02/11 15:55:56
日本語ページが正しくないことの言い訳としては筋違い。

83:デフォルトの名無しさん
10/02/11 16:20:50
>>81
その言い訳は「かつては正しかった」という根拠を出してからにしろ。

84:デフォルトの名無しさん
10/02/11 17:03:31
>>81
>墓地の埋葬者名簿
いいたとえだなw確かにそうだ

関数の戻り値の一貫性とか破綻してるから困ったもんだな・・・

85:デフォルトの名無しさん
10/02/11 17:54:48
MSの技術者でさえこんな設計するんだから
一般人のコードが汚くても誰も責めることはできない

86:デフォルトの名無しさん
10/02/11 17:58:55
>>85こういう奴と一緒に仕事はしたくないな。

87:デフォルトの名無しさん
10/02/11 19:46:47

いっしょにコードを
書きませんか?

   ∧_∧ [windows.h]
    (・ω・)丿 ッパ
.  ノ/  /
  ノ ̄ゝ

88:デフォルトの名無しさん
10/02/11 21:28:50
URLリンク(msdn.microsoft.com)
>Return Value
>  Not used.

URLリンク(msdn.microsoft.com)
>戻り値.
>関数が成功すると、0 以外の値が返ります。
>関数が失敗すると、0 が返ります。拡張エラー情報を取得するには、 関数を使います。


戻り値の説明が勝手に増えててしかも間違っている
翻訳ミスどころかゴミ埋め込んでどうするw

89:デフォルトの名無しさん
10/02/11 21:32:45
MSに言えよ

90:デフォルトの名無しさん
10/02/11 21:35:19
Win関連の訳本はASCII時代がよかったな、1000ページ本とかバンバンだしやがって・・・

91:デフォルトの名無しさん
10/02/11 21:36:52
肘で押えながら検証コード打ったりな

92:デフォルトの名無しさん
10/02/11 22:08:35
>>88
そもそも、何でNot usedなのにBOOL返すようになってるんだ?

93:デフォルトの名無しさん
10/02/11 22:11:51
>>92
元々 BOOL で使用されていたが
ドキュメントが糞で誰も使わなくなったから
Not used に書き直された

94:デフォルトの名無しさん
10/02/11 22:19:15
VC++でヘッダーコントロールを扱っていますが、
HDITEM hdi;
SendMessage(hwnd,HDM_GETITEM,0,(LPARAM)&hdi);
sprintf(str1,"%d",hdi.cxy)
でヘッダーアイテムの幅が取得できるはずなのですが、上手くいきません
参考書はVC++逆引き大辞典です
どうしたらいいでしょうか?

95:デフォルトの名無しさん
10/02/11 22:23:29
一応、FALSEを返す状況もあるんだけどな。

96:デフォルトの名無しさん
10/02/11 22:44:42
HttpQueryInfoでヘッダーの内容を全部文字で見たい場合に
HTTP_QUERY_RAW_HEADERS_CRLFを指定してるのですが
どうも中に書き込まれた情報は2バイトコードになっているようです
この辺の文字コードを切り替えるにはどうすればいいのでしょうか?

97:96
10/02/11 23:43:54
自己解決しました
参考にしたソースがwchar_tを前提にしてない古い物だったのが原因でした

98:デフォルトの名無しさん
10/02/12 01:06:37
Windows 7 Home Premium 64bit版のPCで
Win32 APIを使ってアプリケーション製作できる?

99:デフォルトの名無しさん
10/02/12 01:20:48
できる

100:デフォルトの名無しさん
10/02/12 01:26:03
>>99
サンクス!助かった

101:デフォルトの名無しさん
10/02/12 01:28:11
Wininet関連のプログラム書いてるんですが
勉強もかねてHTTPの要求ヘッダの中身がどうなってるかみたいのですが
どうやれば見れますかね?

102:デフォルトの名無しさん
10/02/12 01:31:27
このスレで聞くってことは、パケットを見るプログラムを作りたいって話か?

103:デフォルトの名無しさん
10/02/12 01:33:38
>>102
いいえ
そういうのじゃなくて2chの専ブラの通信部分ですね
URLリンク(www.monazilla.org)
デバックもかねて上記のページに書かれてるようなヘッダーになってるかだけみれればいいんですが

104:デフォルトの名無しさん
10/02/12 01:35:08
HttpQueryInfoで受信情報のヘッダーは見れるので
送信側も何か方法があるのかなあと思いまして

105:デフォルトの名無しさん
10/02/12 02:00:54
自分で鯖を立てて送られてくる情報をみるかWireSharkのようなモニターソフトで見るのが早いですかね・・・?

106:デフォルトの名無しさん
10/02/12 02:02:20
実際のデータがどうなってるかって事だろ?
パケットを見るプログラムじゃないか

107:デフォルトの名無しさん
10/02/12 02:06:11
>>106
いや・・・そういう風に言われても勉強初めてすぐなのでよくわからないです
InternetOpen
InternetConnect
HttpOpenRequest
HttpSendRequest ←この段階で送るであろうデータさえ見れればよかったのですが

108:デフォルトの名無しさん
10/02/12 02:14:30
しつこい!

109:デフォルトの名無しさん
10/02/12 02:14:57
>>105
proxy + log

110:デフォルトの名無しさん
10/02/12 02:17:25
チェックの入っているラジオボタンのウィンドウハンドルを得るにはどうすればよいのでしょうか。
SendMessageで総当たりをすればどれにチェックが入っているのか分かりますがもっと良い方法はありませんか?
ラジオボタンがチェックされた時に生じる処理の中でそのハンドルを記憶させるようにしてみたのですが、
グループが複数あった場合にそれがどのグループのボタンなのか判断させる方法がわかりませんでした。
Borland C++ 5.5.1 for Win32を使っています。

111:110
10/02/12 02:20:56
すみません何か勘違いしてました。
自己解決しました。

112:デフォルトの名無しさん
10/02/12 04:09:59
見た目を分かりやすくしようとラジオボタンをグループボックスで囲んだところ
ラジオボタンをクリックしたときにWM_COMMANDが発生しなくなってしまいました。
どうすれば再びそれが発生するようになりますか?

113:デフォルトの名無しさん
10/02/12 06:02:24
すみません自分なりに色々調べてみたんですが解決しなかったので質問します。

ツリービューコントロールに関してなんですが、.NET には TreeNode.Level というノードの深さを取得するプロパティがあるのですが、
これに相当するようなノードの深さを取得できるような関数が標準APIにもあるのでしょうか?
それとも自分で組まないといけないのでしょうか?

URLリンク(msdn.microsoft.com)(VS.80).aspx

114:デフォルトの名無しさん
10/02/12 06:06:17
C++ってあるけど上の方に メモ : このプロパティは、.NET Framework version 2.0 で新しく追加されたものです。
ってあるからC++/CLIの話かね・・・

というかWTLやMFCって.netと比べるとかなり見劣りするからなあ

.net環境で作ってていきなりネイティブC++とかいくと部品の陳腐さに泣きそうになる

115:113
10/02/12 06:27:51
>>114
すみません説明不足でした。PlatformSDKのことです。

第115章 ツリービューにメニューをつける
URLリンク(www.kumei.ne.jp)
↑このサイトを参考に組んでいたんですが、ツリービューの項目の深さを取得しようと思い、
調べていたところにちょうどそのページを見つけたので質問しました。

116:デフォルトの名無しさん
10/02/12 08:02:58
直接は無さそうね
作るにはTVM_GETNEXTITEMかな

117:デフォルトの名無しさん
10/02/12 09:40:02
>>114
修羅の国では外部コンポーネント、サービスの利用方法や足りない部品は全部自力調達ですよ( ^ω^)
先輩・・・.NETしたいです

118:デフォルトの名無しさん
10/02/12 09:43:45
いいや駄目だね
お前は一生修羅の国から出さん

119:デフォルトの名無しさん
10/02/12 09:44:58
でもどっとねっつはリバースしやすいからなあ

120:デフォルトの名無しさん
10/02/12 09:53:39
C++のお陰でソフトウェアの進歩は10年遅れたわな

121:デフォルトの名無しさん
10/02/12 10:06:37
>>120
いや C++ が糞なおかげで
Rupy や Python が生まれたと思う
C++ の出来が良かったらきっと
そいつらは生まれていなかった

122:デフォルトの名無しさん
10/02/12 10:09:51
画面の解像度を取得する方法を教えてくれ

123:デフォルトの名無しさん
10/02/12 10:11:20
げっとしすてむめとりくす

124:デフォルトの名無しさん
10/02/12 10:11:53
URLリンク(www.google.com)画面の解像度

125:デフォルトの名無しさん
10/02/12 10:13:18
スレリンク(tech板)

126:デフォルトの名無しさん
10/02/12 10:15:47
>>125
今時のライブラリでデフォルトUTFじゃないとか死ね

127:112
10/02/12 14:29:15
>>112ですがどなたか教えて頂けないでしょうか?
ソース等アップロードしました。よろしくお願いします。
URLリンク(www1.axfc.net)

128:デフォルトの名無しさん
10/02/12 14:54:07
悪阻

129:デフォルトの名無しさん
10/02/12 14:56:22
>>127
了解

130:デフォルトの名無しさん
10/02/12 19:15:49
DirectWriteなんですけど、ここのサンプルをコンパイルして実行すると、
URLリンク(msdn.microsoft.com)
Ex1とEx2は開いたウィンドウを移動するかアイコンにして戻すかしないと文字が出ないし、
Ex3は黒ベタで何も出ないです。環境はWin7 x64なんですが、ちゃんと表示されてる人います?

131:113
10/02/12 19:53:16
>>116
>>117
やはり自力で組まないといけないんですね
ぬこにつられて修羅の国に迷い込んでしまったようです
ありがとうございました

132:デフォルトの名無しさん
10/02/12 20:04:07
.Netだとオブジェクトを動的に作る際名前に階層を盛り込んだけどなあ
とC++のTreeView調べてたらアイテムの構造体ってろくな情報埋め込めないなw
typedef struct _TV_INSERTSTRUCT {
HTREEITEM hParent;
HTREEITEM hInsertAfter;
TV_ITEM item;
} TV_INSERTSTRUCT, FAR* LPTV_INSERTSTRUCT;

自分で同じような複製ツリーを作ってそっちで管理してみたら?

133:デフォルトの名無しさん
10/02/12 20:08:55
typedef struct _TV_ITEM { tvi
UINT mask;
HTREEITEM hItem;
UINT state;
UINT stateMask;
LPSTR pszText;
int cchTextMax;
int iImage;
int iSelectedImage;
int cChildren;
LPARAM lParam;
} TV_ITEM, FAR *LPTV_ITEM;
こっちもあるけどノード登録の際の連絡用とか検索ででてくるなあ

134:デフォルトの名無しさん
10/02/12 20:34:17
あとはWTL使うくらい?
URLリンク(home.att.ne.jp)
URLリンク(home.att.ne.jp)

135:デフォルトの名無しさん
10/02/12 20:41:52
>>132
おいこらTVITEMの中身見ろw
大体win32がヘボかったら.netもヘボくなるわけで・・・どっちも同じコモンコントロールなわけで

136:113
10/02/12 21:10:43
>>132
>>133
>>134
>>135
親:0 子:1 孫:2 という深度レベルを項目ごとのTVITEMのlParamに格納すればできそうですね!
本当にありがとうございました!

137:デフォルトの名無しさん
10/02/13 21:17:25
タブコントロールは CreateWindowEX で作成するとのことですが、
メイン・ウィンドウのメニューから[設定]なとの項目をクリックして、
タブコントロールのウィンドウをポップ・アップさせる場合の手順は、

1)CreateWindowEX でタブ・コントロールの親ウィンドウ (hwndParent) を作成.
2)hwndParent の子ウィンドウとして CreateWindowEX でタブ・コントロールを作成.

するという手順になると思うのですが、ここで、タブ・コントロールを操作する
メッセージなどを処理するプロシージャ−が必要になります。ところが、
CreateWindowEX にはご存知のとおりプロシージャ−関数を受け取る引数はありません、、、

ということは、hwndParent にメッセージ・ループを作らざろうえず、メイン・ウィンドウの
メッセージ・ループと”競合?”してしまうので、

A)hwndParent はスレッドを作って、そこでメッセージ・ループを回す???

という、プログラミング・スタイルになると思うのですが、違いますが???
当方、初心者でして、ズバリご指摘おねがいします。

タブ・コントロールに限らず、ダイアログ・テンプレートを使わずに
メイン・ウィンドウからコントロールの Owned ポップアップ・ウィンドウを開く場合
の手順は、どうなるのでしょう???


138:デフォルトの名無しさん
10/02/13 21:42:53
設定ならプロパティシート使った方が簡単だけど、自分で作る場合の話なら

タブコントロールからのメッセージはその親ウィンドウにWM_NOTIFYとして飛んでくるので
すべて親ウィンドウのプロシージャで処理できる

それと、ウィンドウプロシージャはCreateWindowExでなくウィンドウクラスで設定してそれをCreate〜に渡してる
タブコントロールのウィンドウプロシージャはWindowsが持ってるのでそっちに全部お任せ
これはタブコントロールに限らずどんなコントロールでも同じなので
プログラムを作る側は親ウィンドウのプロシージャのことだけ考えればいい

139:デフォルトの名無しさん
10/02/13 22:05:23
リストボックスをウィンドウのサイズが変更されても常に中央に配置されるようにしたいのですが
どうしたらいいのですか?

140:デフォルトの名無しさん
10/02/13 22:09:15
ありがとうございます。
『タブコントロールからのメッセージはその親ウィンドウにWM_NOTIFYとして飛んでくる』
とのことですが、タブコントロール単独でポップ・アップ・ウィンドウをつくれるのでしょうか?

タブコントロール単独でポップ・アップさせようとすると移動もサイズ変更も閉じることもできません、、、
タブコントロールを子ウィンドウとしてポップ・アップさせると、メッセージはタブコントロールの
親に行くのですが、その「親」≠「メインウィンドウ」なので、タブコントロールの「親」に、メッセージを
受け取るプロシージャ−が必要になるのではないですか???

自分はなにか、根本的なところで勘違いをしていると感じるのですが、それが「何か」がわからない
ところが、トホホな現状です。 (T皿T)

141:デフォルトの名無しさん
10/02/13 22:10:00
ウィンドウのサイズを元に座標を算出してMoveWindowすればよかろうに

142:デフォルトの名無しさん
10/02/13 22:14:27
>>140
親ウィンドウはあなたが>>137で言っていたhwndParentだよ
メインウィンドウを親としてhwndParentを作ってタブをhwndParentの子ウィンドウにする
hwndParentを自分でウィンドウクラスを登録するなりして作成すれば、そのウィンドウプロシージャは自分で管理できる

143:デフォルトの名無しさん
10/02/13 22:17:57
つーか、どこのウィンドウアプリでタブがポップアップするんだよ?
そんなのありえないことくらい、普通わかるだろ?

144:デフォルトの名無しさん
10/02/13 23:36:27
……、すいませんでした。


自分が作ろうとしていたのは、『プロパティシート』であって、『タブコントロール』では
ありませんでした、、、、、、 orz。

どうもおかしい、なにか変だと思っていましたが、『プロパティシート』を『タブコントロール』と
”根本的に勘違い”してました。お騒がせしました。

145:デフォルトの名無しさん
10/02/14 04:36:24
レジストリの値が変更されたことを知るAPIは有りませんか?

146:デフォルトの名無しさん
10/02/14 04:37:26
APIHook

147:デフォルトの名無しさん
10/02/14 04:48:02
URLリンク(ruffnex.oc.to)

148:デフォルトの名無しさん
10/02/14 11:34:44
RegNotifyChangeKeyValue

149:デフォルトの名無しさん
10/02/14 12:42:06
そのてのapi hookってx64でも使えるっけ?

150:デフォルトの名無しさん
10/02/14 16:52:46
つかえるみたいよ

151:デフォルトの名無しさん
10/02/14 21:23:59
マウスカーソルを砂時計にしたいのだけど

HCURSOR cur = SetCursor(LoadCursor(NULL,IDC_WAIT));

とやってもカーソルがかわらないです。

152:デフォルトの名無しさん
10/02/14 22:36:15
WM_SETCURSOR

153:デフォルトの名無しさん
10/02/14 23:34:42
HCURSOR cur = SetCursor(LoadCursor(NULL,IDC_WAIT));
したあとはWM_SETCURSORでreturn 0;するようにしたけど
状況かわらずでした。

154:デフォルトの名無しさん
10/02/14 23:38:35
>カーソルがウィンドウ上にある間ずっと表示される
>ようにカーソルを設定する場合には、指定されたウ
>ィンドウのウィンドウクラスで設定されるクラスカ
>ーソルが 0 (NULL) になるようにします。クラス
>カーソルが 0 (NULL) でない場合、システムはカー
>ソルが動かされるたびにクラスカーソルに戻します。
URLリンク(yokohama.cool.ne.jp)

155:デフォルトの名無しさん
10/02/15 00:11:43
>>154
デフォルトで表示するカーソルはなしにしておいて
WM_SETCURSORの都度表示するカーソルを任意に指定するってことね
脳みそ足りなくて理解に時間がかかりますた


156:デフォルトの名無しさん
10/02/15 01:08:34
脳みそとクソ知識が足り過ぎていて理解の邪魔をしてるんだろな

157:デフォルトの名無しさん
10/02/15 19:59:11
CPUのインストラクションキャッシュをクリアするような
APIがあったと思うんですが名前を忘れてしまいました。
ご存じの方いらっしゃいませんか?
やりたいことは実行時にコードを書換えながら実行するというようなことです。

158:デフォルトの名無しさん
10/02/15 20:04:45
FlushInstructionCache

159:デフォルトの名無しさん
10/02/15 20:10:03
プロセスハンドルからメモリに展開してるプロセスのサイズとかってどうやって取得していますか?

160:デフォルトの名無しさん
10/02/15 20:10:53
>>158
そのまますぎて吹いた orz
ありがとうございます

161:デフォルトの名無しさん
10/02/15 20:17:10
>>159
ヒープのスナップショット取って合算するくらいしか思いつかない

162:159
10/02/15 20:33:49
>>161
別なアプローチがあるかと思って聞いたのですが、
やはりそれしかないですか

ありがとうございました。

163:デフォルトの名無しさん
10/02/15 23:11:06
エディッタなどの編集画面は、RichEditコントロールとかが使われているのでしょうか?
それともウィンドウに直接”描画?”してるのでしょうか??

後者の場合、マウスでハイライト選択するのは、どうやって実現しているのでしょうか。
マウスの押し下げメッセージを捕らえるとして、どんな関数を使うのでしょう?

164:デフォルトの名無しさん
10/02/15 23:23:14
SPY++やフックでぐぐれ

165:デフォルトの名無しさん
10/02/15 23:56:38
CreateProcessで生成したときのLPPROCESS_INFORMATION構造体のプロセスIDで
CreateToolhelp32SnapshotのTH32CS_SNAPMODULEを指定して実行したら
エラーになるんですが、何か心あたりがある方はいますか?

166:デフォルトの名無しさん
10/02/16 00:02:54
>>163
HTMLでクリッカブルマップ辺りを使ったページを
作ってみると「霊感(インスピレーション)」を得れるかも

167:デフォルトの名無しさん
10/02/16 00:03:56
他人に聞く前にOSに聞け。

168:デフォルトの名無しさん
10/02/16 11:12:25
>>163
マウスのY座標からそこが何行目かを計算する (例えばフォントの高さで割るとか)
マウスのX座標と行数からそこが何文字目かを計算する (例えば行中の文字幅を1文字ずつ数えるとか)
求めた位置に基づいて選択範囲を保持する変数を変更し、その部分を再描画する
各文字を描画するとき選択範囲内だったらその文字は背景色付きで描き、選択範囲外だったら普通に描く
およそこんな感じ

169:163
10/02/16 15:07:49
ありがとうございます。
…、すごい”低レベル”なことをするんですね。C言語ではじめて文字列操作を
やろうとした頃を思い出しました。

170:デフォルトの名無しさん
10/02/16 15:12:54
低レベルも何も、隠匿されてるだけであらゆる環境の同じ目的の関数は、
全て同じような手順で実現されてるんじゃないの?

171:デフォルトの名無しさん
10/02/16 15:26:02
Win32アプリケーションでAllocConsoleを使わずにコンソール画面を表示する方法はありますか?

172:デフォルトの名無しさん
10/02/16 15:58:32
知らないならレスしないで下さい。ウザイだけです。。。

173:デフォルトの名無しさん
10/02/16 16:07:04
>>172
そういう無意味に煽るだけのレスは、せめてどのレスに向けたものか示しておけよ。

174:デフォルトの名無しさん
10/02/16 16:13:23
>>173
知らないならレスしないで下さい。ウザイだけです。。。

175:デフォルトの名無しさん
10/02/16 16:19:25
>>171
コンソールアプリを起動してAttachConsole

176:デフォルトの名無しさん
10/02/16 23:06:55
>>175
ありがとうございました。

177:デフォルトの名無しさん
10/02/17 15:33:54
editウィンドウをただの黒い線の枠じゃなく
立体的なデザインにするには?

178:デフォルトの名無しさん
10/02/17 15:56:11
テキストエディタ作ると結構奥が深いんぜ
最大の敵は垂直スクロールバーとウィンドウ幅に合わせた行折り返し

179:デフォルトの名無しさん
10/02/17 17:20:51
えっ

180:デフォルトの名無しさん
10/02/17 18:40:12
ええっ

181:デフォルトの名無しさん
10/02/17 20:20:25
・・・そんなに難しいか?

182:デフォルトの名無しさん
10/02/17 20:21:48
テキスト編集は編集中のデータ管理だろう
まあListと同じで部品化すれば問題ないか

183:デフォルトの名無しさん
10/02/17 22:55:56
メモ帳みたいにテキストボックス貼り付けるだけなら簡単だが、
秀丸みたいに内部データ管理から画面描画まで全部作って実用的な速度で動かすのはかなり大変
まあ最近はCPUが速いしメモリも大量に積んでるから、そういう環境限定なら難易度は下がるけど

184:デフォルトの名無しさん
10/02/17 23:30:23
逆。難易度は逆に上がる。手に馴染むのが決め手なコントロール系
の製品開発は、遅いプロセッサで負荷をかけた状態でテストされ
プロトタイプが出来てからも何回も書き直される。
速いマシンで製品レベルのものが作れるのは余程の経験者か天才。

185:デフォルトの名無しさん
10/02/17 23:35:36
お前らが作ったことが無いのは分かった


186:デフォルトの名無しさん
10/02/17 23:57:10
俺ちょうど今作っててやとスクロールできるようになったぐらいなんだけど
>>178の言ってることはわかるような気がするよ、場合分け増えるし

たとえば一行が長くて折り返しがある行の時に右端にカーソルがある時
折り返す前の行の右端と折り返した後の行の左端は(ドキュメント的には)同じ位置
しかし画面では別の位置なのでカーソルを移動させたときに
前行の一文字手前で次の行にいくか、
次行の先頭行の最初の位置にカーソルがいかないようにするか
改行で表示行が変わってるときとでは動作が異なるから場合分けが増える

この辺ソフトによって動作が違ってて、GreenPadは後者、Terapadは前者だった

187:デフォルトの名無しさん
10/02/18 07:41:17
両方に表示しちゃえばいいじゃない

188:デフォルトの名無しさん
10/02/18 08:43:33
貴様らスレ違い


189:デフォルトの名無しさん
10/02/18 17:22:09
スレ違いを承知で質問です。
(A) と (B) で見る AppriData構造体のデータは、整合性が取れてると思うのですが違いますか??
***** Main.c ****
struct AppriData;
main() {
  funcA();
}
*****************

**** funcA.c ****
extern struct AppriData;
funcA(VOID) {
  AppriDataを処理;     (A)
  ……
  funcB();
}
*****************

**** funcB.c ****
extern struct AppriData;
funcB(VOID) {
  ……
  AppriDataを処理;     (B)
}
*****************

190:デフォルトの名無しさん
10/02/18 17:43:10
>>189
スレ違いと分かってて質問するなよ

191:デフォルトの名無しさん
10/02/18 18:35:31
すいません、、、他所のスレがあまりに下らないので、みなさんにお願いします。

192:デフォルトの名無しさん
10/02/18 18:45:01
m9(^Д^)プギャーーーッ

193:デフォルトの名無しさん
10/02/18 18:57:09
appliだろjk

194:デフォルトの名無しさん
10/02/18 20:39:03
まずは変数宣言しろよ

195:デフォルトの名無しさん
10/02/18 21:38:49
>>189
>整合性が取れてる
の意味がわかりません

196:デフォルトの名無しさん
10/02/18 22:09:57
構造体はヘッダに書いて include 汁

197:デフォルトの名無しさん
10/02/19 01:47:47
もうだめだこのスレ

198:デフォルトの名無しさん
10/02/19 08:55:47
まじでか

199:デフォルトの名無しさん
10/02/19 09:50:19
スレの存在自体無理がある
まともな質問の回答はMSDNに書いてある
MSDNに回答が無い質問は環境依存

200:デフォルトの名無しさん
10/02/19 10:02:06
まじでか


次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

4278日前に更新/149 KB
担当:undef