Win32API質問箱 Build90

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
スレ立てるまでもない、Win32APIのついての質問はこちらへどうぞ。
やさしいお兄さんやHなお姉さんたちが答えてくれるかも。
「知らないならレスしないで下さい。ウザイだけです。 」なんて言わないでねっ!

■過去スレ
Win32API質問箱 Build89
http://hibari.2ch.net/test/read.cgi/tech/1282403810/

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

- Win32API質問箱 wiki
http://wiki.livedoor.jp/program1/d/FrontPage

NullPointerExceptionを「ぬるぽ」と呼ぶスレ5
http://hibari.2ch.net/test/read.cgi/tech/1269551404/

過去スレはwikiから探してください。
21:2010/10/16(土) 13:58:26
最後に一文付け加えました。 他は前スレと同じ。
3sage:2010/10/16(土) 16:50:50
ゲームガードがメモリエディタ系ツールは遮断するのにProcess Explorerでメモリ読んだり書き換えたりするのは遮断されないのは
なぜなんでしょうか
4sage:2010/10/16(土) 16:52:05
5デフォルトの名無しさん:2010/10/16(土) 17:17:04
>>3
スレタイ読め
6デフォルトの名無しさん:2010/10/16(土) 18:13:31
テンプレ追加

初心者から上級者まで有用な情報技術高度
http://studiokingyo.fc2web.com/
7デフォルトの名無しさん:2010/10/16(土) 19:19:13
↑うんこ
8デフォルトの名無しさん:2010/10/16(土) 19:19:58
>>3
exeの中にドライバーが仕込んであって、それで読みだしてんじゃないの?
9デフォルトの名無しさん:2010/10/16(土) 19:21:42
windowsでsystem関数を使ってBATファイルを作りそれをスタートアップに登録させたいのですが
スタートアップのフォルダパス取得方法わかりません、教えてくれませんか。
10デフォルトの名無しさん:2010/10/16(土) 19:37:15
「winapi スタートアップ」でググれ。
11デフォルトの名無しさん:2010/10/16(土) 19:37:49
スタートアップフォルダのパスって決まってるんじゃないの?

ドライブC以外に入れてるなら環境変数からROOTとってくれば
12デフォルトの名無しさん:2010/10/16(土) 19:58:53
>>6という粘着がいるしこのスレもういらね
13デフォルトの名無しさん:2010/10/16(土) 20:18:05
さっさとNG入れて反応すんな
14デフォルトの名無しさん:2010/10/16(土) 20:20:55
いや本気で要らないと思うんだけど
15デフォルトの名無しさん:2010/10/16(土) 22:26:52
win32スレとはここでよいのでしょうか。
質問させてください。
VC++2010Expでビットマップの編集ソフトを作ろうと考えています。
ファイルから読み込んだものを、ほかのDIBにコピーしたいのですが、
下記のようにプログラムしてもうまくいきませんでした。

UINT adjust4multiples(int i){
return (UINT)((i+3)/4)*4;
}
として、

HBITMAP from_file = (HBITMAP)LoadImage(NULL,FilePath,IMAGE_BITMAP,x,y, LR_CREATEDIBSECTION | LR_LOADFROMFILE );
DIBSECTION dibsection_info;
GetObject(from_file, sizeof(DIBSECTION), (LPVOID)&dibsection_info );

for(int i=1; i<=y; i++){
  int iymem = (y - i) * adjust4multiples(Width*3);
  int iyfile = (y - i) * adjust4multiples(x*3)
  CopyMemory(memBITMAP+iymem, dibsection_info.dsBm.bmBits+iyfile, x*3);
}

memBITMAPはあらかじめDIB用にメモリ確保してあり、問題ないのですが、bmBitsを使ってコピー元を表そうとしても、
コンパイラから、完全なオブジェクトをさすポインタでないといわれ、コンパイルできません。
(RtlCopyMemory,memcpyでも)

CreateDIBsectionで作られたものであれば、ピクセルへのポインタがあらかじめ手に入るのですが、LoadImageの場合は
どうすればいいのでしょうか。
手直しすればこの方法で問題ないのか、そもそもLoadImageをつかって楽をしようとしたのが間違いなのか。
よろしくお願いします。

16デフォルトの名無しさん:2010/10/16(土) 22:30:24
フォトショップなどで、起動したら出てくる
ブラシなどのメニュー用のフォームを作りたいのですが
こういう起動時に出てくる、子ウィンドウのようなメニューって
どういう呼称になるのですか?

キーワードがわからず
17デフォルトの名無しさん:2010/10/16(土) 22:44:32
>>15
方法が正しいかどうかはよくわからんが、エラーの直接の原因はvoidポインタに加算してるから。
1815:2010/10/16(土) 22:52:20
>>17
なるほど、汎用ポインタはキャストしないといけないのですね。
LPBYTEにキャストしてやったら、コンパイルできました。
うまく動いてるみたいです。
ありがとうございます。
19デフォルトの名無しさん:2010/10/17(日) 00:22:16
CreateDIBSectionが必ずしもHDCを必要としないことに今日初めて気づきました。
俺は今まで10年以上、この関数にHDCを渡すためだけにGetDC(NULL)と書き続けてきたのです。
誰か俺の人生を返してください。
20デフォルトの名無しさん:2010/10/17(日) 05:51:40
定期あげ
21デフォルトの名無しさん:2010/10/17(日) 10:30:40
画面撮ったり表示したいなら必要だぞ
22デフォルトの名無しさん:2010/10/17(日) 18:37:44
ディレントってなんですか?
23デフォルトの名無しさん:2010/10/17(日) 18:51:24
もしかして dirent のことだったら DIRectory ENTry の略
24デフォルトの名無しさん:2010/10/17(日) 21:07:44
>>16
WS_EX_TOOLWINDOW
25デフォルトの名無しさん:2010/10/17(日) 23:50:10
俺も昔はディレントだと思ってたw
26デフォルトの名無しさん:2010/10/18(月) 07:33:57
盛り上がってねーな
27デフォルトの名無しさん:2010/10/18(月) 14:26:17
UNIXの話はここでおk?
28デフォルトの名無しさん:2010/10/18(月) 15:44:23
ちょっとならいいよ
29デフォルトの名無しさん:2010/10/18(月) 15:48:48
UNIX板というものがあってだな
30デフォルトの名無しさん:2010/10/18(月) 16:01:50
31デフォルトの名無しさん:2010/10/18(月) 16:26:16
もしかしてUNIXのWin32APIのこと?
32デフォルトの名無しさん:2010/10/18(月) 16:44:43
謎は深まるばかりである。
33デフォルトの名無しさん:2010/10/18(月) 17:32:29
Wineかな
34デフォルトの名無しさん:2010/10/18(月) 18:03:03
プ板でやれ
35デフォルトの名無しさん:2010/10/18(月) 19:56:33
BOW
36デフォルトの名無しさん:2010/10/19(火) 00:36:47
RegisterHotkeyについて質問させていただきます。

RegisterHotkeyを使ってファンクションキーにホットキーを登録しようと思うのですが、

BOOL RegisterHotKey( ウィンドウのハンドル, ホットキーの識別子, キー修飾子フラグ, 仮想キーコード );

このキー装飾子フラグというのを無視する方法は無いでしょうか
37デフォルトの名無しさん:2010/10/19(火) 00:42:34
>>36
全部にフラグ立てとけばいいんじゃないの?
3836:2010/10/19(火) 01:18:24
すいません、返り値を勘違いしていました。
キー装飾子フラグを0で成功しました。
39デフォルトの名無しさん:2010/10/19(火) 02:13:37
ういーんさーてーとぅー
40デフォルトの名無しさん:2010/10/19(火) 04:12:51
>>39
"さ"は舌を噛むんだぞ。
41デフォルトの名無しさん:2010/10/19(火) 05:52:23
さーてぃーとぅーアイスクリーム
42デフォルトの名無しさん:2010/10/19(火) 06:54:32
ういんさてと
43デフォルトの名無しさん:2010/10/19(火) 09:17:50
うにくす
44デフォルトの名無しさん:2010/10/19(火) 10:07:36
>>6
これはいいサイトだな
45デフォルトの名無しさん:2010/10/19(火) 10:13:58
>>6
ブラクラ注意
NG推奨
46デフォルトの名無しさん:2010/10/19(火) 18:36:50
ブラクラの意味調べて出直してこい
47デフォルトの名無しさん:2010/10/19(火) 18:44:20
>>6開いたらパソコン蛾ぶっ壊れた
48デフォルトの名無しさん:2010/10/19(火) 19:45:18
FindFirstFile()で取得した4GB以上のファイルのnFileSizeLowに対してStrFormatByteSize64()しても、
正常に変換してくれません。
どのようにすれば正常に変換してくれるのでしょうか。
49デフォルトの名無しさん:2010/10/19(火) 19:55:25
お前さん、どうして FileSizeHigh を無視して FileSizeLow だけ見てるんだい
50デフォルトの名無しさん:2010/10/19(火) 19:59:53
>>47
はいはいワロスワロス
5148:2010/10/19(火) 22:58:58
>>49
ありがとうございます。解決しました。
52デフォルトの名無しさん:2010/10/20(水) 09:24:10
定期あげ
53デフォルトの名無しさん:2010/10/20(水) 10:44:25
ずっと張りついてんだな
暇だな
54Perl忍者 ◆M5ZWRnXOj6 :2010/10/20(水) 12:10:25
海苔みたいですね
55デフォルトの名無しさん:2010/10/20(水) 12:39:46
UNIX
56デフォルトの名無しさん:2010/10/20(水) 12:41:00
やったー!
糞コテPerl忍者が釣れたぞ!
57デフォルトの名無しさん:2010/10/20(水) 18:38:57
定期あげ
58デフォルトの名無しさん:2010/10/20(水) 20:21:16
これはピャピャピャー
59デフォルトの名無しさん:2010/10/20(水) 20:27:02
リストボックスをダブルクリックされたときのメッセージを処理したいんですが、上手く行きません
そのときのLOWORD(WPARAM)ってダブルクリックされた物のIDで合ってますよね?
60デフォルトの名無しさん:2010/10/20(水) 20:41:35
WM_LBUTTONDBLCLKならwParamはShift, Ctrl, マウスボタンが押されてるかどうかだけど
61デフォルトの名無しさん:2010/10/20(水) 20:44:53
きも
62デフォルトの名無しさん:2010/10/20(水) 21:37:19
解決しました。
63デフォルトの名無しさん:2010/10/20(水) 21:49:54
>>60
UINTがWM_COMMAND、HIWORD(WPARAM)がLBN_DBLCLKで処理しようとしているんですが、これは間違っているんでしょうか
64デフォルトの名無しさん:2010/10/20(水) 21:57:10
テスト
65デフォルトの名無しさん:2010/10/21(木) 00:09:37
ShellExecuteでフォルダを開きたいのですが
ディレクトリ名渡して"explorer"を指定するとフォルダの左側に
フォルダツリーが開いてしまいます。
"open"を指定すると例えば「c:\test\aaa\」と「c:\test\aaa.exe」が
あるとしてc:\test\aaaを開こうとするとexeの方が起動してしまう。

ShellExecuteでフォルダを開く場合パスの末尾に固定で\をつける処理を
入れればフォルダが開けるんですけど、そうすると/区切りのパスの時に
\を固定でつけてしまうのが微妙です
対策としてはinstrで/を検索して存在しなかったら"\"を追加する事くらいしか思いつきません。

なにかもっとスマートにフォルダを開く方法ないでしょうか
66デフォルトの名無しさん:2010/10/21(木) 00:14:34
すみません訂正です
x ShellExecuteでフォルダを開く場合パスの末尾に固定で\をつける処理を
o "open"でフォルダを開く場合パスの末尾に固定で\をつける処理を
67デフォルトの名無しさん:2010/10/21(木) 00:26:27
ダサいとか気にせずPathAddBackslash()を素直に使え
68デフォルトの名無しさん:2010/10/21(木) 00:37:35
>>67 了解。そうします
69デフォルトの名無しさん:2010/10/21(木) 01:46:37
質問します。
VC++2010expで、コモンダイアログで名前をつけて保存を開くときに、

wchar_t filename_full[_MAX_PATH];
wchar_t filename[_MAX_PATH];
OPENFILENAME ofn;

として、ofnの初期化をするときに、

ofn.lStructSize = sizeof(OPENFILENAME);
ofn.nMaxFile = sizeof(_MAX_PATH);
ofn.nMaxFileTitle = sizeof(_MAX_PATH);

としたところ、バッファが小さすぎるとエラーになり、

ofn.lStructSize = sizeof(ofn);
ofn.nMaxFile = sizeof(filename_full);
ofn.nMaxFileTitle = sizeof(filename);

としたら、問題なく動きました。
これはいったいどういう理由なのでしょうか。
70デフォルトの名無しさん:2010/10/21(木) 01:49:29
すみません、上記

ofn.nMaxFile = _MAX_PATH;
ofn.nMaxFileTitle = _MAX_PATH;

の間違いです。
71デフォルトの名無しさん:2010/10/21(木) 01:55:23
下は
sizeof(wchar_t)*_MAX_PATH;
と同義
72デフォルトの名無しさん:2010/10/21(木) 02:13:36
sizeof(wchar_t)

を調べてみたら 2 でした。
よくわかりました。
ありがとうございます。
73デフォルトの名無しさん:2010/10/21(木) 12:14:21
winsockでさ、gethostbynameで情報取得してみたいんだが、
適当なホームページアドレスで試してみても大丈夫なの?
あの犯罪とかにならないか心配でさ。
74デフォルトの名無しさん:2010/10/21(木) 12:37:52
図書館とかはやめといた方がいいかもな
75デフォルトの名無しさん:2010/10/21(木) 12:45:18
タブ付きMDIをWin32APIだけで使うことはできますか?
ttp://msdn.microsoft.com/ja-jp/magazine/cc507634.aspx#S2
76デフォルトの名無しさん:2010/10/21(木) 12:47:53
ヤフーなら大丈夫でしょうか?
77デフォルトの名無しさん:2010/10/21(木) 13:31:15
いいじゃんホワイトハウスで。
78デフォルトの名無しさん:2010/10/21(木) 17:21:46
HMENUが分かっているとき、そのメニューがポップアップメニューかどうか
判定する方法はありますか?
79デフォルトの名無しさん:2010/10/21(木) 19:44:07
仮想リストビューでクイックソートを行った場合、
フォーカスはソート前と同じ位置のままで、フォーカスがあったアイテムを追いかけてくれません。
どのようにすれば、追いかけてくれるのでしょうか。
80デフォルトの名無しさん:2010/10/21(木) 21:30:56
無茶言うなよ
自分で設定しろ
81デフォルトの名無しさん:2010/10/21(木) 23:23:44
gethostbyname使ったら逮捕されるってほんと?
82デフォルトの名無しさん:2010/10/21(木) 23:26:11
相手がきてぃがいならな
83デフォルトの名無しさん:2010/10/21(木) 23:42:48
下がりすぎ
84デフォルトの名無しさん:2010/10/21(木) 23:55:32
赤鬼さんと朝まで豆まき
8579:2010/10/22(金) 01:02:35
参考にさせていただいているソースは以下のサイトのものです。
http://www5b.biglobe.ne.jp/~kouta_y/c/c07.html
ListView_GetItemState()やListView_GetItem()を使い試行錯誤しているのですが、
複数選択の際も対応させるとなると手が出ません。
何方かお願いします。
86デフォルトの名無しさん:2010/10/22(金) 02:13:25
質問です。
タブコントロールでTCS_FIXEDWIDTHを指定すると、英文字列は中央に正しく表示されますが、日本語文字列が右に寄ります。
多分文字数を半角の前提で計算して表示しているからなのでしょうが、これはコントロールのバグなのでしょうか。
ご存知の方お教え願います。
87デフォルトの名無しさん:2010/10/22(金) 04:54:31
>>85
たぶん
ソートする前に、stateをOWNERDATAへ格納しておいて
アイテムをセットの時に、stateを設定すればいいんじゃないの
88デフォルトの名無しさん:2010/10/22(金) 07:16:47
果たしてそうでしょうか
89デフォルトの名無しさん:2010/10/22(金) 07:58:24
謎は深まるばかりである。
90デフォルトの名無しさん:2010/10/22(金) 08:45:35
Windows7でサービスで作成した共有メモリ(READWRITE)を、ユーザプロセス側でWRITEでOpenしようとすると、失敗します。(GetLastErrorの戻り値は0です。。)

READは成功しています。

WindowsXPではうまくいきました。


サービスはVC7.1
VB6です。


何かうまくいく方法はないでしょうか?
91デフォルトの名無しさん:2010/10/22(金) 08:56:59
ピャピャピャー
92デフォルトの名無しさん:2010/10/22(金) 08:57:27
YOUがDEADすればいいと思うよ。
93デフォルトの名無しさん:2010/10/22(金) 11:22:26
>>90
セッション0で検索
94デフォルトの名無しさん:2010/10/22(金) 11:44:52
>>92
はいお前死亡
95デフォルトの名無しさん:2010/10/22(金) 11:53:21
バリアつかったから意味ねーし。
96デフォルトの名無しさん:2010/10/22(金) 12:01:58
バリア粉砕効果あるし
97CopyRect:2010/10/22(金) 12:08:51
僕を呼んだかい?
98デフォルトの名無しさん:2010/10/22(金) 12:15:34
こうなったら、いちかばちかだぁ!
おまえらのAPIをよこせぇぇ!
ぐはあぁぁ・・
99デフォルトの名無しさん:2010/10/22(金) 12:58:55
俺開発されちゃうの? ねぇ、開発されちゃうの??
100デフォルトの名無しさん:2010/10/22(金) 13:57:20
DWORD GetAnalDevCaps(HANDLE);
101デフォルトの名無しさん:2010/10/22(金) 14:14:00
この関数はアナルデバイスのキャパシティを調べるために使用します。
キャパシティが0であるアナルデバイスに対する入力は未定義の動作を引き起こします。
この関数は失敗すると負の数値を返します。
102デフォルトの名無しさん:2010/10/22(金) 15:27:23
是非お願いs(ry
103デフォルトの名無しさん:2010/10/22(金) 15:59:53
キャパを調べてほしいのか、入力してほしいのか
10479:2010/10/22(金) 16:40:36
>>87
ありがとうございます。
その方法でうまく動作してくれました。
105デフォルトの名無しさん:2010/10/22(金) 16:49:09
アナルOKのキャバ嬢が来てると聞いて
106デフォルトの名無しさん:2010/10/22(金) 17:59:23
メモ帳のエディットコントロールのプロシージャが取得できないんですが。
GetWindowLong(FindWindowEx(FindWindow("Notepad", NULL), NULL, "Edit", NULL), GWL_WNDPROC)
どちらもウィンドウハンドルは取得できましたが、GetWindowLong()の戻り値は0でした。
ちなみにメインウィンドウのプロシージャも取得できません。
どうしたら取得できますかね?
winmapというソフトでも取得できませんでした。
107デフォルトの名無しさん:2010/10/22(金) 18:21:18
他のプロセスのウィンドウプロシージャのアドレスは取れないって話か?
108106:2010/10/22(金) 18:49:57
>>107
その問題はDLLをターゲットプロセス自身にロードさせることで解決しました。
他プロセスでも自作のプログラムで作ったウィンドウで試したところちゃんとプロシージャのアドレスを受け取れました。
しかしメモ帳は相変わらず0のままですorz
109デフォルトの名無しさん:2010/10/22(金) 19:28:44
Unicodeビルドになってないとか
110デフォルトの名無しさん:2010/10/22(金) 21:43:34
ウィンドウクラスのクラスネームに登録されていない適当な文字列を生成したいんですけどそういうAPIってありますか?
111デフォルトの名無しさん:2010/10/22(金) 21:56:20
アトム使えばすでに存在するか分かるでしょ
112デフォルトの名無しさん:2010/10/22(金) 22:15:15
鉄腕だな
113デフォルトの名無しさん:2010/10/22(金) 22:18:32
>>111-112
なるほど!thxであります!
114デフォルトの名無しさん:2010/10/23(土) 01:10:35
最近アーカイバソフト等の脆弱性が流行ってるのでちょっとおまいらに聞きたい

脆弱性の一つに、フォルダを開くのに
ShellExecute(NULL,"open","c:\\windows",NULL,NULL,SW_SHOWNORMAL) ※1
とすればいいのを
ShellExecute(NULL,"open","explorer.exe","c:\\windows",NULL,SW_SHOWNORMAL) ※2
としてるせいで、"explorer.exe"というファイル名で悪意あるプログラムを配置しとくと
解凍後そいつが実行されてしまうというものらしい

ShellExecuteのヘルプ見てもフォルダ開くには※1の方法が載ってるのに
なんで態々explorer.exe経由な※2のコードを書くのか理解できない
そもそもWindowsのシェルが未来永劫explorer.exeというファイル名とは限らない訳だし
それも一つや二つのソフトだけならまだしも、「定番」と云われる有名どころがほぼ全滅ってのがw

たぶん誰かが間違ったコードを書いて、コピペされまくって広まったパターンだと思うけど、
何かこうしなければいけない理由でもあるのか教えてほしい
115デフォルトの名無しさん:2010/10/23(土) 01:27:58
それ最初に書いたの俺だわ
15年くらい前かな
116デフォルトの名無しさん:2010/10/23(土) 01:39:40
残念、俺だ。
17年前だった
117デフォルトの名無しさん:2010/10/23(土) 01:46:18
17年前にまだexplorer無いだろwww
118デフォルトの名無しさん:2010/10/23(土) 01:49:06
マジレスする奴って・・・

MSDN見ると、わざわざexplorer.exeを指定しなくてもエクスプローラ使える方法あるんだな
http://msdn.microsoft.com/ja-jp/library/cc422072.aspx
explore lpFile パラメータで指定したフォルダを選択して、エクスプローラを起動します。

>>114はやはりどこかのソースのコピペなのかね。
大本はMSのヘルプでした、となりそうだがw
119デフォルトの名無しさん:2010/10/23(土) 01:52:09
>>118
15年くらい前のAPIヘルプにもちゃんと書いてあるんだが
120デフォルトの名無しさん:2010/10/23(土) 02:06:31
だから俺だよ
反省してるから許して
121デフォルトの名無しさん:2010/10/23(土) 02:09:03
フォルダ出すのに
ShellExecute(NULL,"open","explorer.exe","c:\\windows",NULL,SW_SHOWNORMAL)
とか書いちゃう人って
ホームページ出すのに
ShellExecute(NULL,"open","iexplore.exe","http://www.2ch.net",NULL,SW_SHOWNORMAL)
とか書いちゃうの?
122デフォルトの名無しさん:2010/10/23(土) 03:35:18
コンソールアプリケーションで、現在の標準出力がファイルにリダイレクトされているか、そうでない(本物のコンソール)に表示されているのかを
判定する方法を教えてください。

今のところ GetFileInformationByHandle の返り値が 0 か否かで判断する予定ですが、それより良い方法があればお聞きしたいです
123デフォルトの名無しさん:2010/10/23(土) 03:49:45
それでいいよ
124デフォルトの名無しさん:2010/10/23(土) 04:10:47
winsockでクライアント側からサーバ側にsendしたいんですが、
そのときのソケットってどう作ればいいんですか?

サーバ側からクライアント側にsendするときは、acceptの戻り値のソケットに対して、
sendすればいいですが、
クライアント側からはacceptしないと思うので、どうすればいいかわかりません。
よろしくお願いします。
125デフォルトの名無しさん:2010/10/23(土) 05:25:25
>>124
connect
126デフォルトの名無しさん:2010/10/23(土) 05:34:06
ああソケットの作り方かぁ
socketでソケット作って、connectで接続
127デフォルトの名無しさん:2010/10/23(土) 05:42:57
GetFileType > 122, 123

返り値が 1 ならファイルへの書き込み
3 なら別のプロセスへ/からのパイプ
2 ならコンソール
128デフォルトの名無しさん:2010/10/23(土) 05:49:32
>>127
コンソールとは限らないだろ

> FILE_TYPE_CHAR 0x0002
> The specified file is a character file, typically an LPT device or a console.
129デフォルトの名無しさん:2010/10/23(土) 07:08:22
GetFileType が 2 を返す場合は GetFileInformationByHandle の返り値も 0 になるので問題なし。

GetFileInformationByHandle は STDIN/OUT/ERR がパイプなのかコンソールなのか判定できないので
バッファリングするかしないかを切り替える時には役立たず。

128 も役立たず
130デフォルトの名無しさん:2010/10/23(土) 08:10:08
http://msdn.microsoft.com/en-us/library/ms683231%28v=VS.85%29.aspx
この中の "CONIN$" "CONOUT$" でチェックできないものかな?

ハンドルが上記の名前から生成されているかを知れれば良いように思えるけど
131デフォルトの名無しさん:2010/10/23(土) 08:19:20
istty?
132デフォルトの名無しさん:2010/10/23(土) 08:23:24
GetFileType?
133デフォルトの名無しさん:2010/10/23(土) 08:35:57
>>129
FILE_TYPE_CHARがコンソールを指すとは限らないって言ってるのに、

> GetFileType が 2 を返す場合は GetFileInformationByHandle の返り値も 0 になるので問題なし。
って頭大丈夫?
134デフォルトの名無しさん:2010/10/23(土) 08:48:09
コンソールかどうかを判定するなら適当なコンソールAPIを呼べばいいんじゃね?と思って
GetConsoleModeを試したらコンソール以外だと失敗してERROR_INVALID_HANDLEになった
コレで判定できそうか
135デフォルトの名無しさん:2010/10/23(土) 08:51:16
GetFileInformationByHandle
パイプのハンドルを指定するべきではありません。この関数は、パイプハンドルに対しては機能しません。
136デフォルトの名無しさん:2010/10/23(土) 08:52:21
133 は他人の否定だけではなく、なにか対案を提示するようにお願いします。
137デフォルトの名無しさん:2010/10/23(土) 08:53:28
嫌です。
138122:2010/10/23(土) 08:57:01
どうもありがとうございます。

GetFileType で絞り込んで、
GetConsoleMode の可否で最終確認かな?

単にバッファリングの必要性を判断するだけなら GetFileType で十分ということかな

GetFileInformationByHandle はこの役には立たない。ということが解っただけでもよかった。
139デフォルトの名無しさん:2010/10/23(土) 08:58:52
>嫌です。
すなおに「わからないんです」っていえよ... かわいそうに。
140デフォルトの名無しさん:2010/10/23(土) 09:01:24
>>139
BOOL IsConsole(HANDLE handle)
{
  UNREFERENCED_PARAMETER(handle);
  return (MessageBox(0,"リダイレクトしてますか?","質問",MB_YESNO)==IDNO);
}
141デフォルトの名無しさん:2010/10/23(土) 09:07:03
GDIにGetObjectTypeがあるのにカーネルにGetHandleTypeみたいなのが無い不思議
142デフォルトの名無しさん:2010/10/23(土) 09:26:08
>>125-126
ありがとうございます。
saddr.sin_family=AF_INET;
saddr.sin_port=htons(12345);
saddr.sin_addr.S_un.S_addr=inet_addr("127.0.0.1");

このsockaddr_inを使ってconnectしてサーバとは接続できます。
問題はこのクライアント側でrecvするときです。
そのときのソケットはどのソケットを使えばいいんですか?

connectの第一引数で指定したソケットはsendする時のソケットですよね?
recv用のソケットの作り方のことを言っています。

わかりにくくてすみません。
よろしくお願いします。
143デフォルトの名無しさん:2010/10/23(土) 09:30:05
>>142
>そのときのソケットはどのソケットを使えばいいんですか?
わざわざ port を変えて(=結節点を変えて) 読み込まない限り
接続したソケットでそのまんま recv
144デフォルトの名無しさん:2010/10/23(土) 09:33:37
ちょっと増長だったな 以下の文は忘れて
×わざわざ port を変えて(=結節点を変えて) 読み込まない限り
145デフォルトの名無しさん:2010/10/23(土) 09:36:05
selectしてからrecvしないとデッドロックするんじゃね
146デフォルトの名無しさん:2010/10/23(土) 09:37:34
別にしなかったと思うぞ
147デフォルトの名無しさん:2010/10/23(土) 09:38:41
ああそういう意味か
するする
148デフォルトの名無しさん:2010/10/23(土) 10:26:42
ありがとうございます。
selectはちょっと調べてみます。
ところでサーバー側からクライアント側に送信する場合、
以下のようなコードで大丈夫ですか。
変数clientはサーバ側のacceptの戻り値で受け取ったSOCKET型の変数になります。

char LUCIFEL[]="そんな装備で大丈夫か?";

if(send(client,LUCIFEL,sizeof(LUCIFEL),0)==SOCKET_ERROR){
puts("データの送信処理でエラーが発生しました。");
getchar();
return -1;
}
149デフォルトの名無しさん:2010/10/23(土) 10:41:24
上の質問は結構です。
受け取ったデータをprintfするの忘れてました。
150デフォルトの名無しさん:2010/10/23(土) 11:19:11
また升か?
151デフォルトの名無しさん:2010/10/23(土) 11:30:27
ルシフェルさん気さくやな
152デフォルトの名無しさん:2010/10/23(土) 12:18:16
分かったよあげりゃいいんだろ
153デフォルトの名無しさん:2010/10/23(土) 12:47:19
もっとこうDirectにXしたい
154デフォルトの名無しさん:2010/10/23(土) 12:59:33
DirectXって全然Directじゃないよねw
155デフォルトの名無しさん:2010/10/23(土) 16:13:45
winsockで質問です。
相手から送られてくる文字列って何バイトか分からないと思うんです。
なので、あらかじめ文字列バッファを適当に確保しとくしかないと思うんですが、
なんとか送ってきたデータのサイズをチェックして動的確保したバッファにrecvできるような
方法ないですか?
156デフォルトの名無しさん:2010/10/23(土) 16:17:18
そろそろうぜーからソケット使うのやめて.NETでも使ってろよカス
157デフォルトの名無しさん:2010/10/23(土) 16:18:41
わかった。もういいよ。
158デフォルトの名無しさん:2010/10/23(土) 16:20:35
winsockの基礎が知りたいのならすれ違いのような?
159デフォルトの名無しさん:2010/10/23(土) 16:21:36
そういえばネットワークプログラミングスレなんてあったな
160デフォルトの名無しさん:2010/10/23(土) 16:21:43
GDIのindirectさに対してのdirectだから別に問題ない
161デフォルトの名無しさん:2010/10/23(土) 16:25:53
MSDNのリファレンスを読まないバカはAPIを使うな。
162デフォルトの名無しさん:2010/10/23(土) 16:26:54
違うスレ行きます。すいませんでした。
163デフォルトの名無しさん:2010/10/23(土) 16:52:29
現状でDirectなのはDirect3DとDirectComputeぐらいか?
DirectMusicなんか最初からDirectもクソも無かったし、DirectWriteやDirectPlayなんて単なるフレームワークだろ
164デフォルトの名無しさん:2010/10/23(土) 18:07:37
unistd.hがねーよぉ!!!
165デフォルトの名無しさん:2010/10/23(土) 18:40:37
>>164
あるだろ馬鹿
166デフォルトの名無しさん:2010/10/23(土) 18:44:19
cygwinが標準だと思うな馬鹿
167デフォルトの名無しさん:2010/10/23(土) 18:59:13
gccが標準だろ馬鹿
168デフォルトの名無しさん:2010/10/23(土) 19:05:25
VC6とMinGWとWDKのコンパイラ以外は要らない
msvcrt.dllにリンクできないCコンパイラなんてゴミ
169デフォルトの名無しさん:2010/10/23(土) 19:08:32
じゃあWindowsがゴミってことで^^
170デフォルトの名無しさん:2010/10/23(土) 19:13:13
WindowsはCコンパイラではありません。
171デフォルトの名無しさん:2010/10/23(土) 19:13:55
>>168
あほう
172デフォルトの名無しさん:2010/10/23(土) 19:15:26
マジレスするとVista/7はドトネトで作ってある。だから重い。
173デフォルトの名無しさん:2010/10/23(土) 19:24:28
まあCコンパイラはgccしか使い物になら無い
vcなんてC99に全然対応できてない欠陥品
174デフォルトの名無しさん:2010/10/23(土) 19:27:36
Windows7は20グラムもある
175デフォルトの名無しさん:2010/10/23(土) 19:28:58
グニユーコンパイラコレクション
176デフォルトの名無しさん:2010/10/23(土) 19:32:04
コンパイラーのコレクションですか
気持ち悪い趣味ですね
177デフォルトの名無しさん:2010/10/23(土) 19:36:25
LCMapString() でアルファベットの小文字→大文字変換をしたいのですが、
下記のように指定すると、全角小文字も全角大文字になってしまいます。

LCMapString( LOCALE_INVARIANT, LCMAP_UPPERCASE, str, size, str, size )

半角小文字だけを半角大文字にしたいのですが、Win32 API で良い方法はありますか?

C ランタイム関数であれば下記のような方法が見つかったのですが、_locale_t を
管理しなきゃならなくなるので、なるべく使いたくありません。

_locale_t loc = ::_create_locale( LC_ALL, "C" );
::_tcsupr_s_l( str, size, loc );
::_free_locale( loc );
178デフォルトの名無しさん:2010/10/23(土) 19:40:23
_tcsupr_s_lのソースをパクる。以上
179デフォルトの名無しさん:2010/10/23(土) 19:49:12
俺ならよろこんで_locale_tを管理する
180デフォルトの名無しさん:2010/10/23(土) 19:51:00
> 半角小文字だけを半角大文字にしたいのですが
C言語の教科書レベル
181デフォルトの名無しさん:2010/10/23(土) 19:51:40
>>180
アホ
182デフォルトの名無しさん:2010/10/23(土) 19:55:34
>>181
お前がな
183デフォルトの名無しさん:2010/10/23(土) 19:56:42
宿題スレ池
184デフォルトの名無しさん:2010/10/23(土) 19:57:22
最近のCの教科書はうにコードとかもカバーしてるんかいな。分厚そうだな。
185デフォルトの名無しさん:2010/10/23(土) 19:59:36
質問者はunicodeなんて言ってねーだろばーか
186デフォルトの名無しさん:2010/10/23(土) 20:01:06
文字列のa-zをA-Zに置き換えるコードぐらい自分で書け
187デフォルトの名無しさん:2010/10/23(土) 20:25:04
落ち着けよ馬鹿
188デフォルトの名無しさん:2010/10/23(土) 20:48:53
いやだかから落ち着いてるだろっつっつてんだろ鹿馬
189デフォルトの名無しさん:2010/10/23(土) 21:11:20
>>180
本当にCの教科書レベルのコードだと、TCHARがcharである場合は
CP932の2バイト目が半角英数に一致する文字(たとえば「など)が壊れてしまう
190デフォルトの名無しさん:2010/10/23(土) 21:12:37
>>170
CコンパイラですらないWindows(笑)
191デフォルトの名無しさん:2010/10/23(土) 21:14:42
C99に対応てきてないっていうか
VCに限らずC++に特化したコンパイラは最初から対応する気なんて無いでしょ
192デフォルトの名無しさん:2010/10/23(土) 21:19:46
VCだけじゃ
193デフォルトの名無しさん:2010/10/23(土) 21:26:23
Borland C++
194デフォルトの名無しさん:2010/10/23(土) 21:31:13
あれは、GUIに特化しちゃったからね
195デフォルトの名無しさん:2010/10/23(土) 21:54:32
C99なんて可変長配列くらいしか知らないな
対してメリット感じない
Win32APIは神すぎるでしょう…
196デフォルトの名無しさん:2010/10/23(土) 21:57:09
CopyRectは糞だけどな
これだけはいらん
197デフォルトの名無しさん:2010/10/23(土) 22:06:29
もうCopyRectは許せよ
198デフォルトの名無しさん:2010/10/23(土) 22:15:31
C++版のVBみたいなものだね
199デフォルトの名無しさん:2010/10/24(日) 03:59:42
それ何てC#?
200デフォルトの名無しさん:2010/10/24(日) 09:13:06
可変長配列は要らないが指示初期化子は欲しいところ
Win32APIはデカい構造体が多いから初期化が面倒杉

まーMS様はこんな汚い関数を定義してお茶を濁してるんでVCにゃ期待薄だが

D2D1_RENDER_TARGET_PROPERTIES props = D2D1::RenderTargetProperties(
  D2D1_RENDER_TARGET_TYPE_DEFAULT,
  D2D1::PixelFormat(),
  0, 0,
  D2D1_RENDER_TARGET_USAGE_NONE,
  D2D1_FEATURE_LEVEL_DEFAULT);
201デフォルトの名無しさん:2010/10/24(日) 09:47:26
そうなんだよAPIはデカイ構造体が多過ぎなんだよ
202デフォルトの名無しさん:2010/10/24(日) 12:19:36
UNIXシステムコールが使えないWindowsは糞
203デフォルトの名無しさん:2010/10/24(日) 12:37:11
使えますが何か?
204デフォルトの名無しさん:2010/10/24(日) 12:40:51
パクリまくりしましたが何か?
205デフォルトの名無しさん:2010/10/24(日) 12:42:12
困るのは無能だけですが何か?
206デフォルトの名無しさん:2010/10/24(日) 13:00:34
202=無能
207デフォルトの名無しさん:2010/10/24(日) 13:42:58
202はSFUやSUAを知っててギャグで言ってるんだろう
ttp://technet.microsoft.com/ja-jp/library/cc835573.aspx
208デフォルトの名無しさん:2010/10/24(日) 13:45:34
207=202

はいはいわろす
209デフォルトの名無しさん:2010/10/24(日) 14:31:50
何がどうギャグになってるのか理解の範囲外だ
210デフォルトの名無しさん:2010/10/24(日) 14:49:49
ギャグよりもjoke/kiddingのほうがしっくりくる
211デフォルトの名無しさん:2010/10/24(日) 15:23:14
本人は面白いと思って言っている。ギャグとはそういう物だ。
212デフォルトの名無しさん:2010/10/24(日) 15:29:33
面白ければいいじゃない
213デフォルトの名無しさん:2010/10/24(日) 15:39:49
MSDNライブラリオンラインのCommunity Content消えてね?
残ってるのもあるけども
214デフォルトの名無しさん:2010/10/24(日) 15:56:59
戦場で、戦場ではしゃぐから、はしゃいじゃうから…
そういう風に、なっちゃうんでしょ!お調子者が、くっ…
215デフォルトの名無しさん:2010/10/24(日) 17:34:53
Macが使えないWindowsは糞
216デフォルトの名無しさん:2010/10/24(日) 17:48:23
ぼくのぱそこんはえぬいーしーのういんどうずです
217デフォルトの名無しさん:2010/10/24(日) 18:48:00
>>215
XP以降は大丈夫ってことだね。
218デフォルトの名無しさん:2010/10/24(日) 18:52:17
APIヲニュウリョクシテクダサイ:
>■
219デフォルトの名無しさん:2010/10/24(日) 18:59:14
釣れる釣れるw
220デフォルトの名無しさん:2010/10/24(日) 19:02:10
>>218
CopyRect
221デフォルトの名無しさん:2010/10/24(日) 19:17:59
・ヒ。」@ケH?・゚usミ錆Qキ3エaウ=Nナャ瓠mク梼オカ・ミ゚&維Vクニ弁ゥ亜エOシ樫;テ繁ヤンヨ頏
APIヲニュウリョクシテクダサイ:
>■
222デフォルトの名無しさん:2010/10/24(日) 19:19:03
>>221
GetAnalDevCaps
223デフォルトの名無しさん:2010/10/24(日) 19:37:00
だめだ、ねむい
俺妹始まるまで寝るわ
224デフォルトの名無しさん:2010/10/24(日) 19:53:46
その名称のアニメーションは俺も見ているぞ
225デフォルトの名無しさん:2010/10/24(日) 20:12:53
俺も見てるよ
226デフォルトの名無しさん:2010/10/24(日) 20:22:44
2次元配列妹
227デフォルトの名無しさん:2010/10/24(日) 20:45:57
カセットテープを扱うAPIを教えてください
今構築しているシステムがカセットテープに記録するタイプなので
228デフォルトの名無しさん:2010/10/24(日) 20:48:33
boost::kasetto
229デフォルトの名無しさん:2010/10/24(日) 21:03:57
データレコーダーからLTOまで
230デフォルトの名無しさん:2010/10/24(日) 21:44:48
GetKasettoData()
231デフォルトの名無しさん:2010/10/24(日) 22:03:36
Windowsに不可能などない!
232デフォルトの名無しさん:2010/10/24(日) 22:04:49
じゃあ日本を救うAPIをお願いします
233デフォルトの名無しさん:2010/10/24(日) 22:11:05
NonConfidenceBillInTheCabinet()
234デフォルトの名無しさん:2010/10/24(日) 22:36:49
>>232
DestroyChinese
DestroyKorean
235デフォルトの名無しさん:2010/10/25(月) 00:13:10
いいからAPI出せや
236デフォルトの名無しさん:2010/10/25(月) 01:03:47
237デフォルトの名無しさん:2010/10/25(月) 07:36:41
これでできそうです!
ありがとうございました!
238デフォルトの名無しさん:2010/10/25(月) 07:56:04
ボーランドコンパイラダウンロードできなくなったな
239デフォルトの名無しさん:2010/10/25(月) 08:46:33
ヒント:MSの圧力
240デフォルトの名無しさん:2010/10/25(月) 08:57:35
やはりM$は格が違った
241デフォルトの名無しさん:2010/10/25(月) 09:07:36
コマンドラインコンパイラしか無くてDOS/Win16バイナリが吐けるわけでもなくて最適化能力低くてインラインアセンブラも使えない屑コンパイラのこと?
242デフォルトの名無しさん:2010/10/25(月) 10:57:25
Win32Apiではないですが、
AfxBeginThread()で開始したスレッド作成した後にスレッドが終了したのかを判断する方法はありますか?
メインスレッド側で戻り値のCWinThread*でスレッドが終了したかを判断したいです。

CWinThread* pThr = AfxBeginThread( ThreadFunc, NULL );
243デフォルトの名無しさん:2010/10/25(月) 11:02:30
パイプとか共有メモリとかセマフォとか
244デフォルトの名無しさん:2010/10/25(月) 11:10:56
>>242
CWinThreadの使い方になってくるからMFCスレ行った方が良いかと
245デフォルトの名無しさん:2010/10/25(月) 12:44:56
246デフォルトの名無しさん:2010/10/25(月) 13:02:39
> Win32Apiではないですが、
って言えばどんな質問でも回答してくれるんだね、ここ
247デフォルトの名無しさん:2010/10/25(月) 13:08:38
Win32Apiではないですが、
MSDOSで動作するexeを出力するにはどうすればよいでしょう
248デフォルトの名無しさん:2010/10/25(月) 13:33:46
247 さんの言うように、Win32Api の質問ではないのでここから出て行くように。
249デフォルトの名無しさん:2010/10/25(月) 13:46:42
Win32Apiではないですが、
プロセス(PID)が生存しているか確かめる方法を教えてください
250デフォルトの名無しさん:2010/10/25(月) 13:48:14
Win32Apiに限らず、その時点のPIDを列挙して比較するだけ。
251デフォルトの名無しさん:2010/10/25(月) 13:50:47
絶対にスワップアウトされないヒープの確保ってどうやるんですか?
252デフォルトの名無しさん:2010/10/25(月) 14:05:47
絶対に破られないプログラムってどうやるんですか?
253デフォルトの名無しさん:2010/10/25(月) 14:14:00
>>252
何が有ろうとも、リリースしない。
254デフォルトの名無しさん:2010/10/25(月) 14:39:40
>>252
そもそも、作らなければいい

>>253
PCをハクられたらアウトでしょ
255デフォルトの名無しさん:2010/10/25(月) 14:46:46
>>251
VirtualLockした領域に自分でヒープを作れ
256デフォルトの名無しさん:2010/10/25(月) 14:51:38
>>254
絶対破られない自作OSなので大丈夫。
257デフォルトの名無しさん:2010/10/25(月) 14:55:48
>>252
破れるものに書かない。
258デフォルトの名無しさん:2010/10/25(月) 15:01:30
>>252
君のヘボプログラムなんて誰も破ろうとしないから余計な心配しなくてよろしい
259デフォルトの名無しさん:2010/10/25(月) 16:00:00
破られないプログラムて
紙じゃあるまいし
260デフォルトの名無しさん:2010/10/25(月) 16:40:30
よく釣れるなぁw
261デフォルトの名無しさん:2010/10/25(月) 16:59:55
神プログラムなら破られない
262デフォルトの名無しさん:2010/10/25(月) 17:14:11
神API
263デフォルトの名無しさん:2010/10/25(月) 17:14:58
BOOL IsGodPresent(VOID);
264デフォルトの名無しさん:2010/10/25(月) 17:43:23
LONG Chinko(HAND);
265デフォルトの名無しさん:2010/10/25(月) 17:45:51
VOIN MAID(OPPAI)
266デフォルトの名無しさん:2010/10/25(月) 18:04:43
LPOPPAI
267デフォルトの名無しさん:2010/10/25(月) 18:07:22
ポパイェ…
268デフォルトの名無しさん:2010/10/25(月) 18:25:14
WNDCLASSEX
269デフォルトの名無しさん:2010/10/25(月) 18:28:00
mamco = Timpo(NULL, NULL);
270デフォルトの名無しさん:2010/10/25(月) 18:29:32
manco mmand
271デフォルトの名無しさん:2010/10/25(月) 18:35:55
なんか変な流れだな。どうしてこうなった。
272デフォルトの名無しさん:2010/10/25(月) 18:57:21
じゃあ問題だ

LoadLibrary()でDLLがロードできるが、LoadLibrary()を使うためにはkernel32.dllをロードしておく必要がある。
WinMainCRTStartupがエントリで、DLLを全く静的リンクしないプログラムからLoadLibrary()を使えるようにするには
どういうコードを書けばいいか。
273デフォルトの名無しさん:2010/10/25(月) 18:59:28
ここ寂しいマの雑談所じゃないんで
274デフォルトの名無しさん:2010/10/25(月) 20:06:03
自力でマッピングすればいいんじゃね?
275デフォルトの名無しさん:2010/10/25(月) 20:36:17
kernel32は起動時に自動でマッピングされているのでメモリをサーチするだけでいい
276デフォルトの名無しさん:2010/10/25(月) 20:41:02
>>273
はぁ?
277デフォルトの名無しさん:2010/10/25(月) 21:56:22
> WinMainCRTStartupがエントリで、DLLを全く静的リンクしないプログラム
そんなもんがこの先まともに動作する保証は無いしWinMainCRTStartupなんてVC++が勝手に付けたシンボルだろ
レヴェルの低い問題だな
278デフォルトの名無しさん:2010/10/25(月) 21:59:55
2000の挙動はほんと異端
279デフォルトの名無しさん:2010/10/25(月) 22:11:29
そりゃ>>272のオナニーですからw
280デフォルトの名無しさん:2010/10/25(月) 22:12:16
DLLを全く静的リンクしないって、、、
DLL=Dynamic Link Libraryの略でしょうが
アホですか?
281デフォルトの名無しさん:2010/10/25(月) 22:18:45
エントリポイントで DLL を取りこむ= DLLの静的リンク
明示的に LoadLibrary() を読んで DLL を取りこむ=DLLの動的リンク

では エントリポントで kernel32 が居ない状況下
DLLを取り込む(=LoadLibrary() を呼ぶ)にはどうするのか? というのが >>272
282デフォルトの名無しさん:2010/10/25(月) 22:22:16
ロード時リンクと実行時リンクという言葉を知ろうな281
283デフォルトの名無しさん:2010/10/25(月) 22:23:32
すまねぇぇぇ ロード時リンクと実行時リンクの存在を忘れてたぜ
284デフォルトの名無しさん:2010/10/25(月) 22:27:07
DLLは常に動的リンクという事も知らんのかこのアホw
285デフォルトの名無しさん:2010/10/25(月) 22:29:37
逆に kernel32.dll を静的リンクする方法を教えてよ
MS社に忍び込んで kernel32_static.lib 的なものを盗み出してくるとか?
286デフォルトの名無しさん:2010/10/25(月) 22:33:45
>>285
静的リンクと騒いでるの周回遅れのお前だけだよ。w
287デフォルトの名無しさん:2010/10/25(月) 22:35:06
DLLの静的リンクとか言っちゃう馬鹿よりマシ
288デフォルトの名無しさん:2010/10/25(月) 22:39:38
>>286
これはひどい
289デフォルトの名無しさん:2010/10/25(月) 22:40:19
kernel32_static.libなるものが手に入ったとして、kernel32.dllを静的リンクできる
かもしれないと考えるバカよりはましだと思うぞ。w
290デフォルトの名無しさん:2010/10/25(月) 22:42:45
kernel32.dll が含む関数とは静的リンク出来るでしょ
どうせほとんどが ntdll.dll のラッパーだから大して意味無いけどね
291デフォルトの名無しさん:2010/10/25(月) 22:43:26
は?お前何を見てきたの
292デフォルトの名無しさん:2010/10/25(月) 22:45:10
ttp://ja.wikipedia.org/wiki/静的リンク

>なお、プログラムを実行する時に初めて共有ライブラリあるいは
>ダイナミックリンクライブラリ(DLL)と結合される方式を動的リンクと呼ぶ。
293デフォルトの名無しさん:2010/10/25(月) 22:50:54
API以前の初心者が紛れ込んでるのか
294デフォルトの名無しさん:2010/10/25(月) 22:54:44
kernel32をわざわざLoadLibraryする人がいると聞いて
295デフォルトの名無しさん:2010/10/25(月) 22:57:56
いやkernel32をLoadLibraryと言った奴は居ないぞ
296デフォルトの名無しさん:2010/10/25(月) 23:00:41
しかし、ここまでMSの公式用語 Implicit linking, Explicit linkingを使ってる
奴はいないと言う事実。w
297デフォルトの名無しさん:2010/10/25(月) 23:01:11
若干1名居るようだが。
298デフォルトの名無しさん:2010/10/25(月) 23:01:41
間抜けが一人見つかった以上の事実はありませんよ
見つかったって言うか自爆だけど
299デフォルトの名無しさん:2010/10/25(月) 23:02:12
load-time dynamic linkingとrun-time dynamic linkingでしょ
ttp://msdn.microsoft.com/en-us/library/ms681914(VS.85).aspx
300デフォルトの名無しさん:2010/10/25(月) 23:08:54
間抜けは「。w」という間抜けな表記を使うから一目で分かる
301デフォルトの名無しさん:2010/10/25(月) 23:09:37
スタティックロードでもいいんじゃん。w
http://msdn.microsoft.com/en-us/library/9yd93633(VS.90).aspx
Implicit linking is sometimes referred to as static load or load-time dynamic linking.
Explicit linking is sometimes referred to as dynamic load or run-time dynamic linking.
302デフォルトの名無しさん:2010/10/25(月) 23:11:20
static loadとstatic linkは全然違う訳だが
303デフォルトの名無しさん:2010/10/25(月) 23:11:43
>>301
そうだね、で?
304デフォルトの名無しさん:2010/10/25(月) 23:13:01
DLLの"D"を知らない初心者 or dynamicの意味を知らない小学生

staticの意味も知らないようだから後者か。
305デフォルトの名無しさん:2010/10/25(月) 23:19:54
いいえ。性的なリンクをしたことないDTです。
306デフォルトの名無しさん:2010/10/25(月) 23:28:26
顔真っ赤にしながらDLLをstatic linkingと書いてるMSサイトを必死で検索中ってところか。
まぁ探せば一つや二つはあるだろう。
307デフォルトの名無しさん:2010/10/25(月) 23:39:55
じゃあ問題だ

LoadLibrary()でDLLがロードできるが、LoadLibrary()を使うためにはkernel32.dllをロードしておく必要がある。
WinMainCRTStartupがエントリで、DLLを全く静的ロードしないプログラムからLoadLibrary()を使えるようにするには
どういうコードを書けばいいか。
308デフォルトの名無しさん:2010/10/25(月) 23:41:23
リンクが静的か動的かは、プログラムの一部になっているか別々か
動的リンクのロードが静的か動的かは、ロード時リンクか実行時リンクか

……でOK?
309デフォルトの名無しさん:2010/10/25(月) 23:41:59
くだらない揚げ足取りに必死な奴らが多いな
310デフォルトの名無しさん:2010/10/25(月) 23:43:32
API関係ないじゃん
311デフォルトの名無しさん:2010/10/25(月) 23:43:33
くだらない揚げ足取り(笑)
312デフォルトの名無しさん:2010/10/25(月) 23:45:34
こういう場で頼んでもないのに出題したがる奴は得てして自尊心高い奴だからこれ以上苛めるな。
313デフォルトの名無しさん:2010/10/25(月) 23:45:41
int 2ehでもsysenterでも使ってシステムサービスでも呼べばいい
314デフォルトの名無しさん:2010/10/25(月) 23:52:39
>>309
プゲラ
315デフォルトの名無しさん:2010/10/25(月) 23:53:09
そんなことより、64bitプロセスから32bitプロセスのKernel32関数ポインタを
得る方法を考えてくれよ。
とりえあず今までに俺が考えた方法。

@関数のアドレスを得るためだけの32bit EXEを別途用意しておいて実行する。
A実行中の適当な32bitプロセスがロードしているKernel32.dllのアドレスを
 CreateToolhelp32Snapshot等で取得し、ReadProcessMemoryでイメージを読み取って、
 IATを自力で解析する。

他に何かあるだろうか。
316デフォルトの名無しさん:2010/10/25(月) 23:56:39
自前でロードしとけ
ttp://ruffnex.oc.to/kenji/text/load_dll/
317デフォルトの名無しさん:2010/10/25(月) 23:58:29
>>316
アホだろ
318デフォルトの名無しさん:2010/10/25(月) 23:59:44
そんなの得たところでQT_Thunkみたいなのが使えるわけでもないし無意味極まりない
319デフォルトの名無しさん:2010/10/26(火) 00:02:49
ReadProcessMemoryて32bit→64bitは失敗するけど64bit→32bitは成功するの?
320デフォルトの名無しさん:2010/10/26(火) 00:06:20
>>319
成功する。関数を書き込んでCreateRemoteThreadで実行させることもできる。
でもLoadLibraryすら実行できないから何の役にも立たないという。
321デフォルトの名無しさん:2010/10/26(火) 00:09:51
つーかCreateRemoteThreadってそもそも何の為にあるんだ?真っ当な使い方が思いつかない
こんなウィルス御用達のAPIはいずれ廃止されると思ってたのにCreateRemoteThreadExなんて出来ちゃったし
322デフォルトの名無しさん:2010/10/26(火) 00:14:44
>>320
32bitプロセス内に64bitのスレッドが作成されるん?
323デフォルトの名無しさん:2010/10/26(火) 00:35:45
>>322
いやいや、実行されるのは32bitコードだから、ちゃんとx86の関数を作っておかないとだめ。
32bitプロセス同士みたいに、Cの関数をそのままコピーしたりはできない。
324デフォルトの名無しさん:2010/10/26(火) 00:39:03
>>323
32bitのスレッドが作成されるならLoadLibraryできるんでないの?
64bitプロセスから32bitのLoadLibraryのアドレスを手に入れるのが面倒だけど
325デフォルトの名無しさん:2010/10/26(火) 00:40:48
>>324
その方法を>>315で聞いてるわけさ。
326デフォルトの名無しさん:2010/10/26(火) 00:42:48
だから自前でロードすればいいでしょ
DllMainを呼び出さなければ何ら害は無い
327デフォルトの名無しさん:2010/10/26(火) 00:43:00
またバカが来た
328デフォルトの名無しさん:2010/10/26(火) 00:47:34
プロセスごとにメモリ空間が独立しているので無意味
329デフォルトの名無しさん:2010/10/26(火) 00:47:59
んじゃ何がバカなのか説明してみて
330デフォルトの名無しさん:2010/10/26(火) 00:52:05
自前で自プロセス内に読み込んでLoadLibraryのRVAは取得できても対象プロセス内のkernel32.dllのベースアドレスが不明
ImageBase==ベースアドレスはASLR下で成り立たない
331デフォルトの名無しさん:2010/10/26(火) 00:58:06
それ言っちゃうと同一モジュールのベースアドレスはプロセス間で共通と仮定するのも危険でしょ
332デフォルトの名無しさん:2010/10/26(火) 00:59:36
それはASLRが導入されるNT6より前は保証されていた
kernel32とかの一部限定だけど
333デフォルトの名無しさん:2010/10/26(火) 01:01:04
NT6より前とかそんなレガシーOSどうでもいいよ
334デフォルトの名無しさん:2010/10/26(火) 01:04:14
恥ずかしい奴だな
335デフォルトの名無しさん:2010/10/26(火) 01:08:22
今のところASLR下でもプロセスAのkernel32.dllとプロセスBのkernel32.dllは同じだが
だからといって将来に渡って保障されてるわけでもないからな
336デフォルトの名無しさん:2010/10/26(火) 01:10:56
自プロセスでLoadLibraryのアドレス持ってきてCreateRemoteThreadするという
定番の技がある以上、変更されることはまずないだろうな
337デフォルトの名無しさん:2010/10/26(火) 01:16:11
アドレスが同じなのは再配置のコストが大きいからに他ならない。
近い将来PCの性能が向上してこのコストが無視できるレベルになったら
ExplorerなどのOSコンポーネントだけアドレスが違うなんて事になる可能性は十分にあるよ。
338デフォルトの名無しさん:2010/10/26(火) 01:37:25
相手のベースアドレスは CreateToolhelp32Snapshot と Module32* で取れる。
まあ、今度は関数のアドレスがプロセスごとにバラバラなんてことにもなりかねないけど。
339デフォルトの名無しさん:2010/10/26(火) 01:38:56
なあなあお前ら、いっそのこと /delayload: ではだめなのか?
340デフォルトの名無しさん:2010/10/26(火) 05:34:42
・kernel32.dll に使えない
・指定した DLL の API 全てが対象になってしまう
・スタブが割と大きい

と欠点だらけなので、予め関数定義しておけば delayload::PowerSetRequest(hPower, ...) と書ける
自作ライブラリを作ってから全然使ってない
341デフォルトの名無しさん:2010/10/26(火) 09:22:35
あげ
342デフォルトの名無しさん:2010/10/26(火) 09:25:22
埋め
343デフォルトの名無しさん:2010/10/26(火) 09:48:13
344デフォルトの名無しさん:2010/10/26(火) 09:52:11
くゎっ
345デフォルトの名無しさん:2010/10/26(火) 10:10:57
wsprintfってなんであんなに糞なの?
346デフォルトの名無しさん:2010/10/26(火) 10:20:40
もう.NETでいいよ
347デフォルトの名無しさん:2010/10/26(火) 10:32:01
今更的外れな発言をする>>346がいるスレはここです
348デフォルトの名無しさん:2010/10/26(火) 10:33:08
馬鹿ばっか。w
349デフォルトの名無しさん:2010/10/26(火) 10:37:16
あ、昨日の間抜けさんだwww
350デフォルトの名無しさん:2010/10/26(火) 10:39:24
Win32APIつっても実質WinXPAPIでしょう
351デフォルトの名無しさん:2010/10/26(火) 10:46:06
>>345
kwsk
352デフォルトの名無しさん:2010/10/26(火) 10:48:08
>>345=>>351
自己レス乙
353デフォルトの名無しさん:2010/10/26(火) 10:49:58
レスはセルフサービスとなっております。
354デフォルトの名無しさん:2010/10/26(火) 12:26:11
自己レスのメリットないな
>>352はただの馬鹿だろ
355デフォルトの名無しさん:2010/10/26(火) 12:27:18
あげ
356デフォルトの名無しさん:2010/10/26(火) 12:44:19
エッチなまうまう?
357 ◆0uxK91AxII :2010/10/26(火) 12:56:29
APIとは無関係な流れだけど、

>>313
どうやってOSの差異を調べるの、っと。
http://www.metasploit.com/users/opcode/syscalls.html
358デフォルトの名無しさん:2010/10/26(火) 12:59:37
Win32やPOSIX環境でも動く実行ファイルって作れるの?
359デフォルトの名無しさん:2010/10/26(火) 13:17:36
>>345=>>351=>>354
で?何が言いたいの?
360デフォルトの名無しさん:2010/10/26(火) 13:21:53
>>358
つ .NET
361デフォルトの名無しさん:2010/10/26(火) 13:22:52
wsprintfもlstr系もアドレス管理がセグメント/オフセット時代の名残
362デフォルトの名無しさん:2010/10/26(火) 13:27:42
つーかWinAPI自体が16ビット時代の名残
363デフォルトの名無しさん:2010/10/26(火) 13:53:35
WindowsこそMSの名残
364デフォルトの名無しさん:2010/10/26(火) 14:44:00
>>359
ギャハハw
365デフォルトの名無しさん:2010/10/26(火) 14:48:25
なんだ今度は等号厨か
366デフォルトの名無しさん:2010/10/26(火) 15:41:07
本当に君たちは無能ね集まりですね。w
367デフォルトの名無しさん:2010/10/26(火) 16:05:43
日本語おかしい奴に言われたくないよ
368デフォルトの名無しさん:2010/10/26(火) 16:51:03
ファイルパスからファイル名(拡張子を含む)を抜き出すAPIってありました?
369デフォルトの名無しさん:2010/10/26(火) 17:30:08
GetFullPathName
370デフォルトの名無しさん:2010/10/26(火) 17:34:56
>>369
馬鹿
371デフォルトの名無しさん:2010/10/26(火) 17:39:13
>>368
_splitpath
372デフォルトの名無しさん:2010/10/26(火) 17:51:59
>>368
PathStripPath()
373368 :2010/10/26(火) 17:54:25
>>371,372
ありがとうございます(><)
今から試してみます。
374デフォルトの名無しさん:2010/10/26(火) 17:58:39
APIスレで最適のAPIがあるのに特定のコンパイラ依存の関数を勧める男の人って・・・
375デフォルトの名無しさん:2010/10/26(火) 18:06:20
質問内容を理解できない>>369よりまし
376デフォルトの名無しさん:2010/10/26(火) 18:19:01
>>374
お前馬鹿だな
377デフォルトの名無しさん:2010/10/26(火) 18:19:33
最適(笑)
378デフォルトの名無しさん:2010/10/26(火) 18:21:00
>>374
QISearch/IUnknown_Set/IUnknown_AtomicReleaseがあるのにATL勧める人はダメってことですか!?わかりません><
379デフォルトの名無しさん:2010/10/26(火) 18:25:49
>>374
無知が露呈したな。w
380デフォルトの名無しさん:2010/10/26(火) 18:36:03
>>369>>374を煽ってるだけ?
381デフォルトの名無しさん:2010/10/26(火) 18:38:13
晒しあげ
382デフォルトの名無しさん:2010/10/26(火) 18:39:15
つーか>>368の回答はPathFindFileNameじゃねーの?
383デフォルトの名無しさん:2010/10/26(火) 18:39:47
>>380
追い詰められるとすぐ自演判定しちゃうその気持ち分かるよ
384デフォルトの名無しさん:2010/10/26(火) 18:40:19
あ、PathStripPath=PathFindFileName+strcpyだからどっちでもいいか。
385デフォルトの名無しさん:2010/10/26(火) 18:41:18
だってさー>>369の方が馬鹿じゃんw
386デフォルトの名無しさん:2010/10/26(火) 18:41:31
ピャピャピャー
387デフォルトの名無しさん:2010/10/26(火) 18:43:39
>>368はAPIを訊いているのだから処理系依存のランタイム関数を答える奴が悪い。
388デフォルトの名無しさん:2010/10/26(火) 18:44:12
だってさー>>369の方が馬鹿じゃんw
389デフォルトの名無しさん:2010/10/26(火) 18:45:27
盛り上がってるね!ウヒャー
390デフォルトの名無しさん:2010/10/26(火) 18:45:42
APIでなくていいんだったらSystem.IO.Path.GetFileNameでもいいしな
391デフォルトの名無しさん:2010/10/26(火) 18:47:56
%~nxI でもいいよ。
392デフォルトの名無しさん:2010/10/26(火) 18:48:40
>>390
独り言は糞にでも書いてろよ。w
393デフォルトの名無しさん:2010/10/26(火) 18:50:13
この間抜け、一日中貼り付いてるの?
394デフォルトの名無しさん:2010/10/26(火) 18:53:29
少し邪道だが
p=_tcschr(path,'\\');
return(p?(p+1):path);
395デフォルトの名無しさん:2010/10/26(火) 18:53:41
すゎ
396デフォルトの名無しさん:2010/10/26(火) 18:56:02
へっくしょん
397デフォルトの名無しさん:2010/10/26(火) 19:14:06
だってさー>>369の方が馬鹿じゃんw
398デフォルトの名無しさん:2010/10/26(火) 19:19:23
だがDLLの静的リンクという奴の足元にも及ばない
399デフォルトの名無しさん:2010/10/26(火) 19:26:58
shlwapiは__inout_ecount(MAX_PATH)だから使いづらい。
なぜバッファ長を引数に取らないんだか。
400デフォルトの名無しさん:2010/10/26(火) 19:28:05
>>398
よっぽど参加できなかったのが悔しかったんだな。周回遅れ。w
401デフォルトの名無しさん:2010/10/26(火) 19:32:54
>>369を煽っている奴は本物の馬鹿だな
GetFullPathNameの最後の引数でファイル名(拡張子を含む)を抜き出せるんだが
402デフォルトの名無しさん:2010/10/26(火) 19:42:56
ttp://msdn.microsoft.com/ja-jp/library/cc429325.aspx
特に何もおかしくないよな
なにが気に入らなかったんだろう
403デフォルトの名無しさん:2010/10/26(火) 19:45:45
はいはいあげあげ
404デフォルトの名無しさん:2010/10/26(火) 19:51:55
だってさー>>369の方が馬鹿じゃんw
405デフォルトの名無しさん:2010/10/26(火) 20:03:33
> GetFullPathName は、カレントドライブとカレントディレクトリを、
> 指定されたファイル名に結合し、指定されたファイルのフルパスとファイル名を判断します。

今時カレントディレクトリなんて脆弱性以外の何物でもない
406デフォルトの名無しさん:2010/10/26(火) 20:04:51
脆弱性なんてどうでもいい
407デフォルトの名無しさん:2010/10/26(火) 20:06:32
よくねーよw

よくねーよw
408デフォルトの名無しさん:2010/10/26(火) 20:09:08
最近脆弱性って言葉を覚えたんだよ
409デフォルトの名無しさん:2010/10/26(火) 20:09:30
つかカレントディレクトリの脆弱性が無いソフトの方が珍しいぐらいだ
みんなMSDN読まずにプログラミングしてるんだなー
410デフォルトの名無しさん:2010/10/26(火) 20:14:59
と独り言を呟く>>409であった。w
411デフォルトの名無しさん:2010/10/26(火) 20:16:41
無知な奴はまずここで勉強汗
http://studiokingyo.fc2web.com/
412デフォルトの名無しさん:2010/10/26(火) 20:19:31
>>411
ここ見れば大抵のAPIはマスターになるのにな
413デフォルトの名無しさん:2010/10/26(火) 20:20:05
>勉強汗

今度は日本語不自由なチョンかよ!?
414デフォルトの名無しさん:2010/10/26(火) 20:22:16
>>411
ここCの勉強ができるだけではなく優秀なスタティックリンクライブラリアンは利用可能ってことはすごいな
プログラミング作業に価値はないちなみにスタティックリンクライブラリアンとは静的結合ライブラリアンのこと
415デフォルトの名無しさん:2010/10/26(火) 20:23:23
また日本語おかしいw
416デフォルトの名無しさん:2010/10/26(火) 20:24:04
>>413
まずお前の日本語直せよ。w
417デフォルトの名無しさん:2010/10/26(火) 20:26:11
キミの日本語変だよ
418デフォルトの名無しさん:2010/10/26(火) 20:27:09
>>411
純粋にすごいなまだ公にされていないAPIまであるぞ
419デフォルトの名無しさん:2010/10/26(火) 20:30:48
これも反日デモの一環とかだったら嫌だなぁ…
420デフォルトの名無しさん:2010/10/26(火) 20:30:53
エッチなまうまう?
421デフォルトの名無しさん:2010/10/26(火) 20:35:34
中国から2chに書き込みできるの?
422デフォルトの名無しさん:2010/10/26(火) 20:45:36
エッチしてるなう
423デフォルトの名無しさん:2010/10/26(火) 20:53:36
勉強汗 ←こんな間違いどうすればできるんだろ
424デフォルトの名無しさん:2010/10/26(火) 21:47:57
ゲームなんかでオリジナリティあふれるダイアログボックスとか表示したい場合は
ポップアップウィンドウとかを自前で作って表示させるのが一般的なんですか?
425デフォルトの名無しさん:2010/10/26(火) 21:53:04
はい
426デフォルトの名無しさん:2010/10/27(水) 04:15:13
吸引力の変わらないただ一つの
427デフォルトの名無しさん:2010/10/27(水) 06:05:06
JSON
428デフォルトの名無しさん:2010/10/27(水) 06:46:23
ところで、JSONをパースするAPIってある?
設定ファイルに使いたいんだが
429デフォルトの名無しさん:2010/10/27(水) 09:09:06
はい
430デフォルトの名無しさん:2010/10/27(水) 09:19:23
今日も無能たちを観察してやろうかな。w
431デフォルトの名無しさん:2010/10/27(水) 09:23:19
そのライブラリ活動自身がプログラミングを無価値にしている元凶じゃないか
中身を実際に書かなきゃ学べないんだよ
432デフォルトの名無しさん:2010/10/27(水) 09:27:23
人はそれを車輪の大発明という
433デフォルトの名無しさん:2010/10/27(水) 09:29:10
>>431
お前がそう思うんならそうなんだろう
434デフォルトの名無しさん:2010/10/27(水) 09:37:48
>>431
え、お前中身書かないでライブラリ作れるの?
435デフォルトの名無しさん:2010/10/27(水) 09:44:32
使う側の話だろ
安易に頼ると学ぶ機会を失う
436デフォルトの名無しさん:2010/10/27(水) 10:05:25
ただのユーザ(笑)か
437デフォルトの名無しさん:2010/10/27(水) 10:07:35
5年勉強して何か書くより既存の資源を使って1時間で仕上げる方がいい
438デフォルトの名無しさん:2010/10/27(水) 10:10:10
>>436
使わなければユーザではない
使うからユーザーなのだ
439デフォルトの名無しさん:2010/10/27(水) 10:11:01
だってさー>>369の方が馬鹿じゃんw
440デフォルトの名無しさん:2010/10/27(水) 10:12:51
ミルク隊長のミルク飲みたい
441デフォルトの名無しさん:2010/10/27(水) 10:14:01
朝から無能が集まってるな。w
442デフォルトの名無しさん:2010/10/27(水) 10:25:24
24時間スレに張り付いてる基地外に言われたくないよ
443デフォルトの名無しさん:2010/10/27(水) 11:47:03
>人はそれを車輪の大発明という
大発明なら凄いことなんじゃないか?
444デフォルトの名無しさん:2010/10/27(水) 11:48:02
変な日本語の奴とageて駄レス垂れるだけの奴と「。w」で終わる間抜けの一人しか居ないスレ
445デフォルトの名無しさん:2010/10/27(水) 12:40:41
周回遅れを悔しがる知恵遅れがいる。w
446デフォルトの名無しさん:2010/10/27(水) 12:44:11
>>444
お前もいるじゃん、間抜け
447デフォルトの名無しさん:2010/10/27(水) 12:47:35
だってさー>>369の方が馬鹿じゃんw
448デフォルトの名無しさん:2010/10/27(水) 13:01:34
FtpFindFirstFileというAPIでFTPサーバーのファイルを検索すると
大文字・小文字を区別してしまうのですが区別しないようにする
ことはできないでしょうか?
FTPサーバーはWindowsです。
よろしくお願いいたします。
449デフォルトの名無しさん:2010/10/27(水) 13:10:23
ワイルドカードでリストアップしてどっちかに変換してから調べたら
450デフォルトの名無しさん:2010/10/27(水) 13:24:15
なるほど。
ただファイルが多いので厳しいところではあります。
451デフォルトの名無しさん:2010/10/27(水) 13:51:53
サーバーのファイル名を全部小文字に書き換えるとよい
452デフォルトの名無しさん:2010/10/27(水) 14:52:04
サーバーのファイル名を取得するだけなのにファイル名の変更を勧める男の人って・・・
453デフォルトの名無しさん:2010/10/27(水) 15:11:36
大文字小文字の処理を検索前にするか後でやるか

前にやる方法 大文字と小文字の両方のパターンを生成して複数回検索
後でやる方法 ワイルドカードで一気に取得してローカルでマッチング

どっちか選べ
454デフォルトの名無しさん:2010/10/27(水) 15:13:22
↑なにこいつ
455デフォルトの名無しさん:2010/10/27(水) 15:15:35
鯖に専用のASPでも走らせておいてhttpで取得するとか
Windows鯖なら1フォルダにファイル数百万みたいな使い方はしないだろうから一気に取得して
ローカルで振り分けた方がパフォーマンスいいんじゃないかなあ
リアルタイムで更新されててある特定の瞬間の状態が欲しいような場合、分割クエリはトラブルの元だし
456デフォルトの名無しさん:2010/10/27(水) 15:31:34
だってさー>>369の方が馬鹿じゃんw
457デフォルトの名無しさん:2010/10/27(水) 16:15:03
おい無能ども。w
458デフォルトの名無しさん:2010/10/27(水) 16:36:00
サーバーで大文字なんて普通使わないだろw
459デフォルトの名無しさん:2010/10/27(水) 16:55:20
周回遅れの知恵遅れ。w
460デフォルトの名無しさん:2010/10/27(水) 17:55:17
ファイル名が英字30文字なら2の30乗パターンになるが
461デフォルトの名無しさん:2010/10/27(水) 17:56:35
え?
462デフォルトの名無しさん:2010/10/27(水) 17:59:52
本気なら2ch総力をあげて潰すが
463デフォルトの名無しさん:2010/10/27(水) 18:04:06
ファイル名が2進数なのか
464デフォルトの名無しさん:2010/10/27(水) 18:13:44
大文字と小文字だから2進数じゃね?
465デフォルトの名無しさん:2010/10/27(水) 18:14:22
知恵遅れ。大文字/小文字で2進だろ。w
466デフォルトの名無しさん:2010/10/27(水) 18:20:28
いいからAPI出せや
467デフォルトの名無しさん:2010/10/27(水) 18:50:18
だってさー>>369の方が馬鹿じゃんw
468デフォルトの名無しさん:2010/10/27(水) 18:51:08
周回遅れの知恵遅れの方がIQは低いな。
469デフォルトの名無しさん:2010/10/27(水) 18:52:13
>>468
それ自分のことだよね。w
470デフォルトの名無しさん:2010/10/27(水) 18:56:40
エッチなまうまう?
471デフォルトの名無しさん:2010/10/27(水) 19:39:35
>>469
キミの事だよ。周回遅れの知恵遅れクン。w
472デフォルトの名無しさん:2010/10/27(水) 19:41:32
>>471
残念だけどキミだよ。周回遅れの知恵遅れクン。w
473デフォルトの名無しさん:2010/10/27(水) 19:49:40
>>472
気にいってくれたようで嬉しいよ。周回遅れの知恵遅れクン。w
474デフォルトの名無しさん:2010/10/27(水) 21:09:20
あげ
475デフォルトの名無しさん:2010/10/27(水) 21:21:29
埋め
476デフォルトの名無しさん:2010/10/27(水) 21:24:07
埋め埋め
477デフォルトの名無しさん:2010/10/27(水) 21:26:07
埋め埋め埋め
478デフォルトの名無しさん:2010/10/27(水) 21:28:59
埋め埋め埋め埋め
479デフォルトの名無しさん:2010/10/27(水) 21:32:43
ロベール
480デフォルトの名無しさん:2010/10/27(水) 21:34:53
ロベール
481デフォルトの名無しさん:2010/10/27(水) 21:38:08
埋め埋め埋め埋め埋め埋め埋め埋め
482デフォルトの名無しさん:2010/10/27(水) 21:44:28
埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め
483デフォルトの名無しさん:2010/10/27(水) 21:48:08
埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め
484デフォルトの名無しさん:2010/10/27(水) 21:48:52
ローベル
485デフォルトの名無しさん:2010/10/27(水) 21:54:51
ロベール
486デフォルトの名無しさん:2010/10/27(水) 22:09:40
ローベル
487デフォルトの名無しさん:2010/10/27(水) 22:13:51
タートル
488デフォルトの名無しさん:2010/10/27(水) 22:14:55
そんなに自分の恥ずかしいレスを流したいの?
489デフォルトの名無しさん:2010/10/27(水) 22:28:11
釣れた。w
490デフォルトの名無しさん:2010/10/27(水) 22:44:47
埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め
491デフォルトの名無しさん:2010/10/27(水) 22:53:32
埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め
埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め
埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め
埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め
492デフォルトの名無しさん:2010/10/27(水) 22:57:40
もし一般公開する場合、UPX使うとウイルス誤爆が増えて
ユーザにあいつウイルスばらまいてるって中傷受ける羽目になるからやめといたほうがいいぞ
493デフォルトの名無しさん:2010/10/27(水) 23:12:16
埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め
埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め
埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め
埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め
埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め
494デフォルトの名無しさん:2010/10/27(水) 23:48:43
そんなに必死に流そうとしてると、何を書き込んだのか逆に気になってしまう
495デフォルトの名無しさん:2010/10/28(木) 00:12:19
埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め
埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め
埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め
埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め
埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め
埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め
埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め
496デフォルトの名無しさん:2010/10/28(木) 00:33:58
あげ
497デフォルトの名無しさん:2010/10/28(木) 01:36:25
あげ
498デフォルトの名無しさん:2010/10/28(木) 01:55:22
RtlSecureZeroMemory()
499デフォルトの名無しさん:2010/10/28(木) 09:27:38
よう周回遅れの知恵遅れクン。w
500デフォルトの名無しさん:2010/10/28(木) 09:50:06
あげ
501デフォルトの名無しさん:2010/10/28(木) 10:36:10
ピャピャピャー
502デフォルトの名無しさん:2010/10/28(木) 12:47:13
昼だな。
503デフォルトの名無しさん:2010/10/28(木) 13:31:45
定期あげ
504デフォルトの名無しさん:2010/10/28(木) 16:02:32
エッチなまうまう?
505デフォルトの名無しさん:2010/10/28(木) 19:35:30
定期あげ
506デフォルトの名無しさん:2010/10/28(木) 21:49:15
だってさー>>369の方が馬鹿じゃんw
507デフォルトの名無しさん:2010/10/28(木) 21:49:54
周回遅れの知恵遅れの方が知能指数は低い。w
508デフォルトの名無しさん:2010/10/28(木) 21:58:35
埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め
埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め
埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め
埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め
埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め
埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め
埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め
埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め
埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め
埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め
埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め
埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め
埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め
埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め
埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め埋め
509デフォルトの名無しさん:2010/10/28(木) 22:00:52
本当に馬鹿だな、周回遅れの知恵遅れクン。w
510デフォルトの名無しさん:2010/10/28(木) 22:02:53
神社でやれ
511デフォルトの名無しさん:2010/10/28(木) 22:04:13
俺の妹がこんなに可愛いわけがない
512デフォルトの名無しさん:2010/10/28(木) 22:06:00
いいからAPI出せや
513デフォルトの名無しさん:2010/10/28(木) 22:10:57
UNIXの話はここでおk?
514デフォルトの名無しさん:2010/10/28(木) 22:16:30
>>513
初心者ならここを参照にしえ勉強するとよい、
http://studiokingyo.fc2web.com/
515デフォルトの名無しさん:2010/10/28(木) 22:20:11
>>514
thx
516デフォルトの名無しさん:2010/10/28(木) 22:25:29
周回遅れの知恵遅れは本当にダメな奴だなあ。w
517デフォルトの名無しさん:2010/10/28(木) 22:29:50
周回遅れの知恵遅れは本当にダメな奴だなあ。w
518デフォルトの名無しさん:2010/10/28(木) 23:26:33
VC#で作成したアプリケーションでプログラムから
System.Windows.Forms.Sendkeysのsendwaitメソッドを使って
"[Ctrl]+[Alt]+C"のキー入力を行いたいのですが可能でしょうか?
もしできるようであれば正しい書式が知りたいです
519デフォルトの名無しさん:2010/10/29(金) 07:29:48
可能です
520デフォルトの名無しさん:2010/10/29(金) 07:56:07
周回遅れの知恵遅れは本当にダメな奴だなあ。w
521デフォルトの名無しさん:2010/10/29(金) 09:12:52
同じネタを繰り返すのは本物の知的障害の一症状なので医者に相談した方がいいぞ
522デフォルトの名無しさん:2010/10/29(金) 10:58:28
いつもの粘着キチガイ犬だよ。w
523デフォルトの名無しさん:2010/10/29(金) 11:27:38
お前もな。w
524デフォルトの名無しさん:2010/10/29(金) 11:48:53
あえてスルーせずどうでもいいことを書いた>>521はもっと評価されるべき
525デフォルトの名無しさん:2010/10/29(金) 11:53:51
だってさー>>369の方が馬鹿じゃんw
526デフォルトの名無しさん:2010/10/29(金) 12:00:51
キチガイ犬?
527デフォルトの名無しさん:2010/10/29(金) 13:42:51
定期あげ
528デフォルトの名無しさん:2010/10/29(金) 14:20:52
APIバトルしようぜ
529デフォルトの名無しさん:2010/10/29(金) 14:27:15
他スレッドでも質問したのですが…

ネットワークエントリーの情報を取得したり、
そこから自動でVPNやダイアルアップ接続できる
「RASAPI32.DLL」を使用したAPI(VBRAS32)なんだけど、
WINDOWS7では動かないみたいなのですが、
なにか対処法はご存知ないでしょうか?
530デフォルトの名無しさん:2010/10/29(金) 15:10:36
試してから言え
531デフォルトの名無しさん:2010/10/29(金) 15:20:11
>>530
分からないならレスしなくていいんですが……
532デフォルトの名無しさん:2010/10/29(金) 16:12:05
あげ
533デフォルトの名無しさん:2010/10/29(金) 16:26:44
RASAPI32.DLLには32bit版と64bit版の2種類がある
534デフォルトの名無しさん:2010/10/29(金) 17:17:15
>>529
↓これがwin7では動かないという事だろ
http://www.vector.co.jp/soft/win95/prog/se084707.html

試したが、確かにエントリがリストボックスには表示されないし
デバッガで直接接続名、ユーザ/パスを指定しても接続しないな
535デフォルトの名無しさん:2010/10/29(金) 17:48:23
そりゃ動かないだろうな
536デフォルトの名無しさん:2010/10/29(金) 18:02:20
あとこことか
http://studiokingyo.fc2web.com/
537デフォルトの名無しさん:2010/10/29(金) 18:22:36
Vista以降で、ウィンドウのタイトルバー上のボタンを追加したりって、
どういうプログラムを書けばいいんでしょうか。
dwm関係をいじればいいというのは調べて分かったんですが、
なかなか思うとおりに動いてくれません。
538デフォルトの名無しさん:2010/10/29(金) 18:28:26
DLLをスタティックリンクすれ
539デフォルトの名無しさん:2010/10/29(金) 21:17:56
仮想XPで動作させてもだめなのか?
540デフォルトの名無しさん:2010/10/29(金) 21:28:45
余計なことを考えずウインドウ周りを自分で描けばいいだけ。
541デフォルトの名無しさん:2010/10/29(金) 23:49:31
First of all, you have to get the Device Context of Non-Client Area.
ぶー
542デフォルトの名無しさん:2010/10/30(土) 00:01:29
>>534
WIN7でAPIを使用したネットワークの自動接続はできないのでは?
543デフォルトの名無しさん:2010/10/30(土) 00:02:23
タイトルバーの大きさを変えたりとかはできるんだけど、
Vista本体と同じ描画法でシステムメニューのボタンを描画したり、
それと似せた形で違うボタンを描画したりする方法とかがわからないんです。
544デフォルトの名無しさん:2010/10/30(土) 00:13:48
製品版のVS2010買えば新OS対応リソース使いたい放題でしょ
545デフォルトの名無しさん:2010/10/30(土) 00:33:13
周回遅れの知恵遅れクン。w
546デフォルトの名無しさん:2010/10/30(土) 02:01:51
C言語すれと迷ったけど、VC独自拡張なのでこちらで。

_wfopen_s(&fp, "newfile.txt", "rw, ccs=UTF-8");
などと、UTFを指定してファイルを開いた時、
読み取れる文字数はどうやって取得するんでしょうか?

http://www.dosokai.ne.jp/tnct/indexz.php?no=80

UTFがwchar_tとかになると、結果的に全部読んだときに必要なサイズがわかりません。
seek使っても、ファイルサイズしかわからないので役に立たないです。
547デフォルトの名無しさん:2010/10/30(土) 02:24:08
全部読まずに文字数がわかるわけがない。
つーかスレ違い
548デフォルトの名無しさん:2010/10/30(土) 12:00:52
Wine上でうごかしているJaneStyelより書き込みテスト
Wineパネエっっっっっっっっっっっw自作Win32プログラムほぼ全部うごいたっっっっw
w打ちつづけると”っ”になるっっっっっっっっw
549デフォルトの名無しさん:2010/10/30(土) 12:16:30
グローバルフックかける奴ほぼだめだったorz
550デフォルトの名無しさん:2010/10/30(土) 12:19:16
twitterにでもほざいてろ、クズ
551デフォルトの名無しさん:2010/10/30(土) 12:28:52
>>548
超乙!
また何か分かったらここに書いてくれ
552デフォルトの名無しさん:2010/10/30(土) 12:32:02
Perl忍者はもう来てくれないのかな・・・
553デフォルトの名無しさん:2010/10/30(土) 13:45:50
554デフォルトの名無しさん:2010/10/30(土) 14:48:42
↑勘違い馬鹿
555デフォルトの名無しさん:2010/10/30(土) 15:57:57
↑ファイル読む前からファイル内のUTF文字数調べる芸当はエスパーにしか出来ないだろJK 頭大丈夫かお前
556デフォルトの名無しさん:2010/10/30(土) 16:09:34
>>546
UTF-8なら、シングルバイト、マルチバイトとも各文字の終わりのビット表現が決まっているので、
ファイル全体をバッファに読み込んで一回サーチすれば文字数はカウントできる。
自前で描いてもそれほど難しくはないけど、文字カウントするAPIは探せばあるはずだよ。
557デフォルトの名無しさん:2010/10/30(土) 16:34:22
>>ファイル全体をバッファに読み込んで

だからこれする前に全文字数をカウントしたいんだってば
558デフォルトの名無しさん:2010/10/30(土) 16:39:27
本当に人の話を聞いてないね
何がそれほど難しくはない、だ
559デフォルトの名無しさん:2010/10/30(土) 16:44:43
一度全部読み込まないと文字数なんてカウントできないって何度も言われてると思うんだけど
なぜ読み込む前に文字数がわかるはずだって決めつけてるの?
560デフォルトの名無しさん:2010/10/30(土) 16:45:26
それは546に聞かないとわかりません
561デフォルトの名無しさん:2010/10/30(土) 17:00:41
546はHDDを直接読める指でも持っているのだろうか?
そうでもないと言っていることがわからん。

ちょっとずつバッファに入れて、ちょっとずつ数えるか、
全部バッファに入れて、全部まとめて数えるかだ。
バッファに入れて文字数をカウントするってのはそういうこと。
562デフォルトの名無しさん:2010/10/30(土) 17:02:34
UTF-8ならファイルを全部読み込まなくても分かるだろ
ファイルの最後の1バイトは読み込まなくていい
563デフォルトの名無しさん:2010/10/30(土) 17:04:46
サイズを2で割ればわかるユニコードは偉大だなw
564デフォルトの名無しさん:2010/10/30(土) 17:06:45
ユニコードも32bit以外は可変長だろがダボ
565デフォルトの名無しさん:2010/10/30(土) 17:08:09
>>563
馬鹿発見
566デフォルトの名無しさん:2010/10/30(土) 17:08:27
知ったかまで湧いてくる始末
567デフォルトの名無しさん:2010/10/30(土) 17:09:15
UTF-32でも合成文字ってのがあってな・・・
568デフォルトの名無しさん:2010/10/30(土) 17:13:00
ペロゲートペロペロ
569デフォルトの名無しさん:2010/10/30(土) 17:13:05
偉大だなw
570デフォルトの名無しさん:2010/10/30(土) 18:46:26
Windows98の高速再起動(SHIFT+再起動)やりたいのだけどどうすりゃいい?
ExitWindowsExはだめっぽい
571デフォルトの名無しさん:2010/10/30(土) 19:11:57
user.exeのexitwindowsexecを呼んでやればいい。
ただし16ビットコードだが。
572デフォルトの名無しさん:2010/10/30(土) 19:26:56
Windows98なんて入ってる糞PCを窓から投げ捨てれば解決
573デフォルトの名無しさん:2010/10/30(土) 19:48:12
>>570-571
QT_Thunkを使えばよろし。
574デフォルトの名無しさん:2010/10/30(土) 20:22:40
>>571
ありがとうございます。それ使わせていただきました。
>>573
なにこれ便利すぎワロタ
575デフォルトの名無しさん:2010/10/30(土) 20:36:26
最近まったくVC++1.5にかまってあげてないな
576デフォルトの名無しさん:2010/10/30(土) 20:39:43
まあこの場合はrundll.exe経由で呼べるからサンクするまでもなかったりするけどな
577デフォルトの名無しさん:2010/10/30(土) 21:03:41
MSDNサイトの
「拡張エラー情報を取得するには、 関数を使います。」
とかって、いつになったら直るんだろう・・・
関数名が「関数」の前に入るんだろうけど、こんなのがあちこちにある
578デフォルトの名無しさん:2010/10/30(土) 21:06:22
もう日本語のAPIのページはメンテする気ないんじゃないのか
.NETの方は凄い勢いで拡充されてるのに
579デフォルトの名無しさん:2010/10/30(土) 21:26:52
英語版と別コンテンツ扱いになってるの(言語切り替えで行き来できないやつ)は
直せって言わない限り放置みたい
580デフォルトの名無しさん:2010/10/30(土) 23:49:16
英語読めないと使いものにならないのもあったりする
ローレベルキーボードフックとかもそうだった
581デフォルトの名無しさん:2010/10/30(土) 23:51:30
英語を制すものはAPIを制す・・・!
582デフォルトの名無しさん:2010/10/31(日) 00:32:54
どっちにしても英語を読めないと有用なテクニックは習得できないよね。
583デフォルトの名無しさん:2010/10/31(日) 03:32:19
定期あげ
584デフォルトの名無しさん:2010/10/31(日) 07:50:51
>>579
可能です。
以上。
はい、次。
585デフォルトの名無しさん:2010/10/31(日) 10:55:49
>>584
586デフォルトの名無しさん:2010/10/31(日) 11:31:23
587デフォルトの名無しさん:2010/10/31(日) 11:41:52
588デフォルトの名無しさん:2010/10/31(日) 11:42:21
含有 窓
符号付整数値 窓之主過程()「
連絡箱(操作用番号、「こんにちは、世界」、空、連箱。了)。
戻値 零。


うぃん32なんざ日本語でおk
589デフォルトの名無しさん:2010/10/31(日) 11:45:15
漢字識別子だと綺麗に幅が揃うのが気持ちいいよね
590デフォルトの名無しさん:2010/10/31(日) 13:31:37
なでしこ言語かよ
591デフォルトの名無しさん:2010/10/31(日) 13:41:43
文字列が半角スペースのみで埋められているかどうかを判定する関数はないでしょうか
592デフォルトの名無しさん:2010/10/31(日) 13:46:43
hoge[strspn(s, " ")] == '\0'
593デフォルトの名無しさん:2010/10/31(日) 13:47:53
間違えた
s[strspn(s, " ")] == '\0'
594デフォルトの名無しさん:2010/10/31(日) 13:49:57
きもいです
595デフォルトの名無しさん:2010/10/31(日) 14:03:34
'\0'
こうする訳は?
596デフォルトの名無しさん:2010/10/31(日) 14:14:11
>>592
これは面白い関数
どうもありがとうございます
597デフォルトの名無しさん:2010/10/31(日) 14:29:51
>>595
charを比較しているんだという強い主張の現れ
598デフォルトの名無しさん:2010/10/31(日) 14:42:25
強い主張ならしょうがないな
599デフォルトの名無しさん:2010/10/31(日) 14:44:56
面白い
600デフォルトの名無しさん:2010/10/31(日) 19:47:22
実際には脆弱性があるから使えないけどな
601デフォルトの名無しさん:2010/10/31(日) 21:45:06
確かに。
実務では使えん。
602デフォルトの名無しさん:2010/10/31(日) 22:18:12
>>600-601
どういうこと?
603デフォルトの名無しさん:2010/10/31(日) 22:39:50
周回遅れの知恵遅れは本当にダメな奴だなあ。w
604デフォルトの名無しさん:2010/10/31(日) 22:42:21
本当にそうだよなぁ。
いつまで周回遅れのネタを引きずってるのやら。
知恵がないから新しいネタを考えられないんだろうな。
605デフォルトの名無しさん:2010/10/31(日) 23:05:15
>>597
'\0'はintだよ。
606デフォルトの名無しさん:2010/10/31(日) 23:19:51
_s 版はないのか
607デフォルトの名無しさん:2010/10/31(日) 23:26:59
>>605
ポインタであることを表したいときはNULLと書き、文字であることを表したいときは'\0'と書き、
数値であることを表したいときは0と書き分けたっていいじゃないか
そんなこと無駄だと思う人もいるかもしれないが (そういう人はNULLも'\0'も全部0で書き表すんだろうな)、
俺はそういう主義じゃないってだけだ
608デフォルトの名無しさん:2010/10/31(日) 23:28:44
>>605
C言語は大変だな
609デフォルトの名無しさん:2010/10/31(日) 23:28:45
すでに存在するウインドウの最大化ボタンをグレーアウトするAPIありませんか?
610デフォルトの名無しさん:2010/10/31(日) 23:31:34
SetWindowLongPtr
611デフォルトの名無しさん:2010/10/31(日) 23:51:50
ありがとうございます
612546:2010/11/01(月) 00:26:36
遅ればせながらサンクスです。
文字数数えたいって言い方がかなりマズかった(って過誤りだった)ですね。

freadで読み込んだ後のサイズが知りたかったと言うのが正しいです。
バッファサイズ用意するのに必要だったので…

VC拡張のfopen使うと、UTF-8とかUTF-16とか関係なく読んでくれるので、
便利だと思ったのですが、ファイルの終端来るまでぐるぐる回しながら読むぐらいなら、
素直にビットで読み込んで条件分けしてMultiByteToWideChar使います…
613デフォルトの名無しさん:2010/11/01(月) 04:05:25
>>607
残念ながら、
>charを比較しているんだという強い主張の現れ
これと
>ポインタであることを表したいときはNULLと書き、文字であることを表したいときは'\0'と書き、
これはまったく別

まぁ、うっかりcharとか適当なこと書いちゃったんだろうが
614デフォルトの名無しさん:2010/11/01(月) 04:12:20
どうでもいい
615デフォルトの名無しさん:2010/11/01(月) 05:05:19
あらあらwww
616デフォルトの名無しさん:2010/11/01(月) 05:23:15
もはや「どうでもいい」は常套句だな
617デフォルトの名無しさん:2010/11/01(月) 07:33:57
よう無能ども。w
618デフォルトの名無しさん:2010/11/01(月) 10:19:11
しかしCRTのソース見るかぎりはwhile(*src++)みたいな実装になってるから
\0かNULLかどころか、0か!0かの違いでしかない事実
セキュリティには突っ込まないでおく
619デフォルトの名無しさん:2010/11/01(月) 10:42:58
うん、うっかり適当なこと書いちゃった
あらゆる突っ込みを事前に想定しながら完璧な回答を慎重に書くとか正直面倒臭い
ある程度の適当さは許してくれないか
620デフォルトの名無しさん:2010/11/01(月) 11:11:16
>>618
そりゃあ、C/C++における文字列の定義というのが
終端に'\0'を含む非ゼロで構成されたバイト列なんだからそういう実装になるだろ。

いずれにせよ、Win32APIがC言語準拠になっているという点以外は関係ない話だな。
621デフォルトの名無しさん:2010/11/01(月) 13:00:11
>>618
UNICODEで通用するには?
622デフォルトの名無しさん:2010/11/01(月) 13:08:21
もうlstrspnW()でも作れw
623デフォルトの名無しさん:2010/11/01(月) 14:34:48
無能の知恵遅れしかいないなあ。w
624デフォルトの名無しさん:2010/11/01(月) 14:47:16
NGの海にさようなら
625デフォルトの名無しさん:2010/11/01(月) 17:28:34
いちいちNGしたことを主張する奴って結局スルーできてないよね
626デフォルトの名無しさん:2010/11/01(月) 17:35:54
うんこ↓
627デフォルトの名無しさん:2010/11/01(月) 17:52:03
catch!
628デフォルトの名無しさん:2010/11/01(月) 17:53:01
throw;
629デフォルトの名無しさん:2010/11/01(月) 18:23:05
うんこ、投げるなよ
630デフォルトの名無しさん:2010/11/01(月) 20:16:48
>>629
void ReadAir()throw(char*){throw "unko,nagerunayo"};
unexpected();
631デフォルトの名無しさん:2010/11/01(月) 22:19:18
>>630
もうちょっと勉強しましょう
632質問です:2010/11/02(火) 01:51:06
よくネットで以下のようなコードを見かけるのですが、

MSG msg;

while(::GetMessage (&msg,NULL,0,0)) {
  ::TranslateMessage(&msg);
  ::DispatchMessage(&msg);
}

return msg.wParam;

戻り値に msg.wParam を指定しているのは何故でしょうか?
633デフォルトの名無しさん:2010/11/02(火) 02:03:52
Quitの引数
634>>632:2010/11/02(火) 02:08:07
>>633
PostQuitMessage関数の引数という事ですね。
ありがとうございました!
635デフォルトの名無しさん:2010/11/02(火) 14:03:42
定期あげ
636デフォルトの名無しさん:2010/11/02(火) 18:24:30
さげ
637デフォルトの名無しさん:2010/11/02(火) 18:26:38
クマー
638デフォルトの名無しさん:2010/11/02(火) 18:26:59
さげと言いながらあげるのはどうかと思うんだ
639デフォルトの名無しさん:2010/11/02(火) 19:26:56
RaiseUpThread()
640デフォルトの名無しさん:2010/11/02(火) 20:14:50
641デフォルトの名無しさん:2010/11/02(火) 23:47:13
thread.age();
642デフォルトの名無しさん:2010/11/02(火) 23:51:30
SetThreadAgeability(FALSE);
643デフォルトの名無しさん:2010/11/03(水) 14:03:22
定期あげ
644デフォルトの名無しさん:2010/11/03(水) 19:20:59
throw new NullPointerException();
645デフォルトの名無しさん:2010/11/03(水) 19:22:57
ガッ
646デフォルトの名無しさん:2010/11/03(水) 19:55:56
誰かC++でATL実装した人いませんか
647デフォルトの名無しさん:2010/11/03(水) 20:02:59
っWTL
648デフォルトの名無しさん:2010/11/03(水) 20:03:28
日本語でおk
649デフォルトの名無しさん:2010/11/03(水) 20:08:48
あげ
650デフォルトの名無しさん:2010/11/03(水) 20:20:41
ATLはC++で実装されているのだから、つまり
ATLの作者はいませんか?ってことか。
651デフォルトの名無しさん:2010/11/03(水) 20:22:07
>>647
>class HelloWindow : public ATL::CWindowImpl<HelloWindow>

申し訳ない、このひどい継承再帰で心が折れた・・・
652デフォルトの名無しさん:2010/11/03(水) 20:39:37
何も考えずに自クラス名渡せばいいんでないの。
仮想関数使わずに同じような事をするっていうテクニックだよねこれ。
653デフォルトの名無しさん:2010/11/03(水) 20:51:19
C++テンプレート本で読んで、これはないな、と思ったテクニックが
今、おれの目の前に立ちはだかる
こわい
654デフォルトの名無しさん:2010/11/03(水) 20:57:35
駄目な奴は何をやっても駄目
655デフォルトの名無しさん:2010/11/03(水) 21:01:28
AさんはAさんから生まれましたって破綻した構造設計した奴
お前は駄目な奴だな
656デフォルトの名無しさん:2010/11/03(水) 21:02:38
>>651,655
親クラスに子クラスの型を教えてるだけで、継承が再帰なんてしてないから
何も難しく考えること無いのに。
657デフォルトの名無しさん:2010/11/03(水) 21:04:09
奇妙に再帰してるって言ってるじゃん。継承再帰してるよ
658デフォルトの名無しさん:2010/11/03(水) 21:11:15
どこも再帰してない件
659デフォルトの名無しさん:2010/11/03(水) 21:19:07
奇妙に再帰したテンプレートパターンって名前知らないの?再帰してるんだよ
660デフォルトの名無しさん:2010/11/03(水) 21:24:57
釣れたぞw
661デフォルトの名無しさん:2010/11/03(水) 21:34:23
再帰的定義っていうのなら、昔ながらの
struct node {
    int value;
    struct node *next;
};
だって再帰的定義だろう
nextがポインタでなければ、勿論コンパイルはできない

同じように、↓はコンパイルできないよ
template <typename T> class Base {
    T value;
};
class Derived: public Base<Derived> {
};
662デフォルトの名無しさん:2010/11/03(水) 21:40:18
要は、前方宣言された型をテンプレートの引数にしているだけ。
クラス定義自体が前方宣言の代わりになるから前方宣言を省略できるってだけのこと。
663デフォルトの名無しさん:2010/11/03(水) 21:44:26
コンピュータのスピーカーから変な異音がするんだけど、
どのプロセスが鳴らしているのかわからなくて困っています。
http://oshiete.goo.ne.jp/qa/4371984.html
異音がしている時にミュートにすれば音が途切れるので
スピーカーから鳴っていることは間違いないです。

解決の目途もたたないので、自分でプログラムを書いて
音を出しているプロセスを突きとめようと思ったんだけれど、
そんなことを可能にするAPIってありますか?
664デフォルトの名無しさん:2010/11/03(水) 21:50:10
WindowsVista以降ならアプリごとにボリュームを制御できる
665デフォルトの名無しさん:2010/11/03(水) 21:52:38
>>661
つまり>>651の内部で
template <typename T> class Base {
    T *value;
};

としていれば無問題ということだな。
666デフォルトの名無しさん:2010/11/03(水) 21:53:54
>>665
うん
不完全型として前方参照してるので
不完全型でできることはしてもだいじょうぶ
667デフォルトの名無しさん:2010/11/04(木) 09:00:14
定期あげ
668デフォルトの名無しさん:2010/11/04(木) 13:33:05
::PostQuitMessage((DWORD)"定期上げ");
669デフォルトの名無しさん:2010/11/04(木) 14:13:17
そは危険
670デフォルトの名無しさん:2010/11/04(木) 15:15:33
unstd.hがないから糞
671デフォルトの名無しさん:2010/11/04(木) 15:42:57
unstd.hがないから糞なら全部糞だな
672デフォルトの名無しさん:2010/11/04(木) 16:17:41
standard unko library
673デフォルトの名無しさん:2010/11/04(木) 16:29:59
あっても糞
なくても糞

それがunstd.hとCopyRect
674デフォルトの名無しさん:2010/11/04(木) 16:33:00
もう許してやれよ
675デフォルトの名無しさん:2010/11/04(木) 17:19:05
int rctcpy(struct _rect_t *_Dst, const struct _rect_t *_Src)
{
 return (int) CopyRect((LPRECT)_Dst, (CONST RECT*)_Src);
}
676デフォルトの名無しさん:2010/11/04(木) 17:28:00
>>675
ぎゃー!プログラムが知らぬ間に毒されていく…
677デフォルトの名無しさん:2010/11/04(木) 21:34:23
WTLって綺麗にオブジェクト指向されてますか?
678デフォルトの名無しさん:2010/11/04(木) 21:50:45
>>677
オブジェクト指向というか、あれはもはやテンプレート指向だな。
あれでアプリを作ると、どんどんヘッダファイルが肥大化して、cpp側で書く事がなくなる。

それからどこまで実装されててどこから手で書くべきなのか、毎回ソースコードを調べて回るな。
679デフォルトの名無しさん:2010/11/04(木) 21:56:10
>>678
ありがとうございます。そうなんですか、、、
APIが絡むクラス設計ってなかなか難しいんですよねえ
680デフォルトの名無しさん:2010/11/04(木) 21:58:23
ファイルとして存在してるDLLをAPIで普通にロードする形じゃなくて
たとえばDLLを暗号化したバイナリファイルをメモリ上で復号し
できあがったメモリブロックをDLLのようにロードすることって出来ますか?
一回tmpなDLLファイルを出力してAPIでロードしなおさないと無理でしょうか
681デフォルトの名無しさん:2010/11/04(木) 22:04:14
>>680
その辺は各種スクリプト言語がzipにまとめられたバイナリを仮想ファイルシステムとして
動くようにする、というテーマでよく語られる話題だよ。
とりあえずTclあたりで調べてみるといいんじゃないかな。仮コードは去年見たときあったんで。
682デフォルトの名無しさん:2010/11/04(木) 22:05:50
自力でやれば出来るでしょ。
君が出来るかどうかは知らないけど...
683デフォルトの名無しさん:2010/11/04(木) 23:00:15
ピャピャピャー
684デフォルトの名無しさん:2010/11/04(木) 23:17:01
23時17分をお知らせします。
685デフォルトの名無しさん:2010/11/04(木) 23:28:36
>>514のサイトが神
686デフォルトの名無しさん:2010/11/04(木) 23:41:18
激しく同意
687デフォルトの名無しさん:2010/11/04(木) 23:42:01
あちこちのスレで自演してるコイツはなんなの?
688デフォルトの名無しさん:2010/11/04(木) 23:46:11
↑なんだこいつw
689デフォルトの名無しさん:2010/11/05(金) 00:15:05
ネタをネタと(ry
690デフォルトの名無しさん:2010/11/05(金) 00:16:18
(ryを使ってごまかすのは、はっきりとものを言うのが怖いから。
691デフォルトの名無しさん:2010/11/05(金) 00:25:04
アフィリエイト収入で生活しているネオニート
692デフォルトの名無しさん:2010/11/05(金) 00:44:55
>>678
あんまり話題にならないが、あれこそpimplを使うべきケースの一つだと思う。
Implクラスの定義をcppに書けるからヘッダは肥大化しないで済む。
693デフォルトの名無しさん:2010/11/05(金) 01:33:18
やっぱピンプルって読むよね
694デフォルトの名無しさん:2010/11/05(金) 01:38:52
ピンポゥ
695デフォルトの名無しさん:2010/11/05(金) 02:24:39
実際にはカタカナでは表記できない発音であることをお忘れなく。
696デフォルトの名無しさん:2010/11/05(金) 09:25:19
>>677
テンプレートライブラリ系とオブジェクト指向は、今やほとんど正反対を向いているよ。
697696:2010/11/05(金) 11:46:15
亀レスだったな・・・すまん
698デフォルトの名無しさん:2010/11/05(金) 11:53:13
>>696

x 今や
o 最初から

x ほとんど
o 全く
699デフォルトの名無しさん:2010/11/05(金) 13:32:24
>>698
「全く〜ない」が正式な用法
だからその置き換えは正しくない
日本語勉強してこいよ屑
700デフォルトの名無しさん:2010/11/05(金) 13:36:38
>>699
え?
701デフォルトの名無しさん:2010/11/05(金) 13:39:49
ウィンドウズのアプリを作成しています。

win32apiでコマンド_プロンプト画面を表示せずにコマンドプロンプトのコマンドを実行することは可能でしょうか
system関数を実行したところ、画面が表示されました。
702デフォルトの名無しさん:2010/11/05(金) 13:43:30
CREATE_NO_WINDOW
703デフォルトの名無しさん:2010/11/05(金) 13:43:45
>>701
ShellExecuteでできなかったっけ?
ちょっと確認できないけど
704デフォルトの名無しさん:2010/11/05(金) 13:47:53
CreateProcessは?
705デフォルトの名無しさん:2010/11/05(金) 14:10:47
STARTUPINFO.wShowWindow=SW_HIDE;でCreateProcess()
706デフォルトの名無しさん:2010/11/05(金) 14:13:04
APIと言えば巨大な構造体
707デフォルトの名無しさん:2010/11/05(金) 17:03:55
>> 702,703,704,705
ありがとうございます。CreateProcess で実装しました。
708デフォルトの名無しさん:2010/11/05(金) 20:58:32
>>706
これ本当にスタックに置いていいんだろうか? と悩むレベルのサイズなんだよな。
scoped_ptr とか unique_ptr がない頃は迷わずスタックに配置していたのに、
ヒープに配置するのに便利な道具が出てきてかえって迷うようになった。
709デフォルトの名無しさん:2010/11/05(金) 21:02:03
悩むレベルって、どのくらいからでかいと感じてるんだ?
710デフォルトの名無しさん:2010/11/05(金) 21:20:58
普通にローカル変数で wchar_t buffer[MAX_PATH]; とかやってるしなあ。
711デフォルトの名無しさん:2010/11/05(金) 22:00:17
MAX_PATHは高々1Kだろ。1Mになると躊躇する。
712デフォルトの名無しさん:2010/11/05(金) 22:02:13
サイズなんて気にしたこともなかった
そんなに取らないだろ
713デフォルトの名無しさん:2010/11/05(金) 22:06:30
関数ネスト深いから1関数4個ほどMAX_PATHワイドとったらオーバーフローした
文字列もヒープ使わざるを得なくなった
714デフォルトの名無しさん:2010/11/05(金) 22:08:37
くだらない質問けどヒープだろうがスタックでも32000文字分とらなくて良いの?
715デフォルトの名無しさん:2010/11/05(金) 22:09:56
>>711
1MBは躊躇ってレベルじゃないな
716デフォルトの名無しさん:2010/11/05(金) 22:10:47
>>711
VC++のデフォルトのスタックサイズが1Mなのに躊躇すんのかよwww
717デフォルトの名無しさん:2010/11/05(金) 22:11:42
>>714
対応するだけ無駄骨といつか気付くよ
718デフォルトの名無しさん:2010/11/05(金) 22:12:41
スピードが要求されない場所なら文字列バッファに std::vector なんてよくやるけど。
C++0x では std::basic_string のバッファも連続性が保証されるようになったので
堂々と文字列バッファとして C の関数に渡せますね。
今までだって、わざわざ不連続バッファを使うような実装があったとは思えないけど……
719デフォルトの名無しさん:2010/11/05(金) 22:15:45
>>713
260 * 2 * 4 で2KBぐらいだがどんだけネストしてんの
720デフォルトの名無しさん:2010/11/06(土) 01:35:37
Windows APIの構造体の中でサイズが一番大きい奴って何?
721デフォルトの名無しさん:2010/11/06(土) 01:37:52
>>718
不連続バッファだった場合、std::string::c_str()はどうなるの?普通に使える?
722デフォルトの名無しさん:2010/11/06(土) 02:23:37
>>721
仮に不連続バッファを使う実装なら、c_str() が呼ばれたらいちいち size() + 1 のバッファを
確保して文字列をコピーしなければならない。
そんな無駄な実装をしているライブラリはないでしょうね、という話。
723デフォルトの名無しさん:2010/11/06(土) 02:46:42
>>722
なるほど
724デフォルトの名無しさん:2010/11/06(土) 04:07:43
>>718
> バッファとして C の関数に

えー、これ大丈夫?

#include <iostream>
#include <string>
#include <cstring>
using namespace std;
int main(int argc, char *argv[])
{
string s1 = "initilal value", s2 = s1;
cout << "s1=\"" << s1 << "\", s2=\"" << s2 << "\"" << endl;
strcpy((char *)s1.c_str(), "overwrite");
cout << "s1=\"" << s1 << "\", s2=\"" << s2 << "\"" << endl;
return 0;
}
725デフォルトの名無しさん:2010/11/06(土) 04:33:45
配列をバッファに使うより無駄なコピーが生じない分効率的かもな。

#include <string>
#include <Windows.h>
#include <ShlObj.h>

int main()
{
std::wstring path;
path.resize(MAX_PATH);
::SHGetFolderPathW(
nullptr, CSIDL_DESKTOP, nullptr, SHGFP_TYPE_CURRENT, &path[0]);
}
726 ◆0uxK91AxII :2010/11/06(土) 04:34:55
>strcpy((char *)s1.c_str(), "overwrite");
これはひどい。
727デフォルトの名無しさん:2010/11/06(土) 04:36:23
const_cast は勘弁してくれ。
728デフォルトの名無しさん:2010/11/06(土) 09:04:57
コンパイルエラーが出たら意味を考えず、キャストを駆使してエラーメッセージを取り除く。
ダメPGの典型だな。
729デフォルトの名無しさん:2010/11/06(土) 09:23:21
とあるゲームの解析をしてたら

CloseHandle((HANDLE)ThreadRoutine);

というコードがあってふいたことがある
730デフォルトの名無しさん:2010/11/06(土) 09:49:40
マニアックな笑いだね
モテない側の人間だな
731デフォルトの名無しさん:2010/11/06(土) 10:32:04
とりあえず汗拭けよwww
732デフォルトの名無しさん:2010/11/06(土) 12:25:04
>>729
アホな俺には冗談抜きでわからんからkwsk
キャストがダメって事?
733デフォルトの名無しさん:2010/11/06(土) 12:26:05
だからプログラマの人って太ってるんだね
734デフォルトの名無しさん:2010/11/06(土) 12:27:32
あれか関数のアドレスをハンドルにキャストしてるのか?
735デフォルトの名無しさん:2010/11/06(土) 12:33:55
マってデブとガリガリとどっちが多いんだろ
736デフォルトの名無しさん:2010/11/06(土) 13:22:05
>>729
この類のバグってApplication Verifierで検出可能だった気がするが
737デフォルトの名無しさん:2010/11/06(土) 14:16:15
俺はムキムキだけど…
ただでさえ体に悪いデスクワークで
その中でも生活リズムがおかしくなるマやってて自主的な運動もしないなんて信じられん
738デフォルトの名無しさん:2010/11/06(土) 14:42:23
エコノミークラス症候群とかマジで怖いよね。
来てるな〜っと思う時なんて多々あるしw

>>729はハンドルじゃなくてスレッドで実行する関数のポインタを指定してるって話かな?
739デフォルトの名無しさん:2010/11/06(土) 16:39:25
俺は地元のクラブでレスリングやってる。周りはほとんど子供なんだけど。
740デフォルトの名無しさん:2010/11/06(土) 17:39:37
そういう無駄な自己アピールが気持ち悪い
741デフォルトの名無しさん:2010/11/06(土) 18:16:29
定期あげ
742デフォルトの名無しさん:2010/11/06(土) 18:28:42
スポーツなんて非論理的なことをわざわざ時間を割いてやるのは耐えられない
その間何も考えられなくていらいらするw
743デフォルトの名無しさん:2010/11/06(土) 18:33:22
そこでAPIの出番ですよ
744デフォルトの名無しさん:2010/11/06(土) 18:38:43
>>742
スポーツの何がどう非論理的なのかわからんが、おまえは清朝の役人か。
西洋人がスポーツしているのを見て、そんなことは使用人にやらせろとあざ笑ったそうな。
745デフォルトの名無しさん:2010/11/06(土) 18:55:55
どうせデスマで早死にするんだから健康に気を使っても無駄
自己中心的に時間を使う暇があるんなら会社に貢献する努力をしろ
746デフォルトの名無しさん:2010/11/06(土) 18:58:25
>>745
何と言う社蓄
747デフォルトの名無しさん:2010/11/06(土) 19:30:46
考え事しながらジョギングしてたら電柱にぶつかったり溝にはまったりするのはよくあること
ときどき車にもぶつかる
748デフォルトの名無しさん:2010/11/06(土) 19:45:01
一箇所にとどまるより外でたほうが脳に刺激はいるから
発想力も集中力も高まるんよ
もちろん体力も付くからハードワークにもへこたれずに仕事できる
企業はむしろ率先して1日30分のスポーツタイムを義務化したほうが特だよ
749デフォルトの名無しさん:2010/11/06(土) 19:45:10
CreateWindow()で作成したボタン内で、アイコンとテキストを共存させる事は出来ないのでしょうか。
750デフォルトの名無しさん:2010/11/06(土) 19:49:20
ご想像にお任せします
751デフォルトの名無しさん:2010/11/06(土) 19:55:37
>>749
オーナードローすれば問題無し。
752デフォルトの名無しさん:2010/11/06(土) 20:05:19
WinAPIのみでMDIきぼん
753デフォルトの名無しさん:2010/11/06(土) 20:42:40
>>726
「バッファとして C の関数に」ってそういう事じゃないの?
754デフォルトの名無しさん:2010/11/06(土) 21:00:50
>>753
string::c_str()は内部ポインタを返してるだけなので、ここにデータを書き込んじゃいけない。
常識のレベル。
755デフォルトの名無しさん:2010/11/06(土) 21:43:21
ロッテ優勝
756デフォルトの名無しさん:2010/11/06(土) 21:53:10
>>752
MDIはナンセンスとかMSいってなかったっけ?
757デフォルトの名無しさん:2010/11/06(土) 22:03:50
MDIでウェブブラウザ
758デフォルトの名無しさん:2010/11/06(土) 22:10:40
Visual Studio...
759デフォルトの名無しさん:2010/11/06(土) 22:42:37
>>754
えっ
760デフォルトの名無しさん:2010/11/06(土) 23:22:07
なんでわざわざconstが付いてると思っているのか
761デフォルトの名無しさん:2010/11/06(土) 23:28:00
Requires: The program shall not alter any of the values stored in the character array.

をあえて無視しようっていうなら止めはしない
762デフォルトの名無しさん:2010/11/07(日) 00:33:52
c_str()

c_str

c_

c
763デフォルトの名無しさん:2010/11/07(日) 00:35:53
さげ
764デフォルトの名無しさん:2010/11/07(日) 03:16:08
コマンドプロンプトを作るにはどうしたらいいの
765デフォルトの名無しさん:2010/11/07(日) 03:23:07
文字列を取得する
入ってきた文字列をsystem()に投げる
終了
766デフォルトの名無しさん:2010/11/07(日) 03:39:32
釣れたw
767デフォルトの名無しさん:2010/11/07(日) 04:19:59
>>753
vectorと同じで&s1[0]とか&s1.front()を使えばいい。

>>754
話をループさせないでくれよ。>>718読め。
768デフォルトの名無しさん:2010/11/07(日) 04:21:55
↑話を理解してない馬鹿
769デフォルトの名無しさん:2010/11/07(日) 04:25:11
どうかは知らないが、気持ちは悪い
取得関数はメンバーにじかに触れないようにするためのものなのだから
バッファとして使うなんてどうかしている
入力はSet系の関数を使うか、入力が必要ないように作るべき
770デフォルトの名無しさん:2010/11/07(日) 04:35:43
文字列バッファとして渡す=__out_ecountな引数に渡す
つう事じゃねぇの?
771デフォルトの名無しさん:2010/11/07(日) 04:52:31
ttp://msdn.microsoft.com/ja-jp/library/bb174567.aspx

> IDXGISurface::マップ
何の冗談だよ。。。
772デフォルトの名無しさん:2010/11/07(日) 05:02:15
( ^p^)
773デフォルトの名無しさん:2010/11/07(日) 05:12:52
最近の機械翻訳はすごいんだな
774デフォルトの名無しさん:2010/11/07(日) 05:12:59
必要に応じてstringの内部バッファをchar*として「読み取りたい」奴と
バッファ=書き込み先という認識が先行して>>724>>754>>769みたいな話を始める奴もいる
775デフォルトの名無しさん:2010/11/07(日) 05:16:11
演算子オーバーライドか、キャスト演算定義すればいいだけだろうに
連続性とか何の関係があるんだろう
776デフォルトの名無しさん:2010/11/07(日) 05:17:37
また無知な>>775が来たよ。w
777デフォルトの名無しさん:2010/11/07(日) 05:24:47
>必要に応じてstringの内部バッファをchar*として「読み取りたい」
そういう用途の為にずっと昔からc_strがある訳だが、一体何を言ってるんだ?
778デフォルトの名無しさん:2010/11/07(日) 05:37:40
>>777
まぁそう煽るな。誰かが「ない」なんて言ったか?
そんなこと君も僕も知ってることだろう。
俺は「なぜstrcpyの第一引数にc_str()を渡すなんて話がでてくるのか」って思っただけだ。
779デフォルトの名無しさん:2010/11/07(日) 05:38:23
要するに >>718 は str.c_str() と書ける箇所をわざわざ &str[0] などと書こうとしていて
C++0x でそれが堂々と出来るようになって悦んでるのか?
780デフォルトの名無しさん:2010/11/07(日) 05:43:57
c_strを適切に使いたい奴と何故かc_strが返すバッファに書き込みたい奴ってことか
後者に関しては「バッファ」を勘違いしてる一人がいるだけのようだが…
781デフォルトの名無しさん:2010/11/07(日) 05:44:10
>>778
読み専だったらずっと前からc_strで出来る
  ↓
718の「C++0xでは堂々とバッファとして渡せる」発言
  ↓
以前からできることを今更言う筈がない&内部バッファの連続・不連続に拘っている
  ↓
バッファ=書き込み先という認識

は自然な流れだと思うが?
782デフォルトの名無しさん:2010/11/07(日) 05:47:13
>>780
上手く説明できないからそれでいいよ。俺が間違ってた。君が正しいよ。
783デフォルトの名無しさん:2010/11/07(日) 05:48:05
>>718はc_str()を知らなかっただけ

に一票
784782:2010/11/07(日) 05:48:18
×>>780
>>781
だった
785デフォルトの名無しさん:2010/11/07(日) 05:49:57
いいからAPI出せや
786デフォルトの名無しさん:2010/11/07(日) 05:53:28
そもそもstr.c_str()を&str[0]と書きたいというのが理解できない
IOCCCにエントリーするようなコードでも書いてるのか?
787デフォルトの名無しさん:2010/11/07(日) 05:59:25
というか、もともとは速度面の話(>>718)だったんだよな?
いつの間にか(多分キャストの流れと>>767)内部に書き込む話が出てきたけど、これはもう別の話題じゃないか
string使って構造を抽象化してるのに内部データを直接いじるとかちょっと理解できない
788デフォルトの名無しさん:2010/11/07(日) 05:59:41
連続性が保証されたからってどうかなんの?
789デフォルトの名無しさん:2010/11/07(日) 06:02:00
>>788
連続性が保証されるだろ
790デフォルトの名無しさん:2010/11/07(日) 06:03:42
そもそもMAX_PATH程度でオーバーフローというのがよく分からない
何となくBuffer overrun detectedのエラーメッセージをオーバーフローと読み違えてる気がする
791デフォルトの名無しさん:2010/11/07(日) 06:06:59
え、何、そこまで話戻るの
792デフォルトの名無しさん:2010/11/07(日) 06:08:50
無能ほど見栄を張ってstd::basic_stringとか平気で書いちゃうんだもんな〜
793デフォルトの名無しさん:2010/11/07(日) 06:10:06
>>789
どうかなんの?
794デフォルトの名無しさん:2010/11/07(日) 06:20:58
>>793
連続性が保証されるだろ
795デフォルトの名無しさん:2010/11/07(日) 06:25:32
今来ましたがstrcpy((char *)s.c_str(), buf)はひどいコードですね!
796デフォルトの名無しさん:2010/11/07(日) 06:27:27
今来ましたとか嘘つかなくていいから。
797デフォルトの名無しさん:2010/11/07(日) 06:29:48
>>794
どうかなんの?
798デフォルトの名無しさん:2010/11/07(日) 06:30:37
> strcpy((char *)s.c_str(), buf)
こんなのどこにも無いし・・・

コピペしてないコード書き込んで「今来ました」はさすがに無いよw
799デフォルトの名無しさん:2010/11/07(日) 06:34:15
なるほど
C++0xでは&s[0]=s.c_str()が保証されたのでこういうコードがおkってことか
strcpy(&s[0], s.c_str());
800デフォルトの名無しさん:2010/11/07(日) 06:34:17
>>797
連続性が保証されるだろ
801デフォルトの名無しさん:2010/11/07(日) 06:35:26
>>798
釣られてやがるwwwwwwwwww
802デフォルトの名無しさん:2010/11/07(日) 06:37:02
>>795=>>798=>>801
寂しい人だね
803デフォルトの名無しさん:2010/11/07(日) 06:37:36
>>795
↑こんないかにも低能な釣りに引っ掛かる奴が二人もいるとはな
804デフォルトの名無しさん:2010/11/07(日) 06:38:30
805デフォルトの名無しさん:2010/11/07(日) 06:38:51
>>795=>>718=c_strを知らないヴァカ
806デフォルトの名無しさん:2010/11/07(日) 06:39:51
>>805=半角記号が使えないヴァカ
807デフォルトの名無しさん:2010/11/07(日) 06:42:00
定期あげ
808デフォルトの名無しさん:2010/11/07(日) 06:42:02
>>718はスピードが要求されないなら.NETで書いとけば?
こういう無能はC++を使わなくていいよ。
809デフォルトの名無しさん:2010/11/07(日) 06:43:41
まぁ無能がC++で書いたコードより有能がC#で書いたコードの方が高速だが
810デフォルトの名無しさん:2010/11/07(日) 06:44:39
いやいや、この文脈だと無能がC#で書くんだろ?w
811デフォルトの名無しさん:2010/11/07(日) 06:46:44
無能がC#で書いたコードでも、余程の有能がC++で書かない限りは速度的にはほぼ同じでしょ。
812デフォルトの名無しさん:2010/11/07(日) 06:46:48
等号で繋げるって楽な仕事だよね。
813デフォルトの名無しさん:2010/11/07(日) 06:48:52
正直.netって時点で
814デフォルトの名無しさん:2010/11/07(日) 06:52:25
結局>>718が言いたかったことって?
815デフォルトの名無しさん:2010/11/07(日) 06:52:57
std::stringとか使っちゃうぐらいならもう.netでいいよ
vista以降は標準で入ってるし

C++&Win32APIのメリットはCRTをいっさい使わない極小アプリを作れる事だけだと思ってる
816デフォルトの名無しさん:2010/11/07(日) 06:55:54
817デフォルトの名無しさん:2010/11/07(日) 06:56:43
OSやSDKがβ版の頃にいち早く最新機能を堪能したプログラムが作れるってメリットもある
818デフォルトの名無しさん:2010/11/07(日) 06:59:24
なあ
実際問題、速度が重要じゃないのに態々C++やAPIで作る理由ってあるか?
骨折り損だろ
819デフォルトの名無しさん:2010/11/07(日) 07:00:30
strcpy((char *)s1.c_str(), "overwrite");
820デフォルトの名無しさん:2010/11/07(日) 07:01:08
>>818
学生さんかな?
821デフォルトの名無しさん:2010/11/07(日) 07:01:21
strcpy((char *)s1.c_str(), "overlight");
822デフォルトの名無しさん:2010/11/07(日) 07:01:51
C++の便利なところ知らないだけじゃないの?
823デフォルトの名無しさん:2010/11/07(日) 07:04:33
しょうがないよ。
クリーンインスコ直後のXPで動かないアプリは糞っていう風潮がまだまだ無くならないから。
824デフォルトの名無しさん:2010/11/07(日) 07:04:46
strcpy((char *)s1.c_str(), "superlight");
825デフォルトの名無しさん:2010/11/07(日) 07:05:51
そんなにC++が好きならC++/CLIでいいでしょ
826デフォルトの名無しさん:2010/11/07(日) 07:06:50
どんどんWin32APIから離れていくな
827デフォルトの名無しさん:2010/11/07(日) 07:08:47
ここはC++入門スレです。
今は.NET信者のスレになろうとしているところです。
828デフォルトの名無しさん:2010/11/07(日) 07:10:50
マジレスすると.NETを習得するのが面倒だからAPIで開発してるだけ
829デフォルトの名無しさん:2010/11/07(日) 07:14:13
.NET移行を焦る必要はない
黙っててもOSの移行にしたがっていくだろうし
習得して損はしないだろうけど
830デフォルトの名無しさん:2010/11/07(日) 07:19:02
たぶん次のバージョンぐらいから.NET以外は締め出されるよ
WindowsPhone7みたいに
831デフォルトの名無しさん:2010/11/07(日) 07:29:36
Windows8で.NET以外締め出し→「XPでいいや」「もうWindowsイラネ」→ユーザーのMS離れ→Apple・Googleが儲かる→MS倒産
832デフォルトの名無しさん:2010/11/07(日) 08:35:05
ないない。C++前提のAPIをどんどん新設してるんだから。
833デフォルトの名無しさん:2010/11/07(日) 09:02:27
病的なくらい互換性に気を使うのがMSという会社だからな
834デフォルトの名無しさん:2010/11/07(日) 09:34:24
やつらはまだWinFXを諦めちゃいない
835デフォルトの名無しさん:2010/11/07(日) 09:50:27
そういえば、技術トレンド的には今後Direct2Dが主流になるはずなのに、
実際にはそんな話を全然聞かないな。
なんでだろ。
836デフォルトの名無しさん:2010/11/07(日) 09:55:08
MSは没になった技術も何らかの形で転用するのが得意。
Windows2.x-3.xで使われていたlink4はMSDOS 4のために作られたリンカーだ。
他にもいろいろあったけど忘れた。
837デフォルトの名無しさん:2010/11/07(日) 09:58:38
XP厨だらけだから
838デフォルトの名無しさん:2010/11/07(日) 11:25:27
737 名前:デフォルトの名無しさん[] 投稿日:2010/11/06(土) 19:02:56
まだCとかC++使ってる奴が居たのか
単に新しい環境買う金がねーだけだろ

ぶはは。
839デフォルトの名無しさん:2010/11/07(日) 13:04:36
Direct2D良いけどXPが死んでくれないと本格的に使えないからなぁ・・・
840デフォルトの名無しさん:2010/11/07(日) 13:23:23
未だに2/3がXPとかいう話だからむりむり
841デフォルトの名無しさん:2010/11/07(日) 13:30:24
最近になって漸く50%台になったんだっけ?<XP
ま、XPだって発売1周年の2002年頃にはWin9xのシェアが確か6〜7割ぐらいあったがw
842デフォルトの名無しさん:2010/11/07(日) 14:00:19
>>836
COM とか
OLE とか
OS/2 とか
843デフォルトの名無しさん:2010/11/07(日) 14:44:58
844デフォルトの名無しさん:2010/11/07(日) 15:05:16
>>848
世界規模ではそうだろうが、超先進国日本ではXPのシェア50%割ったらしい
845デフォルトの名無しさん:2010/11/07(日) 15:05:40
846デフォルトの名無しさん:2010/11/07(日) 15:07:07
>>844
おまいは預言者か
847デフォルトの名無しさん:2010/11/07(日) 15:11:49
↓予言は当たるのか!?↓
848デフォルトの名無しさん:2010/11/07(日) 15:12:24
んじゃ予言してやるよ
2014年を境にWindowsのシェアがガタ落ちする
849デフォルトの名無しさん:2010/11/07(日) 15:24:05
家庭ではiOS&Androidが優勢
企業では依然としてWindowsを採用するも減少傾向

まあこんな所じゃね
7はまあまあ売れてるらしいがトータルでXPを超える売上を誇るWindowsなんて今後絶対ありえない
850デフォルトの名無しさん:2010/11/07(日) 16:59:20
教えてください。
CreateWindowで算出される任意座標位置(CW_USEWINDOW)を取得したいです。
現在CreateDialog()でツールを作成していますが、
起動位置がリソース設定通りなので、変更したいと思ってます。
851デフォルトの名無しさん:2010/11/07(日) 17:01:45
WM_INITDIALOGでMoveWindowすればいいじゃない
852850:2010/11/07(日) 17:04:57
説明不足ですいません。起動時の位置をランダム(?)にしたいです。
オーバーラップウィンドウだと、起動時に右下にズレますが、
あれを実現したいです。
853デフォルトの名無しさん:2010/11/07(日) 17:11:00
MoveWindow(hWnd, 30, 30, 300, 300, FALSE);
でおk
854デフォルトの名無しさん:2010/11/07(日) 18:13:37
定期あげ
855850:2010/11/07(日) 18:17:27
結局、根っこでCreateWindowExを使うから無理みたいですね。どうも。
856 ◆0uxK91AxII :2010/11/07(日) 18:25:50
>>792
std::basic_string<TCHAR>
857デフォルトの名無しさん:2010/11/07(日) 18:31:57
遅レスでも全力で釣られます
858デフォルトの名無しさん:2010/11/07(日) 18:45:34
CStringイイ
stringイラネ
859デフォルトの名無しさん:2010/11/07(日) 19:13:16
CStringだけ引っこ抜いて使えばいいってのかい
860デフォルトの名無しさん:2010/11/07(日) 19:19:48
いまだに文字配列でプログラミングしているオレカコイイ

…氏にそうだorz
互換性考えたら特定のライブラリに依存できないんだよう
861デフォルトの名無しさん:2010/11/07(日) 19:29:11
string等の標準ライブラリはISO規格だぞ
862デフォルトの名無しさん:2010/11/07(日) 19:30:18
ウィンドウハンドルからそのウィンドウがDirectXを使って描画しているかどうかを判断するにはどうすればいいでしょうか
863デフォルトの名無しさん:2010/11/07(日) 19:34:53
stringとかCStringとか使うとバイナリがデカくなるから嫌だ
864デフォルトの名無しさん:2010/11/07(日) 19:37:00
char配列だけでいい。char配列onlyに企画を世界統一してほしい。
865デフォルトの名無しさん:2010/11/07(日) 19:37:32
そういう奴にかぎってCRTを静的リンクしてる
866デフォルトの名無しさん:2010/11/07(日) 19:40:26
WDKのmsvcrt.libを使ってますが何か?
867デフォルトの名無しさん:2010/11/07(日) 19:45:31
WDKのmsvcrt.libを使うとVista/7専用アプリにしないとあまり小さくならない
868デフォルトの名無しさん:2010/11/07(日) 19:59:03
>>866
やってみたことすら無いのが丸分かり
869デフォルトの名無しさん:2010/11/07(日) 19:59:49
ブロードバンド全盛どころかその言葉すら流行らなくなってるご時世なのに、
なにをロートルなことを言ってるんだ。
870デフォルトの名無しさん:2010/11/07(日) 20:02:17
バイナリが大きくてもいいなら最初から.NETで作っちゃうしー
871デフォルトの名無しさん:2010/11/07(日) 20:11:34
つうかCRT/MFCの静的リンクライブラリなんて使ったことねぇしインスコすらしてねぇや
新規作成したプロジェクトをそのままビルドすると必ずリンクエラー出るけど
872デフォルトの名無しさん:2010/11/07(日) 20:14:43
VC++使ってないのがバレバレですよ
873デフォルトの名無しさん:2010/11/07(日) 20:14:55
stringは使えよ馬鹿
何のためのC++だ雑魚
874デフォルトの名無しさん:2010/11/07(日) 20:18:27
デストラクタで自動的にリソースを開放する目的「だけ」が目当てでCではなくC++を使ってる。
875デフォルトの名無しさん:2010/11/07(日) 20:18:27
CoInitializeとCoUninitializeって同じスレッドで何回も呼び出しても大丈夫なの?
とあるComをクラスでラップしたいんだ。
876デフォルトの名無しさん:2010/11/07(日) 20:19:42
でも配列は速いよ
.Netで10行ほどの処理がC++(C)で100行くらいになったが、
代わりに速さが10倍くらいになった
5秒待たされた結果がボタン押したらすぐ出るのは無視できないレベルだ
877デフォルトの名無しさん:2010/11/07(日) 20:21:32
初心者かよ
境界チェックしないから速いだけだろ
878デフォルトの名無しさん:2010/11/07(日) 20:26:01
それ、まともな奴が.netで書いたら5秒もかからない気がする
879デフォルトの名無しさん:2010/11/07(日) 20:28:08
なぜチェックしていないと言えるんだ
かなり保守的に書いて100行だ文句あっか
880デフォルトの名無しさん:2010/11/07(日) 20:30:05
>>875
CoInitialize/CoInitializeExが成功した回数とCoUninitializeを呼ぶ回数は合わせろと書いてあるぐらいだし、参照カウントで管理されてるから好きなだけ呼べ
881デフォルトの名無しさん:2010/11/07(日) 20:30:19
.NET自体がアクセス毎に境界チェックしているが
C++にそんな機構は無いという意味だろ馬鹿
882デフォルトの名無しさん:2010/11/07(日) 20:33:20
>>880
thx! これでできるよ。
883デフォルトの名無しさん:2010/11/07(日) 20:34:21
>>881
それは全部必要なのか
ほんとうにそう思うのか
884デフォルトの名無しさん:2010/11/07(日) 20:35:55
そりゃ確実に不要と判断されれば最適化で削除されるだろうよ
885デフォルトの名無しさん:2010/11/07(日) 20:36:19
鉄板貼り付けて保守って言ってるような気がするな
886デフォルトの名無しさん:2010/11/07(日) 20:37:34
たぶんLINQでキャッシュせずに書いてるとかそういう落ちじゃないの
887デフォルトの名無しさん:2010/11/07(日) 20:40:45
C/C++使いの無能共はいまだに未初期化変数にアクセスとかバッファの境界越えてアクセスとか
アホなコードを書いてしまうものよ
888デフォルトの名無しさん:2010/11/07(日) 20:42:04
このスレは無能の集まりだからなw
889デフォルトの名無しさん:2010/11/07(日) 20:43:24
CとC++を一緒くたにするとリーナスが怒る
890デフォルトの名無しさん:2010/11/07(日) 20:48:35
C++とC#を一緒くたにするとボーナスが減る
891デフォルトの名無しさん:2010/11/07(日) 20:49:32
一番多そうなのは整数オーバーフローかなあ
普段からこういう風に書く人ってどれぐらい居るんだろ

if(width==0 || height==0 || (SIZET_MAX/sizeof(DWORD)/width) < height) {
 return NULL;
}
else {
 return new (std::nothrow) DWORD[width*height];
}
892デフォルトの名無しさん:2010/11/07(日) 21:03:19
if(width>1024 || height>768) {
 return NULL;
}
else {
 return new (std::nothrow) DWORD[width*height];
}
893デフォルトの名無しさん:2010/11/07(日) 21:04:53
FullHD
894デフォルトの名無しさん:2010/11/07(日) 21:10:38
>>862
ウィンドウハンドルからプロセスを引き当てて、
そのプロセスがd3d.dllとかをロードしてるかどうかで判断可能かもしれないけど、
使ってない可能性もあるだろうし…
具体的に何がしたいかによってはいい答え貰えるかもよ。
それからVistaからはGUIはDirect3Dで描画されてるのでどうなるのか判らんw
895デフォルトの名無しさん:2010/11/07(日) 21:13:20
> VistaからはGUIはDirect3Dで描画
ばーか
896デフォルトの名無しさん:2010/11/07(日) 21:15:16
7からはGUIはDirect3Dで描画されてるだった。すまん。
897デフォルトの名無しさん:2010/11/07(日) 21:24:26
>>894
あなたにとってDirectXはDirect3Dだけですか?
898デフォルトの名無しさん:2010/11/07(日) 21:37:53
はい。
899デフォルトの名無しさん:2010/11/07(日) 21:39:31
では馬鹿確定です
900デフォルトの名無しさん:2010/11/07(日) 21:40:31
そうでしゅか
901デフォルトの名無しさん:2010/11/07(日) 21:40:42
馬鹿とは何ですか。馬鹿なのでわかりません。教えてください。
902デフォルトの名無しさん:2010/11/07(日) 21:43:07
馬鹿とはAPIとC++で開発する人々の総称です。
903デフォルトの名無しさん:2010/11/07(日) 21:44:05
それは天才と言えるのではないですか。
904デフォルトの名無しさん:2010/11/07(日) 21:45:09
天才と馬鹿は紙一重なのでつまり誤差として無視できます
905デフォルトの名無しさん:2010/11/07(日) 21:47:14
.NETがあるのにAPIで開発するのは馬鹿です。
906デフォルトの名無しさん:2010/11/07(日) 21:47:16
>>894
まじれすすると、Aeroの描画を担当してるのはDesktopWindowManagerであって
ユーザーアプリが直接DirectXをたたいてるわけではない
907デフォルトの名無しさん:2010/11/07(日) 21:51:42
DirectX=Direct3Dという思考停止馬鹿は来なくていいよ
908デフォルトの名無しさん:2010/11/07(日) 21:52:32
スクリーンショットを撮るアプリケーションを作りたいのですが、GetDCを使った場合、DirectXで描画しているアプリケーションからは取得できないので、描画方法によって取得方法を変える、といったアプローチをとりたいのですが、どうすればいいでしょうか
909デフォルトの名無しさん:2010/11/07(日) 22:07:16
>>906
てことは普通に書けばどれも間接的にDirectX使ってるということか
使わないように指定する必要があるなら、使っていないものの方が探しやすいのかもしれない
910デフォルトの名無しさん:2010/11/07(日) 22:07:55
DirectXのDrawPrimitiveとGDIのBitBltとかって同時に使えないんだっけ?
911デフォルトの名無しさん:2010/11/07(日) 22:09:13
>>910
使えるけど、書く先が違う。
片やフレームバッファ。片やデバイスコンテキスト。
912デフォルトの名無しさん:2010/11/07(日) 22:14:28
ということは描画方法が混在するアプリケーションの場合は判別できない気がする
レジストリでDirectXサーフェスをキャプチャできる方法もあった気がするが
913デフォルトの名無しさん:2010/11/07(日) 22:15:46
>>909
アプリが間接的にDirectX使ってるわけではない
914デフォルトの名無しさん:2010/11/07(日) 22:18:00
どっちだよw
915デフォルトの名無しさん:2010/11/07(日) 22:20:24
アプリが描いたクライアント領域のビットマップをdwm.exeが回収して
合成する時にDirect3Dを使用
916デフォルトの名無しさん:2010/11/07(日) 22:23:49
スクショ撮れない時って真っ暗になった気がする
GDIとDirectXの両方からとってきてORで合成とかムリかな
917デフォルトの名無しさん:2010/11/07(日) 22:30:24
BDなんかの著作権保護されたコンテンツも真っ黒になるんじゃなかった?
918デフォルトの名無しさん:2010/11/07(日) 22:30:25
プリントスクリーンではどれもとれるぜ
XPだけど
919デフォルトの名無しさん:2010/11/07(日) 22:33:19
無能ばっか

DWMのAPIをフックすれば簡単にスクショ撮れるだろ
方法はぐぐれ
920デフォルトの名無しさん:2010/11/07(日) 22:39:31
どこが簡単だよ、めんどくせえじゃねえか
自分でやったことがない奴の典型だなw
921デフォルトの名無しさん:2010/11/07(日) 22:40:19
そもそもAPIのフックなど使わなくても、Aero上でもGetDCで取得したDCでキャプチャ可能。
ググれとか言っている奴はどれだけ馬鹿なんだよ。
922デフォルトの名無しさん:2010/11/07(日) 22:43:53
根本的にDirect3Dがキャプチャできないという前提自体がアホ。
オーバーレイとでも混同しているのか?
かなり頭の悪い奴が混ざってるな。
923デフォルトの名無しさん:2010/11/07(日) 22:45:46
と、かなり頭の悪い>>922がほざいています
924デフォルトの名無しさん:2010/11/07(日) 22:47:50
Win32APIのスレとはいえ、Direct3Dに有りもしない幻想を見ている人間は何なんだろう?
畑違いで知らないのならレスをしなければいいのに。
925デフォルトの名無しさん:2010/11/07(日) 22:53:53
そもそもGetScreenCapture()という関数があれば何も問題はなかったんだ
926デフォルトの名無しさん:2010/11/07(日) 22:54:13
流石は隔離スレ
927デフォルトの名無しさん:2010/11/07(日) 22:55:32
コロコロ変わるDirect3Dのアーキテクチャを熟知した人間がこんなスレに居るはず無いでしょうがw
928デフォルトの名無しさん:2010/11/07(日) 22:55:41
>>907は何が言いたいんだ?
DirectSoundとかいいたいのか?w
929デフォルトの名無しさん:2010/11/07(日) 22:58:48
DirectDrawかもしれない
930デフォルトの名無しさん:2010/11/07(日) 23:01:35
Inputの俺を忘れてもらっては困るな
931デフォルトの名無しさん:2010/11/07(日) 23:02:03
DirectDraw
DirectShow
Direct2D
DirectWrite
932デフォルトの名無しさん:2010/11/07(日) 23:05:09
>>921
GetDCなんか使うとAeroのグラス部分がちゃんと撮れない。
933デフォルトの名無しさん:2010/11/07(日) 23:08:08
ここに書いてる連中の九割くらいXP厨じゃねーだろうな
934デフォルトの名無しさん:2010/11/07(日) 23:09:17
>>932
きちんと合成後の状態がとれるよ。
それともレイヤードウインドウ等を含めて、ブレンド前の状態を完全保存しろと言うことなのか?
後出しで誰も要望していない無意味な話を追加していく奴っていったい何なんだろう?
935デフォルトの名無しさん:2010/11/07(日) 23:10:39
>>934
Aeroのグラス部分が透けないって事だろ。
936デフォルトの名無しさん:2010/11/07(日) 23:11:32
そもそもアプリケーション側でDirectXを使おうとするとAeroがOFFになるだろ
937デフォルトの名無しさん:2010/11/07(日) 23:12:18
無知なXP厨ばっか
もうすぐ2011年でちゅよ〜
938デフォルトの名無しさん:2010/11/07(日) 23:20:43
正直ここまで酷いとは思わなかった。
939デフォルトの名無しさん:2010/11/07(日) 23:29:54
Win7で適当に作ったDirect2Dアプリを色々な方法でキャプチャしてみた
結果は
○ GetDC(GetDesktopWindow())+BitBlt
× GetDC(対象ウィンドウ)+BitBlt
× PrintWindow
940デフォルトの名無しさん:2010/11/07(日) 23:36:07
定期あげ
941デフォルトの名無しさん:2010/11/07(日) 23:41:37
フリップ3Dに使ってるAPIが分かれば出来そうだが全然公表されてないし、MSの閉鎖主義には困ったものだ
また司法省に叩かれればいいのにw
942デフォルトの名無しさん:2010/11/07(日) 23:45:48
↑中国人発見
943デフォルトの名無しさん:2010/11/07(日) 23:47:02
そんなの解析すればすぐ分かるじゃん
944デフォルトの名無しさん:2010/11/07(日) 23:49:11
信用できるかわからんけど
ttp://d.hatena.ne.jp/NyaRuRu/20081126/p1
あとWMP12(動画再生中)をGetDC(hWnd)で撮ったら真っ暗だった
945デフォルトの名無しさん:2010/11/07(日) 23:54:59
>>891
if(width==0 || height==0 || (SIZET_MAX/sizeof(DWORD)/width) < height) {

で、sizeof(DWORD)で割ってる意味が分からんのだが
946デフォルトの名無しさん:2010/11/07(日) 23:55:59
>>945
C++を勉強しましょう。
947デフォルトの名無しさん:2010/11/07(日) 23:56:25
>>944
オーバーレイのはとれないね
948デフォルトの名無しさん:2010/11/07(日) 23:59:12
オーバーレイどころかDirect3DだってGetDC(hWnd)ではとれない
949デフォルトの名無しさん:2010/11/08(月) 00:00:13
>>945
new T[N]はsizeof(T)*Nバイト要求されるって分かってるか
950デフォルトの名無しさん:2010/11/08(月) 00:05:16
馬鹿は黙ってろ
951デフォルトの名無しさん:2010/11/08(月) 00:06:24
SIZE_T_MAX は size_t 型のとりうる最大値な
これを欲しい要素(この場合DWORD)のサイズで割ると、オーバーフローせずに確保できる最大サイズがわかる
この場合 width * height <= SIZE_T_MAX / sizeof(DWORD) が成立すればオーバーフローせずに確保できる
だからこういう式になる
わかってると思うけど一応。
952デフォルトの名無しさん:2010/11/08(月) 00:14:31
VC++2005以降のnew T[x]はsizeof(T) * xのオーバーフローをチェックするので
いちいちsizeof(DWORD)で割らなくて宜しい

と言いたいのでは?
953デフォルトの名無しさん:2010/11/08(月) 00:16:49
わざわざエラーリスク背負わなくても

>>892で十分
954デフォルトの名無しさん:2010/11/08(月) 00:19:49
エラーリスク(笑)
955デフォルトの名無しさん:2010/11/08(月) 00:26:45
>>952
少なくとも>>891ではxが既にオーバーフローしてる場合にはそのチェックでは防げん
956デフォルトの名無しさん:2010/11/08(月) 00:31:05
ここの住人は簡単な話題には積極的に突っ込みますよ
957デフォルトの名無しさん:2010/11/08(月) 00:33:46
>>955
はあ?

if(width==0 || height==0 || (SIZET_MAX/width) < height) {
こう書いたらwidth*heightはオーバーフローしないよ?
958デフォルトの名無しさん:2010/11/08(月) 00:34:00
(割と最近登場した)intsafe.hも使おうよ。
959デフォルトの名無しさん:2010/11/08(月) 00:38:50
>>945>>955
算数もできないコイツらって何なの?
960945:2010/11/08(月) 00:42:04
>>951
何に対してのオーバーフロー対策?
width、height?

俺も>>957でいいんでね?と思ってるから、sizeof(DWORD)で
割る理由が分からないのだが。。。
961デフォルトの名無しさん:2010/11/08(月) 00:43:41
>>960
マジで小学校からやり直したら?
962945:2010/11/08(月) 00:43:44
×:width、height?
○:width*height?
訂正
963CopyRect:2010/11/08(月) 00:44:15
おいお前らAPIの話をしろ
964デフォルトの名無しさん:2010/11/08(月) 00:45:27
widthやらの数値型の範囲に収まればいいんだからDWORDのサイズは関係ないよね
965デフォルトの名無しさん:2010/11/08(月) 00:48:33
あとはきれいにnewが失敗してくれる
966デフォルトの名無しさん:2010/11/08(月) 00:49:35
文字を使った不等式は中学校の範囲か
とりあえず>>945がリア小じゃなかったら日本の未来は終わりだ
967デフォルトの名無しさん:2010/11/08(月) 00:50:55
size=width*heightとしてsizeof(DWORD)*sizeがオーバーフローする事は分からんのか?
968945:2010/11/08(月) 00:52:55
>>967
つまり、newで確保したメモリサイズの保持内部変数がオーバーフローするって事でおk?
969デフォルトの名無しさん:2010/11/08(月) 00:54:27
こいつ真性の馬鹿か?
width=height=40000でも代入して計算してみろよ
970デフォルトの名無しさん:2010/11/08(月) 01:05:26
まあいろんな前提もかかずにあの式だけじゃあ憶測も飛ぶわな
そもそもwidthはintなのかint64なのかで話が違っても来る
こんな未定義状態で議論するもんじゃないよ
しかも>>891は悪い例で出てるんだ。解釈できたところで威張っても仕方なかろう
971945:2010/11/08(月) 01:05:44
ん?
40000*40000=1600000000=5F5E1000 < SIZET_MAX(FFFFFFFF)
で、この時点でオーバーフローはしてないよな。

で、なんで
SIZET_MAX/sizeof(DWORD) = 3FFFFFFF
と比較してるんだ?と質問してるのだが。
972デフォルトの名無しさん:2010/11/08(月) 01:10:34
>>970
はぁ?>>891は良い例だろ

>そもそもwidthはintなのかint64なのか
SIZET_MAXを割ってるんだからsize_tと等価かそれより小さい符号無し整数型なのは読み取れるだろ

無能が多すぎるぜ…
973デフォルトの名無しさん:2010/11/08(月) 01:10:51
974デフォルトの名無しさん:2010/11/08(月) 01:13:10
>>971
width=height=0x9C40
width*height=0x5F5E1000
width*height*sizeof(DWORD)=0x17D784000 ←SIZET_MAX=0xFFFFFFFFだとオーバーフロー

もう来るなぼけ
975デフォルトの名無しさん:2010/11/08(月) 01:13:52
>>972
悪い例だよ
こんなのを書いてたら君、落第するよ
976デフォルトの名無しさん:2010/11/08(月) 01:17:14
>>945とか>>970みたいなアホはプログラマーじゃないよね
977945:2010/11/08(月) 01:19:58
>>974
>width*height*sizeof(DWORD)=0x17D784000 ←SIZET_MAX=0xFFFFFFFFだとオーバーフロー
だから、「何が」オーバーフローするのか書けよ。
978デフォルトの名無しさん:2010/11/08(月) 01:21:09
>>977
>>967

とうとう日本語まで読めなくなったか
979デフォルトの名無しさん:2010/11/08(月) 01:22:24
画像のサイズを扱ってるならそれぞれ10000超えたら怪しいし、
width*heightが1000万超えたあたりからちょっと怪しいとか、
そういう判断は付くだろ。
オーバーフローとかそんなこと言ってる以前の問題だ。
常識で考えろ。
980デフォルトの名無しさん:2010/11/08(月) 01:23:58
>>977
頭大丈夫か?
981デフォルトの名無しさん:2010/11/08(月) 01:25:44
オーバーフローあげ
982デフォルトの名無しさん:2010/11/08(月) 01:27:22
SIZET_MAX = 0xFFFFFFFF
sizeof(DWORD) = 4

width = 0x3FFFFFFF
height = 0x2

こうした場合の動作は正しいのか
983デフォルトの名無しさん:2010/11/08(月) 01:31:45
まだ分かってないやつがいるw
984945:2010/11/08(月) 01:34:02
>>978
間違えた。
sizeof(DWORD) をかける必要は何?

最初からこれの意味が分からないのだ。
985デフォルトの名無しさん:2010/11/08(月) 01:38:32
986デフォルトの名無しさん:2010/11/08(月) 01:39:18
そろそろ
次スレ
たてたほうがいいとおもう
987デフォルトの名無しさん:2010/11/08(月) 01:43:20
イラネ
988デフォルトの名無しさん:2010/11/08(月) 01:43:27
KeBugCheckEx を呼び出すには、どのライブラリをリンクすればいいのでしょう?


MSのサイト
ttp://msdn.microsoft.com/en-us/library/ff551961(VS.85).aspx
には ntoskrnl.lib に含まれると書いてますが ntoskrnl.lib を加えても
「未解決の外部参照」って言われます。
(「パスが見つかりません」とかは出ないのでライブラリ自体は認識している模様)
989945:2010/11/08(月) 01:44:53
>>985
で、要求したら何がオーバーフローするの?

width*height > SIZET_MAX/sizeof(DWORD)
の場合、
new (std::nothrow) DWORD[width*height];
が単にメモリ確保に失敗するだけ?
990デフォルトの名無しさん:2010/11/08(月) 01:47:41
new x[y] はコンパイラが operator new[](sizeof(x)*y) に展開しているのを知らないのか。
991デフォルトの名無しさん:2010/11/08(月) 01:52:02
>>990
ダウト
992デフォルトの名無しさん:2010/11/08(月) 01:55:25
>>989
アセンブリリスティングとか見たことないの?
そんなレヴェルでC++を使ってるなんて信じられない
993945:2010/11/08(月) 01:57:35
抽出結果:
>アセンブリリスティング
>レヴェル
994デフォルトの名無しさん:2010/11/08(月) 01:58:56
ちょっとトイレ
995デフォルトの名無しさん:2010/11/08(月) 01:59:55
とりあえず 945 は今すぐ C++ から卒業しなさい。
996デフォルトの名無しさん:2010/11/08(月) 02:00:31
>>994
エロい行為は禁止です。
997デフォルトの名無しさん:2010/11/08(月) 02:01:52
998デフォルトの名無しさん:2010/11/08(月) 02:02:29
以上、チンパンジー並みの脳味噌を持つ>>945とそれに群がる乞食のショーをお送りしました。
では、次スレでお会いしましょう。
999945:2010/11/08(月) 02:05:22
釣れた釣れたw
1000デフォルトの名無しさん:2010/11/08(月) 02:05:49
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。