Win32API質問箱 Build75
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2009/01/08(木) 23:06:42やさしいお兄さんやお姉さんたちが答えてくれるかも。
「知らないならレスしないで下さい。ウザイだけです。 」なんて言わないでねっ!
過去スレ、関連リンクは>>2-10くらい。
■注意
・質問する前にMSDNライブラリやPlatformSDK、Google等で検索しましょう。
・日本語版MSDN Online Libraryは不完全です。英語版(http://msdn2.microsoft.com/library/)の利用推奨。
・APIフックなど高度な事をしたい場合はできるだけAdvenced Windowsを読みましょう。
・言語特有の問題やIDE、MFCやVCLなどの質問はそれぞれの言語や開発環境スレで
- Win32API質問箱 wiki
http://wiki.livedoor.jp/program1/d/FrontPage
Win32API質問箱 Build74
http://pc11.2ch.net/test/read.cgi/tech/1229239827/
0002デフォルトの名無しさん
2009/01/08(木) 23:07:00http://www.microsoft.com/japan/msdn/
- MSDN ライブラリ
http://msdn.microsoft.com/ja-jp/library/
http://msdn.microsoft.com/en-us/library/
- MSDN ライブラリ (ローカル版)
http://www.microsoft.com/downloads/details.aspx?familyid=6FF3BC60-32C8-4C22-8591-A20BF8DFF1A2&displaylang=ja
http://www.microsoft.com/downloads/details.aspx?familyid=B8704100-0127-4D88-9B5D-896B9B388313&displaylang=ja
- Windows SDK & Platform SDK
http://www.microsoft.com/downloads/details.aspx?FamilyID=74dd6e2d-89c6-4e1e-af00-fc7d70f15439&DisplayLang=en
http://www.microsoft.com/downloads/details.aspx?FamilyID=c2b1e300-f358-4523-b479-f53d234cdccf&DisplayLang=en
http://www.microsoft.com/downloads/details.aspx?FamilyID=ff6467e6-5bba-4bf5-b562-9199be864d29&DisplayLang=en
http://www.microsoft.com/downloads/details.aspx?FamilyID=7614FE22-8A64-4DFB-AA0C-DB53035F40A0&displaylang=ja
http://www.microsoft.com/downloads/details.aspx?FamilyId=484269E2-3B89-47E3-8EB7-1F2BE6D7123A
http://www.microsoft.com/msdownload/platformsdk/sdkupdate/XPSP2FULLInstall.htm
http://www.microsoft.com/msdownload/platformsdk/sdkupdate/psdk-full.htm
0003デフォルトの名無しさん
2009/01/08(木) 23:07:11http://www.google.com/
下記サイトは、違っている事もあるので参考程度にしよう!
流れを参考にしながら、APIの仕様を読めば使えるはず。
- 猫でもわかるプログラミング
http://www.kumei.ne.jp/c_lang/
- Win32 API入門
http://wisdom.sakura.ne.jp/system/winapi/
- Win32 プログラミング入門
http://www7.plala.or.jp/keny01/
●Win32API(C言語)
http://www.geocities.jp/ky_webid/win32c/
- Advanced Windows 第5版(書籍)
http://www.amazon.co.jp/dp/4891005920
0004デフォルトの名無しさん
2009/01/08(木) 23:07:5073 ttp://pc11.2ch.net/test/read.cgi/tech/1227934931/
72 ttp://pc11.2ch.net/test/read.cgi/tech/1226575789/
71 ttp://pc11.2ch.net/test/read.cgi/tech/1224745158/
70 ttp://pc11.2ch.net/test/read.cgi/tech/1221446107/
69 ttp://pc11.2ch.net/test/read.cgi/tech/1217687038/
68 ttp://pc11.2ch.net/test/read.cgi/tech/1215348804/
67 ttp://pc11.2ch.net/test/read.cgi/tech/1212931246/
66 ttp://pc11.2ch.net/test/read.cgi/tech/1210775622/
65 ttp://pc11.2ch.net/test/read.cgi/tech/1208847084/
64 ttp://pc11.2ch.net/test/read.cgi/tech/1207099291/
63 ttp://pc11.2ch.net/test/read.cgi/tech/1204600558/
62 ttp://pc11.2ch.net/test/read.cgi/tech/1202060403/
61 ttp://pc11.2ch.net/test/read.cgi/tech/1199514664/
60 ttp://pc11.2ch.net/test/read.cgi/tech/1196874830/
59 ttp://pc11.2ch.net/test/read.cgi/tech/1194701996/
58 ttp://pc11.2ch.net/test/read.cgi/tech/1191781463/
57 ttp://pc11.2ch.net/test/read.cgi/tech/1189255282/
56 ttp://pc11.2ch.net/test/read.cgi/tech/1186989201/
55 ttp://pc11.2ch.net/test/read.cgi/tech/1184853465/
54 ttp://pc11.2ch.net/test/read.cgi/tech/1181645965/
53 ttp://pc11.2ch.net/test/read.cgi/tech/1178882828/
52 ttp://pc11.2ch.net/test/read.cgi/tech/1176828891/
51 ttp://pc11.2ch.net/test/read.cgi/tech/1174416295/
0005デフォルトの名無しさん
2009/01/08(木) 23:08:0749 ttp://pc10.2ch.net/test/read.cgi/tech/1168708801/
48 ttp://pc10.2ch.net/test/read.cgi/tech/1166172047/
47 ttp://pc8.2ch.net/test/read.cgi/tech/1163375772/
46 ttp://pc8.2ch.net/test/read.cgi/tech/1159158014/
45 ttp://pc8.2ch.net/test/read.cgi/tech/1156032806/
44 ttp://pc8.2ch.net/test/read.cgi/tech/1151501925/
43 ttp://pc8.2ch.net/test/read.cgi/tech/1148005509/
42 ttp://pc8.2ch.net/test/read.cgi/tech/1144962549/
41 ttp://pc8.2ch.net/test/read.cgi/tech/1141392216/
40 ttp://pc8.2ch.net/test/read.cgi/tech/1138893959/
39 ttp://pc8.2ch.net/test/read.cgi/tech/1136673250/
38 ttp://pc8.2ch.net/test/read.cgi/tech/1133798345/
37 ttp://pc8.2ch.net/test/read.cgi/tech/1131884991/
36 ttp://pc8.2ch.net/test/read.cgi/tech/1128951330/
35 ttp://pc8.2ch.net/test/read.cgi/tech/1125850096/
34 ttp://pc8.2ch.net/test/read.cgi/tech/1122723009/
33 ttp://pc8.2ch.net/test/read.cgi/tech/1120153520/
32 ttp://pc8.2ch.net/test/read.cgi/tech/1117271829/
31 ttp://pc8.2ch.net/test/read.cgi/tech/1114762194/
30 ttp://pc8.2ch.net/test/read.cgi/tech/1112345886/
29 ttp://pc8.2ch.net/test/read.cgi/tech/1110281860/
28 ttp://pc5.2ch.net/test/read.cgi/tech/1108199304/
27 ttp://pc5.2ch.net/test/read.cgi/tech/1106103119/
26 ttp://pc5.2ch.net/test/read.cgi/tech/1104109858/
0006デフォルトの名無しさん
2009/01/08(木) 23:08:1824 ttp://pc5.2ch.net/test/read.cgi/tech/1098967135/
23 ttp://pc5.2ch.net/test/read.cgi/tech/1095534704/
22 ttp://pc5.2ch.net/test/read.cgi/tech/1092524669/
21 ttp://pc5.2ch.net/test/read.cgi/tech/1090422324/
20 ttp://pc5.2ch.net/test/read.cgi/tech/1088140233/
19 ttp://pc5.2ch.net/test/read.cgi/tech/1084697545/
18 ttp://pc5.2ch.net/test/read.cgi/tech/1081702990/
17 ttp://pc5.2ch.net/test/read.cgi/tech/1077470361/
16 ttp://pc2.2ch.net/test/read.cgi/tech/1073830065/★
15 ttp://pc2.2ch.net/test/read.cgi/tech/1069339866/★
14 ttp://pc5.2ch.net/tech/kako/1065/10653/1065328397.html
13 ttp://pc5.2ch.net/tech/kako/1059/10595/1059549320.html
12 ttp://pc5.2ch.net/tech/kako/1056/10560/1056033645.html
11 ttp://pc5.2ch.net/tech/kako/1052/10526/1052651750.html
10 ttp://pc5.2ch.net/tech/kako/1047/10478/1047819779.html
9 ttp://pc5.2ch.net/tech/kako/1044/10449/1044929160.html
8 ttp://pc5.2ch.net/tech/kako/1040/10409/1040964626.html
7 ttp://pc3.2ch.net/tech/kako/1036/10366/1036654893.html
6 ttp://pc3.2ch.net/tech/kako/1032/10325/1032548635.html
5 ttp://pc3.2ch.net/tech/kako/1028/10285/1028580373.html
4 ttp://pc3.2ch.net/tech/kako/1023/10233/1023361418.html
3 ttp://pc.2ch.net/tech/kako/1017/10170/1017072275.html
2 ttp://pc.2ch.net/tech/kako/1006/10067/1006783012.html
1 ttp://pc.2ch.net/tech/kako/991/991576947.html
0007デフォルトの名無しさん
2009/01/08(木) 23:08:490008デフォルトの名無しさん
2009/01/08(木) 23:13:00http://www.microsoft.com/downloads/details.aspx?FamilyID=7bbe5eda-5062-4ebb-83c7-d3c5ff92a373&DisplayLang=ja
0009デフォルトの名無しさん
2009/01/09(金) 00:26:05流れを参考にしながら、APIの仕様を読めば使えるはず。
- 猫でもわかるプログラミング
http://www.kumei.ne.jp/c_lang/
- Win32 API入門
http://wisdom.sakura.ne.jp/system/winapi/
- Win32 プログラミング入門
http://www7.plala.or.jp/keny01/
●Win32API(C言語)
http://www.geocities.jp/ky_webid/win32c/
- Advanced Windows 第5版(書籍)
http://www.amazon.co.jp/dp/4891005920
Advanced Windowsってダメダメなの?
0010デフォルトの名無しさん
2009/01/09(金) 00:30:30超高速にHDDのファイルリストを取得する技があるって聞いたんですが
具体的にどうやればいいんでしょうか?
0011デフォルトの名無しさん
2009/01/09(金) 00:31:150012デフォルトの名無しさん
2009/01/09(金) 02:09:300013デフォルトの名無しさん
2009/01/09(金) 05:17:110014名無し募集中。。。
2009/01/09(金) 05:51:23,':.:.:.:.:.:l、:.:.:.:.:.:.:.:.ト、!ハト、:.:.:.:',:.:l:.:..: : : : : : : :: : : : 〉
/:l:.:.:.:.:.:.l ヽト、:.:.:.:.l /ィ云ミl:.:.:.:.l:.:ト――――ァ´:./
,':.:.l:l:.:.:.:N,≧z-ヽ、l ゛弋ィリ l:.:.:.:.:l/ /: :/
!:.:.:l:l:.:.:.:l〈弋ィ} lイ:.:.:.l /: : : / ,、
!:.:.:N:.:.:.:ヽ、´ 、 !:.:ハ! /: : : / }: :ヽ
. l:.:.:.:.:lヽ、:ヘヽ r‐、 ,イ:./ __ /: : : 〈___/: : : 〉
. l:.:.:.:.:l ヽ、 ` - ...__  ̄ ./ l:.ムィ \: : : : : : : : : : : : /
. !:.:.:.l:.! `ヽ{ !  ̄ _..イ−{ ` ̄ ̄ ̄ ̄ ̄
l:.:.:.:.l:l _, -ィ} / /−ム- / これは>>1乙じゃなくて
l:.:.:.:.l:l / /-/‐ /,−く-、 l ツインテールなんだからな!
l:.:.:.:.l:l / /−{ / { }, ヽ. l 勘違いするんじゃないよ!
0015デフォルトの名無しさん
2009/01/09(金) 12:45:3410スレぐらい過去スレ眺めてみたけどAdvancedWindowsは誰一人叩いてないのにな
誰だよ
0016デフォルトの名無しさん
2009/01/09(金) 13:03:37::| ____
::|. ./|=| ヽ. ≡三< ̄ ̄ ̄>
::|. / |=| o |=ヽ .≡ ̄>/
::|__〈 ___ ___l ≡三/ /
::|、ヽ|.|┌--、ヽ|/,-┐| ≡/ <___/|
::|.|''''|.\ヽ--イ.|ヽ-イ:| ≡三|______/
::|.ヾ |.::. .. ̄ ̄| ̄ /
::| ';:::::┌===┐./
::| _〉ヾ ヾ二ソ./ こ、これは>>1乙じゃなくてスラッガーなんだから
::||ロ|ロ| `---´:|____ 変な勘違いしないでよね!
::|:|ロ|ロ|_____/ロ|ロ|ロ,|`ヽ
::| |ロ|旦旦旦旦旦/ロ/ロ|旦,ヽ
::|ロヽ 旦旦旦旦旦./ロ,/|::旦旦)
::|ヾ旦旦旦旦旦旦,,,/::::|、 旦旦|
0017デフォルトの名無しさん
2009/01/09(金) 13:53:37●がついてるサイトの事だろ
0018デフォルトの名無しさん
2009/01/09(金) 14:41:070019デフォルトの名無しさん
2009/01/09(金) 14:41:560020デフォルトの名無しさん
2009/01/09(金) 14:48:250021デフォルトの名無しさん
2009/01/09(金) 15:43:510022デフォルトの名無しさん
2009/01/09(金) 16:33:17タスクマネージャ - プロセス - 関係の設定(プロセッサの関係)
にて、できる操作と同様に、あるプロセスに対して、CPUを1つにしたり、2つにしたりしたいのですが、方法が分かりませんでした。
0023デフォルトの名無しさん
2009/01/09(金) 16:36:330024デフォルトの名無しさん
2009/01/09(金) 16:39:530025デフォルトの名無しさん
2009/01/09(金) 16:48:000026デフォルトの名無しさん
2009/01/09(金) 16:50:050027デフォルトの名無しさん
2009/01/09(金) 16:52:220028デフォルトの名無しさん
2009/01/09(金) 16:58:190029デフォルトの名無しさん
2009/01/09(金) 17:08:08/ _ノ ヽ_ \
| ミ(⌒)(⌒)彡 / ̄ ̄ ̄\
| *(__人__)*:| / ⌒ ⌒ \
| ` ⌒´ | / ミ(>) (●)彡 ((\
| | | (__人__) |゙)〈〈ヽ、
ヽ ノ \ ` ー ´ /と' ; )
/⌒<>★<>、 `> <´ `i 〜|
/ / o )l /  ̄ ̄ ̄\ /⌒ヽ<>★<>⌒ヽ / .|
/ / | o |. | / ⌒ ⌒ \ | | o ) ソ /
_/ ,,/ ノ ヽ.| / ミ(●) (●)彡 | |. o |\ ,/
rと二ソ ノ'〜'〜'〜'〜ゞっァ | ::⌒(__人__)⌒:| ノ ノ |  ̄
ん'〜'〜'〜'〜ゝ \ `ー' / 〆 / \
| ィ / /⌒<>★<>ヽ `〜"〜ヽ〜ヽ〜ヽ〜ヽ
| / / / ソ o \\ | ィ |
|=|=/ r;と_,ノ〜'〜'〜'〜'〜、_゙っァ | / /
. | | | ⌒( Y ノ~´ | ノ 丿
| |, | 丿=/=/ |==|==|
. |,___)__`) ヘ__ハ_) |"___) __)
0030デフォルトの名無しさん
2009/01/09(金) 17:09:580031デフォルトの名無しさん
2009/01/09(金) 18:35:520032デフォルトの名無しさん
2009/01/09(金) 20:06:200033デフォルトの名無しさん
2009/01/09(金) 20:19:37(;><) . +。 . 。゚.・ o.゚ *。 ゚.+
l^ヽ'"'"~/^i'ツ'∧ ∧
ヾ 'ミω‘ * ) )) もふもふぽ・・・♪
ミ ´ ∀ ` と, ヽ
ッ _ "ミ__)。 . ゚. ☆。゚.・ o.゚
(´彡,. (,,_,ノ _ヽ_)_) ゚. 。゚.・ o *
゚。, ☆ ゚. + 。 ゚ ,。・ . 。 ,.。
0034デフォルトの名無しさん
2009/01/10(土) 03:54:37_TRUNCATEみたいなフラグ用意しとけばいいのに、使えねーなもう
0035デフォルトの名無しさん
2009/01/10(土) 04:29:33/*
* caller must free()
*/
wchar_t *SjisToUnicode(const char *str)
{
int size = ::MultiByteToWideChar(CP_OEMCP, 0, str, -1, NULL, 0);
if(!size) return NULL;
wchar_t *p = (wchar_t *)malloc(sizeof(wchar_t)*size);
if(!p) return NULL;
::MultiByteToWideChar(CP_OEMCP, 0, str, -1, p, size);
return p;
}
0036デフォルトの名無しさん
2009/01/10(土) 04:52:20そのSjisToUnicodeとやらで100万文字のバッファが確保されると馬鹿でかいメッセージボックスが出る羽目になる
そもそも、バッファが小さいと失敗するAPIもあれば途中までコピーしてくれるAPIもあったり統一性無さすぎ
0037デフォルトの名無しさん
2009/01/10(土) 05:02:580038デフォルトの名無しさん
2009/01/10(土) 05:05:23例えば、GetModuleFileNameなんて、バッファが小さいと
お節介にもバッファに収まる範囲までコピーしてくれて、
しかも終端のnullを付けないというおバカ仕様
おまけにサイズ0で呼び出しても必要なサイズが得られないしw
こういう糞APIを目の当たりにするとMSのプログラマって頭悪いなーって思う。
0039デフォルトの名無しさん
2009/01/10(土) 05:11:240040デフォルトの名無しさん
2009/01/10(土) 05:12:09msdn見たらvista以降では直ってるみたい
まさに「仕様という名のバグ」
0041デフォルトの名無しさん
2009/01/10(土) 05:17:26元のサイズがわからない事だってあるよ
頭悪いねキミ
0042デフォルトの名無しさん
2009/01/10(土) 05:36:29シェル開発チームの中の人も不便に感じたのだろうなあ
0043デフォルトの名無しさん
2009/01/10(土) 06:13:41今更なに言ってんだかって話だなw
0044デフォルトの名無しさん
2009/01/10(土) 07:16:47知らないならレスしないでください。ウザイだけです。
0045デフォルトの名無しさん
2009/01/10(土) 07:21:18ゆとり臭が物凄いんですが・・・
0046デフォルトの名無しさん
2009/01/10(土) 08:14:430047デフォルトの名無しさん
2009/01/10(土) 08:32:530048デフォルトの名無しさん
2009/01/10(土) 11:18:090049デフォルトの名無しさん
2009/01/10(土) 12:27:430050デフォルトの名無しさん
2009/01/10(土) 12:45:050051デフォルトの名無しさん
2009/01/10(土) 16:17:59スーパークラス化は継承だけでできるけど
0052デフォルトの名無しさん
2009/01/10(土) 16:21:250053デフォルトの名無しさん
2009/01/10(土) 16:23:55リストコントロールのItemChangedでメッセージが3連発くるとか無駄に面倒な部分は
.netで改善されたの?
0054デフォルトの名無しさん
2009/01/10(土) 16:29:11シェアウエア作ったら一時間でクラックされそうw
0055デフォルトの名無しさん
2009/01/10(土) 16:30:07君のプログラムはクラックしたくなる程の魅力が無いから
0056デフォルトの名無しさん
2009/01/10(土) 16:32:460057デフォルトの名無しさん
2009/01/10(土) 16:34:190058デフォルトの名無しさん
2009/01/10(土) 16:34:27>スーパークラス化は継承だけでできるけど
>.netってウィンドウのサブクラス化がやたら面倒じゃないか?
>スーパークラス化は継承だけでできるけど
>.netってウィンドウのサブクラス化がやたら面倒じゃないか?
>スーパークラス化は継承だけでできるけど
0059デフォルトの名無しさん
2009/01/10(土) 16:36:540060デフォルトの名無しさん
2009/01/10(土) 16:38:18Win32でWindowProc書くのと大差無い方法でできてもねぇ・・・
0061デフォルトの名無しさん
2009/01/10(土) 16:41:550062デフォルトの名無しさん
2009/01/10(土) 16:43:49NativeWindowクラス継承すれば一発
10行で書けるが?
0063デフォルトの名無しさん
2009/01/10(土) 16:45:27馬鹿?その先が面倒だろ
WM_〜や構造体を定義しなくてはならないしポインタへのアクセスだってあるだろ
素直にWin32で作った方が楽だよ
0064デフォルトの名無しさん
2009/01/10(土) 16:47:110065デフォルトの名無しさん
2009/01/10(土) 16:48:270066デフォルトの名無しさん
2009/01/10(土) 16:50:360067デフォルトの名無しさん
2009/01/10(土) 16:52:350068デフォルトの名無しさん
2009/01/10(土) 16:53:38これだから頭固いオッサンは困るんだよ。
0069デフォルトの名無しさん
2009/01/10(土) 17:00:010070デフォルトの名無しさん
2009/01/10(土) 17:01:290071デフォルトの名無しさん
2009/01/10(土) 17:02:070072デフォルトの名無しさん
2009/01/10(土) 17:02:24MAX_PATH vs 長いファイル名
Win32 vs .NET
この辺りはもはや定番だな
0073デフォルトの名無しさん
2009/01/10(土) 17:04:090074デフォルトの名無しさん
2009/01/10(土) 17:08:40GetFileSizeを使うよりFindFirstFileを使った方が効率的なのでしょうか?
0075デフォルトの名無しさん
2009/01/10(土) 17:10:090076デフォルトの名無しさん
2009/01/10(土) 17:11:270077デフォルトの名無しさん
2009/01/10(土) 17:13:12何を効率化したいの?実行時間?コードサイズ?書く手間?
実際に両方やってみりゃいいじゃん
0078デフォルトの名無しさん
2009/01/10(土) 17:15:01実行時間です
007974
2009/01/10(土) 17:42:420080デフォルトの名無しさん
2009/01/10(土) 17:50:30実際どうかは知らんが
0081デフォルトの名無しさん
2009/01/10(土) 17:50:410082デフォルトの名無しさん
2009/01/10(土) 18:07:38そこが知りたくて質問してみたんだ
誰か知っている人いないかな
>>81
ファイルサイズを知るって事だけが目的妥当そうですね
今作っているのはサイズ取得後そのファイルをMoveFileするので
先に共有違反とかがわかるのも良いかもしれない
まあ、自分で使うツールを作っているので細かいのはどっちでも良いか
0083デフォルトの名無しさん
2009/01/10(土) 18:10:19ttp://support.microsoft.com/kb/961110
0084デフォルトの名無しさん
2009/01/10(土) 18:10:31手間=バグの入る余地が増える
0085デフォルトの名無しさん
2009/01/10(土) 18:13:34そんな問題があるのか!
これから使うときは気をつける必要があるな
008674
2009/01/10(土) 18:19:05NTFSログファイルのサイズを増やすと発生しにくくなるって書いてあるけど
HDD残り500Mくらいで使ってるから発生しやすいのかな
とりあえず、ファイルサイズがつじつま合わなくなったらこれを疑ってみます
0087デフォルトの名無しさん
2009/01/10(土) 18:36:12>>83のリンク先にあるように、コマンドプロンプトから
chkdsk C: /L
で現在/最大のログサイズが分かる
0088デフォルトの名無しさん
2009/01/10(土) 18:44:21008974
2009/01/10(土) 18:46:45現在のログ ファイル サイズは 65536 KB です。
このボリュームの既定のログ ファイル サイズは 65536 KB です。
と言われた俺はこの現象出る可能性大!?
0090デフォルトの名無しさん
2009/01/10(土) 18:50:39と考えればおk!
うちのDドライブもそうなってたけど<満タン
009183
2009/01/10(土) 18:50:420092デフォルトの名無しさん
2009/01/10(土) 18:52:04規定=初期設定(パーティション作成直後)だろ。
自分でchkdsk /Lで変えない限り規定のままだったはず。
0093デフォルトの名無しさん
2009/01/10(土) 19:00:32現在の正確な情報はGetFileInformationByHandleで取れ
って結構前からMSDNに載ってたはずだが
邦訳MSDNには載ってない謎
0094デフォルトの名無しさん
2009/01/10(土) 19:03:32009590
2009/01/10(土) 19:04:24残念、うちのCドライブは
現在のログ ファイル サイズは 54512 KB です。
このボリュームの既定のログ ファイル サイズは 65536 KB です。
と出てる
0096デフォルトの名無しさん
2009/01/10(土) 20:38:06何らかのソフトがログファイルのサイズを変えたのだろ
市販のデフラグソフトとか
0097デフォルトの名無しさん
2009/01/10(土) 20:41:30それも関係してるかもな
009890
2009/01/10(土) 20:42:35mjd!?
うわぁ、分かりづらい仕様だな・・・
てか、それならchkdskのあの表示は意味無いじゃん
結局GetFileSize()の方が安全ってことだな
0099デフォルトの名無しさん
2009/01/10(土) 20:57:490100デフォルトの名無しさん
2009/01/10(土) 23:00:31mSize = ftell(mF);
fseek(mF,0,SEEK_SET);
でやあああああああああああ!
0101デフォルトの名無しさん
2009/01/10(土) 23:06:04ファイルが削除されたのはプログラム内でフォルダの直前の情報を保存しておいて
比べるしかないですか?
0102デフォルトの名無しさん
2009/01/10(土) 23:11:58それが何を使えばいいかは覚えてないw
0103デフォルトの名無しさん
2009/01/10(土) 23:14:40これかなぁ?
おかしい・・・たしかあった気がするがまるで記憶がないw
0104デフォルトの名無しさん
2009/01/10(土) 23:15:590105デフォルトの名無しさん
2009/01/10(土) 23:22:470106デフォルトの名無しさん
2009/01/10(土) 23:26:45Aとったら3件www
Wがデフォなのか。
0107デフォルトの名無しさん
2009/01/10(土) 23:36:52実はWatchの略なのか?
0108デフォルトの名無しさん
2009/01/10(土) 23:40:400109デフォルトの名無しさん
2009/01/10(土) 23:52:200110デフォルトの名無しさん
2009/01/11(日) 00:10:080111デフォルトの名無しさん
2009/01/11(日) 00:11:500112デフォルトの名無しさん
2009/01/11(日) 00:13:110113デフォルトの名無しさん
2009/01/11(日) 00:14:190114デフォルトの名無しさん
2009/01/11(日) 00:16:200115デフォルトの名無しさん
2009/01/11(日) 00:30:08最初からNTのみのコンポーネントはWが無くてLPCWSTRとかキメ打ちなんだよ。
今俺が考えたんだけどね。
0116デフォルトの名無しさん
2009/01/11(日) 00:32:050117デフォルトの名無しさん
2009/01/11(日) 00:40:15Microsoft Windows SDK for Windows 7 and .NET Framework 3.5 SP1: BETA
http://www.microsoft.com/downloads/details.aspx?FamilyID=A91DC12A-FC94-4027-B67E-46BAB7C5226C&displaylang=en
0118デフォルトの名無しさん
2009/01/11(日) 00:44:09http://www.cnn.co.jp/science/CNN200901090016.html
> 現行OS「Vista」の改良は中止する方針のもようだ。
0119デフォルトの名無しさん
2009/01/11(日) 00:45:440120デフォルトの名無しさん
2009/01/11(日) 01:08:450121デフォルトの名無しさん
2009/01/11(日) 01:10:2998seで動かしてたら0x000000ffの大きさのバッファなら受け入れてくれたのに0x00010000の大きさのバッファ指定したら値をバッファに格納してくれなくなった……
16の遺産だからだろうか?
0122デフォルトの名無しさん
2009/01/11(日) 01:13:110123デフォルトの名無しさん
2009/01/11(日) 01:25:31http://support.microsoft.com/kb/78346/EN-US/
If an application uses the standard Windows application program
interface (API) calls to access the .INI files, the limit is 64K.
Examples of these standard API calls are GetPrivateProfileString()
and WritePrivateProfileString().
0124デフォルトの名無しさん
2009/01/11(日) 01:25:320125デフォルトの名無しさん
2009/01/11(日) 02:28:590126デフォルトの名無しさん
2009/01/11(日) 02:31:45ってやった場合remoteから一回実行したPCにファイルデータが送られて
その後またremoteに書き込むの?
0127デフォルトの名無しさん
2009/01/11(日) 11:16:470128デフォルトの名無しさん
2009/01/11(日) 13:17:480129デフォルトの名無しさん
2009/01/11(日) 13:29:520130デフォルトの名無しさん
2009/01/11(日) 13:32:41あなたは知らないのだろうけど
通信業界では、トラヒックという言葉を使うのだそうですよ。
0131デフォルトの名無しさん
2009/01/11(日) 13:34:230132デフォルトの名無しさん
2009/01/11(日) 13:39:10黙れ
0133デフォルトの名無しさん
2009/01/11(日) 13:42:060134デフォルトの名無しさん
2009/01/11(日) 13:46:220135デフォルトの名無しさん
2009/01/11(日) 14:36:040136デフォルトの名無しさん
2009/01/11(日) 14:42:310137デフォルトの名無しさん
2009/01/11(日) 15:01:210138デフォルトの名無しさん
2009/01/11(日) 16:48:520139デフォルトの名無しさん
2009/01/11(日) 17:01:40mkdr();
}
0140デフォルトの名無しさん
2009/01/11(日) 18:27:38画面サイズを求めるのは簡単にできたのですが・・・
0141デフォルトの名無しさん
2009/01/11(日) 18:33:30というエラーが出てしまうのですがVectorで動的に確保した物は配列として渡す事はできないのでしょうか?
0142デフォルトの名無しさん
2009/01/11(日) 18:33:370143デフォルトの名無しさん
2009/01/11(日) 18:34:47タスクバーのサイズも取得して引けばいいじゃない
0144デフォルトの名無しさん
2009/01/11(日) 18:37:20先頭が大文字だからSTLのvectorとは違うんだろうな。
Vectorとやらの仕様による。
0145デフォルトの名無しさん
2009/01/11(日) 18:41:18C++の標準ライブラリの方のvectorです。。。
先頭大文字にしちゃうの癖なんです、すいません。。。
0146デフォルトの名無しさん
2009/01/11(日) 18:41:43SystemParametersInfoとSPI_GETWORKAREAのことかな。
0147デフォルトの名無しさん
2009/01/11(日) 18:42:19&v[0]のようにする
0148デフォルトの名無しさん
2009/01/11(日) 18:43:35なに教えてんだよ!
このスレは教えちゃいけないんだぞ!
0149デフォルトの名無しさん
2009/01/11(日) 18:44:40できました、ありがとうございます
0150デフォルトの名無しさん
2009/01/11(日) 18:48:29さすがの俺もその発言は引くわぁ
0151デフォルトの名無しさん
2009/01/11(日) 18:56:41それはないわ
0152デフォルトの名無しさん
2009/01/11(日) 18:58:320153デフォルトの名無しさん
2009/01/11(日) 18:59:190154デフォルトの名無しさん
2009/01/11(日) 19:08:080155デフォルトの名無しさん
2009/01/11(日) 19:12:09ちゃんとEnumDisplayMonitors+GetMonitorInfo使え
0156デフォルトの名無しさん
2009/01/11(日) 19:29:07Windows95で動かないので却下
0157デフォルトの名無しさん
2009/01/11(日) 19:33:130158デフォルトの名無しさん
2009/01/11(日) 19:33:440159デフォルトの名無しさん
2009/01/11(日) 20:30:480160デフォルトの名無しさん
2009/01/11(日) 20:31:36両方作っておいて、環境によってどっちかを選ぶようにすればいい。
0161デフォルトの名無しさん
2009/01/11(日) 20:31:430162デフォルトの名無しさん
2009/01/11(日) 20:43:120163デフォルトの名無しさん
2009/01/11(日) 21:49:51いいぞもっとやれw
0164デフォルトの名無しさん
2009/01/11(日) 22:00:32ガワだけだろうけど。
0165デフォルトの名無しさん
2009/01/11(日) 22:32:160166デフォルトの名無しさん
2009/01/11(日) 22:35:52お前が引き篭もってるからだろ
働けクズ
0167デフォルトの名無しさん
2009/01/11(日) 22:41:58CopyMemoryとmemcpyが同じように思えるのですが、どちらを使うのがいいの?
0168デフォルトの名無しさん
2009/01/11(日) 23:09:450169デフォルトの名無しさん
2009/01/11(日) 23:17:520170デフォルトの名無しさん
2009/01/11(日) 23:31:460171デフォルトの名無しさん
2009/01/11(日) 23:45:17同じ内容の関数がなぜ二つあるのですか?初心者が混乱してしまいます。
0172デフォルトの名無しさん
2009/01/11(日) 23:49:500173デフォルトの名無しさん
2009/01/11(日) 23:52:080174デフォルトの名無しさん
2009/01/12(月) 00:03:03CopyMemoryとmemcpy の実行速度が違うことがあるね。
コピーのループ内で一度にmovされるデータ長が違うとか
そんなもんだろか?よくわからん。
0175デフォルトの名無しさん
2009/01/12(月) 00:05:180176デフォルトの名無しさん
2009/01/12(月) 00:08:30#define CopyMemory RtlCopyMemory
#define RtlCopyMemory(Destination,Source,Length) memcpy((Destination),(Source),(Length))
なんだけどな。
0177デフォルトの名無しさん
2009/01/12(月) 00:10:54MS以外のCだと、また違うことがあるのさ
0178デフォルトの名無しさん
2009/01/12(月) 00:13:020179デフォルトの名無しさん
2009/01/12(月) 00:17:210180デフォルトの名無しさん
2009/01/12(月) 01:36:32#define CopyMemory RtlCopyMemory
ちなみにMinGWでも同じ
0181デフォルトの名無しさん
2009/01/12(月) 19:25:260182デフォルトの名無しさん
2009/01/12(月) 19:54:37って、今気づいたのだが、
もしかして、Windows7用のSDK付属のDocumentExplorerには
ページ単位でのホイールスクロールバグの修正が入った?
何か普通に落ちなくなってる。
0183デフォルトの名無しさん
2009/01/12(月) 20:05:36それより、違うことがあるMS以外のCマダー?>>177
0184デフォルトの名無しさん
2009/01/12(月) 20:11:07Borland C++ Compiler は ifdef になってるから別のものになる可能性があるかも
こんなの
#define CopyMemory RtlCopyMemory
NTSYSAPI
VOID
NTAPI
RtlCopyMemory (
VOID UNALIGNED *Destination,
CONST VOID UNALIGNED *Source,
SIZE_T Length
);
0185デフォルトの名無しさん
2009/01/12(月) 20:13:220186デフォルトの名無しさん
2009/01/12(月) 20:23:42x86はそんなの必要無いからCRTのmemcpyと等価になっている
0187デフォルトの名無しさん
2009/01/12(月) 23:01:55反映させるにはどうしたらいい?
全然うまくいかない、教えてエロイ人
//D
void SetTextPosition(HWND hToolbar, bool ListStyle) {
auto style=GetWindowLongPtr(hToolbar, GWL_STYLE);
if(ListStyle) {
style |= TBSTYLE_LIST;
} else {
style ^= TBSTYLE_LIST;
}
SetWindowLongPtr(hToolbar, GWL_STYLE, style);
SetWindowPos(hToolbar, null, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_NOZORDER | SWP_FRAMECHANGED);
}
0188デフォルトの名無しさん
2009/01/12(月) 23:04:570189デフォルトの名無しさん
2009/01/12(月) 23:07:27コメントでD言語と言っているじゃないか。
0190デフォルトの名無しさん
2009/01/12(月) 23:08:56言語は不問なんだな。
今まで気にした事もなかったけど。
0191デフォルトの名無しさん
2009/01/12(月) 23:16:36・・・後者はVC2005の独自拡張で使えるけどw
0192デフォルトの名無しさん
2009/01/12(月) 23:18:06前者はC++0xを待て。もうそろそろのはずだ。
0193187
2009/01/12(月) 23:37:57みんな、反応してくれてありがとう
// 報告と参考までに
// 参照 ttp://books.google.com/books?id=8LSjRRGcXqgC&pg=PA175&vq=TBSTYLE_LIST&dq=TBSTYLE_LIST+SetWindowLong&as_brr=3&hl=ja&source=gbs_search_s&cad=0
void SetTextPosition(HWND hToolbar, bool ListStyle) {
auto style=GetWindowLongPtr(hToolbar, GWL_STYLE);
if(ListStyle) {
style |= TBSTYLE_LIST;
} else {
style &= ~TBSTYLE_LIST;
}
SendMessage(hToolbar, TB_SETSTYLE, 0, style);
}
0194デフォルトの名無しさん
2009/01/13(火) 00:20:57まあ初心者の頃は if(style & TBSTYLE_LIST) style ^= TBSTYLE_LIST; なんて書いてたがw
0195デフォルトの名無しさん
2009/01/13(火) 14:26:400196デフォルトの名無しさん
2009/01/13(火) 17:29:20ウインドウの上をドラッグしたイベントをもらおうと思い
WM_LBUTTONDOWN にて、SetCapture + ドラッグ開始と解釈
WM_LBUTTONUP にて ReleaseCapture + ドラッグ終了と解釈
とやっています。
これで基本的にはウインドウ外にマウスポインタが行ってしまっても作動し、満足なのですが、
どうやらドラッグ中にAlt+Tabなどでアクティブなウインドウを変えられてしまうと、WM_LBUTTONUPが届かないようです。
これに対処するには、WM_ACTIVEなどにも対処しなければならないのでしょうか?
0197デフォルトの名無しさん
2009/01/13(火) 19:19:15ReleaseCaptureされるから当然メッセージは来なくなる。
問題になるならWM_CAPTURECHANGEDで処理する。
0198デフォルトの名無しさん
2009/01/13(火) 21:33:00このアイコンを自分で作ろうと思ったらどうしたらいいんでしょうか。
0199デフォルトの名無しさん
2009/01/13(火) 22:31:53どうも関数実行後も親ウィンドウをNULLで返してきます。実際表示などもされてません。
こういうことはできないんですか?
0200デフォルトの名無しさん
2009/01/13(火) 22:52:01「加数じゃなくて被加数じゃないのか?」「原子加算って何だ?」と突っ込んでいたが
それ以上にInterlockedExchange関数のドキュメントが突っ込み所満載だった件
0201デフォルトの名無しさん
2009/01/13(火) 22:54:11IShellLinkでググレ。
0202デフォルトの名無しさん
2009/01/13(火) 23:00:44ショートカットを作りたいんじゃなくてアイコンを作りたいんです><
0203デフォルトの名無しさん
2009/01/13(火) 23:12:370204デフォルトの名無しさん
2009/01/13(火) 23:15:12ヘルプのSetParentのとこに一杯書いてある注意書きは全部読んだ?
0205デフォルトの名無しさん
2009/01/13(火) 23:18:09ICONDIR、ICONDIRENTRYでググれ
0206デフォルトの名無しさん
2009/01/13(火) 23:48:42HWND Hoge::handleがある。
HWND Hoge::setParent(HWND neo){
if(handle == NULL)return NULL;
LONG flag = ::GetWindowLongPtr(handle,GWL_STYLE);
HWND old;
HWND DESKTOP = ::GetDesktopWindow();
if( neo == NULL && ::GetAncestor(handle,GA_PARENT) != DESKTOP ){//子をトップレベルにする
old=::SetParent(handle,NULL);
::SetWindowLongPtr(handle , GWL_STYLE , (flag&~WS_CHILD)|WS_POPUP );
}else
if( neo != NULL && ::GetAncestor(handle,GA_PARENT) == DESKTOP ){//トップレベルを子にする
::SetWindowLongPtr(handle , GWL_STYLE , (flag&~WS_POPUP)|WS_CHILD );
old=::SetParent(handle,neo);
}else
{
old=::SetParent(handle,neo);
}
return old;
}
0207デフォルトの名無しさん
2009/01/13(火) 23:50:12矢印アイコンはシェルが自分のリソースを表示してるものなのでWin32APIでは
変更できず、該当の機能をサポートするツールではshellの内部リソースを無理やり
書き換えるとかしてるらしい
(shell32.dllの30番あたり)
しかもどこのタイミングかの Windows のセキュリティアップデートで、今では
それもままならないとかの噂がある
0208デフォルトの名無しさん
2009/01/13(火) 23:52:56\\?\C:\Windows の形式に変換するAPIってありませんでしたっけ?
なんか前見かけた記憶があるんだけど、今探すと見つからない。
気のせいだったのだろうか。
0209デフォルトの名無しさん
2009/01/13(火) 23:54:18なんだそれ
正規表現使えばいいんじゃね?
0210デフォルトの名無しさん
2009/01/14(水) 00:28:01でいいだろ
0211デフォルトの名無しさん
2009/01/14(水) 00:30:06してくれたんじゃないかと思って。
_stprintf(str,_T("\\\\?\\%s"),path); これで決め打ちしちゃっていいのかな?
0212デフォルトの名無しさん
2009/01/14(水) 01:25:16引数の型、戻り値の型、引数の要約すら大嘘
日本語版ドキュメントがダメなのって資料不足だけを指してたわけじゃないのね
誇張された話だとばかり思ってたが反省するわ
0213デフォルトの名無しさん
2009/01/14(水) 01:46:32以前英語版と比べてみたが遜色なかったので日本語版読んでる。
Win32APIは英語版しか信用できん。
0214デフォルトの名無しさん
2009/01/14(水) 01:54:17昔はPVOIDで宣言されてたんだよ
そんな事も知らないゆとりは黙っててね
0215デフォルトの名無しさん
2009/01/14(水) 02:01:13ばーかw
0216デフォルトの名無しさん
2009/01/14(水) 02:14:23その時代の英語版が間違っててそのままになってるのも結構ある
そもそも.NET関係しか翻訳のメンテしないのがおかしい
0217デフォルトの名無しさん
2009/01/14(水) 06:40:570218デフォルトの名無しさん
2009/01/14(水) 08:05:200219デフォルトの名無しさん
2009/01/14(水) 08:17:01いや日本語版をMSKKが管理してるかどうかは知らんがMSKKが悪いって事にしとけ
0220デフォルトの名無しさん
2009/01/14(水) 08:23:590221デフォルトの名無しさん
2009/01/14(水) 09:12:28http://c2.microsoft.fr/49ae54c30ecc4382aeba1841073ee06b/?elng=1041
最後のほうにドキュメントについての項目がある
俺はフリーエリアに中途半端なドキュメントは有害って書いたよ
0222デフォルトの名無しさん
2009/01/14(水) 09:26:54SHGetFileInfoとSHGFI_LINKOVERLAYでなんとかならんか
0223デフォルトの名無しさん
2009/01/14(水) 10:13:10ありがとうございました。
無事できました
0224デフォルトの名無しさん
2009/01/14(水) 11:33:01VS2008なんて使ってねーし・・・
0225デフォルトの名無しさん
2009/01/14(水) 16:16:550226デフォルトの名無しさん
2009/01/14(水) 16:30:160227デフォルトの名無しさん
2009/01/14(水) 17:44:15って、32bitOS用としてコンパイルするときは、って意味ですか?
64bitOS用としてコンパイルするときはここは通らないと思ってOK?
0228デフォルトの名無しさん
2009/01/14(水) 17:50:1464でも通る
以下MSDNより
_WIN32 Defined for applications for Win32 and Win64. Always defined.
0229デフォルトの名無しさん
2009/01/14(水) 17:52:5564ビットでもコンパイルの対象にされる。
_WIN32は(UnixやMacではなく)Windowsであるという意味だと捉えるんだ。
Win64を除外してWin32のみを対象にしたければ、#ifndef _WIN64とすること。
http://msdn.microsoft.com/en-us/library/aa489554.aspx
0230デフォルトの名無しさん
2009/01/14(水) 17:55:130231デフォルトの名無しさん
2009/01/14(水) 17:57:16>>229
ども。
もひとつおねがいします。
#ifdef _WIN32
#include <pshpack1.h>
#endif
typedef struct tagHogestruct
{
...
}
#ifdef _WIN32
#include <poppack.h>
#endif
この場合、32bitでも64bitでもパッキングは1でいいんですか?
0232231
2009/01/14(水) 18:03:47#if !defined(_WIN64)
#include <pshpack1.h>
#endif
↑これは32bitだけですよね……
0233デフォルトの名無しさん
2009/01/14(水) 18:06:430234デフォルトの名無しさん
2009/01/14(水) 20:39:270235デフォルトの名無しさん
2009/01/14(水) 23:10:46そのままだと重なって表示されてしまいます。
ツールバーの直下にステータスバーが付いて2段になるような
回避法などありますでしょうか。
APIはCreateToobarExとCreateStatusWindowを使い
属性にはCCS_TOPを指定してウィンドウ上部にくるようにしています。
0236デフォルトの名無しさん
2009/01/14(水) 23:48:04と俺は思う。
0237デフォルトの名無しさん
2009/01/15(木) 01:25:100238デフォルトの名無しさん
2009/01/15(木) 01:28:480239デフォルトの名無しさん
2009/01/15(木) 08:49:240240デフォルトの名無しさん
2009/01/15(木) 09:08:020241デフォルトの名無しさん
2009/01/15(木) 11:38:56GetExitCodeThread()で得られる終了コードは何になりますか?
0242デフォルトの名無しさん
2009/01/15(木) 11:43:590244241
2009/01/15(木) 12:05:02スレッドプロシージャの戻り値がvoidでreturnした時に
勝手にExitThread()が呼ばれるらしいのですが
その時の終了コードは何になりますか?
度々すみません。
0245デフォルトの名無しさん
2009/01/15(木) 12:05:130246デフォルトの名無しさん
2009/01/15(木) 12:08:49スレッドが終了した瞬間に、そのハンドルが再利用されて、
GetExitCodeが呼ばれる前に違うものを示す可能性があるからやめろと言いたい。
0247デフォルトの名無しさん
2009/01/15(木) 13:28:020248デフォルトの名無しさん
2009/01/15(木) 13:37:18CreateThreadに無理矢理渡した場合は不定
0249デフォルトの名無しさん
2009/01/15(木) 14:44:410250デフォルトの名無しさん
2009/01/15(木) 16:43:45でツリービューウィンドウのハンドルを渡そうと思うのですが,以下のようにしてハンドルを
渡せません? HWND 型(32ビット符号なし整数)を LPARAM (32ビット符号付き整数)にキャストして
逆のキャストをすると値が失われるのですか?
CreateDialogParam(hInst,"IDD_DLOG",hWnd,dlogProc,(LPARAM)hwndTreeView);
dlogProc(…,…,…,LPARAM lp)
{
HWND hTreeView;
switch(msg){
case WM_INITDIALOG:
hTreeView = (HWND)lp;
………
case …
}
調べると呼び出した時点では"-2"とかの値なのに、呼び出し側では"0"になってます。
第4引数で HWND をわたせないのでしょうか??
0251デフォルトの名無しさん
2009/01/15(木) 17:03:050252250
2009/01/15(木) 17:07:050253デフォルトの名無しさん
2009/01/15(木) 17:10:320254デフォルトの名無しさん
2009/01/15(木) 18:12:02ダイアログに付けるステータスバーやツールバーの位置を
座標単位でずらすのは現時点まで調べた知識では無理のようです。
ステータスバーにMoveWindowなどは効かないようです。
2種類のバーがCCS_TOPで干渉するのは解消できそうにないので
別の方法を考えてみます。
本当にありがとうございました。
0255デフォルトの名無しさん
2009/01/15(木) 19:19:32CreateDialogParam(hInst,"IDD_DLOG",hWnd,dlogProc,(LPARAM)&hwndTreeView);
dlogProc(…,…,…,LPARAM lp)
{
HWND hTreeView;
switch(msg){
case WM_INITDIALOG:
hTreeView = (HWND)(*lp);
0256デフォルトの名無しさん
2009/01/15(木) 20:40:12ofstream fout;
string str = "Hello";
string file_name = "a.txt";
wchar_t fn[MAX_PATH];
MultiByteToWideChar(0, 0, file_name.c_str(), -1, fn, MAX_PATH);
fout.open(fn);
fout<<str;
fout.close();
ソースを読んだ限りではofstreamは入力としてUnicodeでないといけないというのは感じますが、
MultiByteToWideCharをなぜ使うかが分かりません。
この関数を使わなければエラーが出るというような場面を教えてください。
0257デフォルトの名無しさん
2009/01/15(木) 20:46:35透明のウィンドウ作ってそこに描画するしかない?
0258デフォルトの名無しさん
2009/01/15(木) 20:57:10C++のString↓
typedef basic_string<char> string;
見れば分かるがunicodeじゃない
これ以上はC++スレで頼む
0259250
2009/01/15(木) 20:59:16つきませんでしたが、、、、やっぱりダメ (TT)とほほ。
ファイル単位の外部変数で渡すと通るんです。Borland C++ なんですが…
0260デフォルトの名無しさん
2009/01/15(木) 21:00:41dlogProc(HWND hWnd,…,…,LPARAM lp)
{
HWND hTreeView = (HWND)GetWindowLongPtr(hWnd, DWL_USER);
switch(msg){
case WM_INITDIALOG:
hTreeView = (HWND)lp;
SetWindowLongPtr(hWnd, DWL_USER, (LONG_PTR)hTreeView);
………
case …
}
こうですかわかりません
0261デフォルトの名無しさん
2009/01/15(木) 21:01:370262デフォルトの名無しさん
2009/01/15(木) 21:06:43>呼び出した時点では"-2"
32bitだとして0xFFFFFFFE って値のウィンドウハンドルってなくね?
0263250
2009/01/15(木) 21:20:37でも、最近 Win32API プログラミング始めた自分には分けが分かりません (T^T)
とほほ、先は長い。よろしければ、ごく簡単に解説をお願いできれば?
0264デフォルトの名無しさん
2009/01/15(木) 21:23:55で強引に出力すると、”919128”でした。(^^;;
0265デフォルトの名無しさん
2009/01/15(木) 21:26:49にしなさいとかそういうはなしだったんですか?
0266デフォルトの名無しさん
2009/01/15(木) 21:35:36利用しているというオチか?
0267250
2009/01/15(木) 21:47:26保存して、case WM_COMMAND: 内で利用しちゃダメなんですか?
0268デフォルトの名無しさん
2009/01/15(木) 21:57:14だめです。
void f(int x, int y)
{
int i;
switch(x){
case 1: i=y; // 保存
break;
case 2: printf("%d", i); //つかう
break;
}
}
int main()
{
f(1,2);
f(2,0);
}
ってしてるのと同じことです。
0269デフォルトの名無しさん
2009/01/15(木) 22:00:130270デフォルトの名無しさん
2009/01/15(木) 22:08:42ということは、「いったん作られたウィンドウのハンドルは変化し得る」ってことですか?
0271デフォルトの名無しさん
2009/01/15(木) 22:10:29スコープを抜けたら変数の内容が飛ぶってことをC/C++初心者スレで勉強してからまたこい
0272デフォルトの名無しさん
2009/01/15(木) 22:10:460273デフォルトの名無しさん
2009/01/15(木) 22:18:250274デフォルトの名無しさん
2009/01/15(木) 22:19:480275デフォルトの名無しさん
2009/01/15(木) 22:20:07しつこい奴は相手にされなくなるぞ
0276デフォルトの名無しさん
2009/01/15(木) 22:29:58ある意味、こういう発想ができるところが怖い。
0277デフォルトの名無しさん
2009/01/16(金) 00:53:29Windowsでマルチスレッドのプログラムを作成しています
複数のスレッドから、int型の値を読み込み&書き換えるときにクリティカルセッションでロックしたほうがいいでしょうか?
int型なので大丈夫だったりしますか?
0278デフォルトの名無しさん
2009/01/16(金) 01:01:33.netで予めスレッドセーフになってるとかでなければどの型だからとか関係無い
0279デフォルトの名無しさん
2009/01/16(金) 01:04:24カウンタみたいな単純な加算とかだけなら
InterlockedIncrementとかInterlockedExchangeAddみたいな専用のAPIがある
0280デフォルトの名無しさん
2009/01/16(金) 01:04:37Out-of-orderとか気にしだしたら頭が痛くなるし。
0281デフォルトの名無しさん
2009/01/16(金) 01:12:03レスありがとうございます
Interlocked系関数は初めて知りました。これは便利ですね
0282デフォルトの名無しさん
2009/01/16(金) 06:31:09.netだってlockとかInterlockedとかあるだろ
0283デフォルトの名無しさん
2009/01/16(金) 09:26:28そのint型とやらは何ビットだと思ってるんだ
0284デフォルトの名無しさん
2009/01/16(金) 10:15:570285デフォルトの名無しさん
2009/01/16(金) 10:31:53volatileだけで十分な場合もある
0286デフォルトの名無しさん
2009/01/16(金) 10:59:43lpOldProc = (WNDPROC)GetWindowLongPtr(hwnd,GWLP_WNDPROC);
SetWindowLongPtr(hwnd,GWLP_WNDPROC,(LONG_PTR)SubclassProc);
と
lpOldProc = (WNDPROC)SetWindowLongPtr(hwnd,GWLP_WNDPROC,(LONG_PTR)SubclassProc);
ってどっちがいいの?
前者だとアトミック性が保証されないし、
後者だと SetWindowLongPtr から返ってくるまでに SubclassProc が呼ばれると破綻しそう
0287デフォルトの名無しさん
2009/01/16(金) 11:53:40他スレッドのウィンドウなら後者を使って、lpOldProcが有効になるまでSubclassProcを待機させとけばいい。
0288デフォルトの名無しさん
2009/01/16(金) 12:13:020289デフォルトの名無しさん
2009/01/16(金) 13:08:530290デフォルトの名無しさん
2009/01/16(金) 17:03:000291デフォルトの名無しさん
2009/01/16(金) 17:11:070292デフォルトの名無しさん
2009/01/16(金) 17:17:21知らないならレスしないでください。ウザイだけです。
0293デフォルトの名無しさん
2009/01/16(金) 17:20:230294デフォルトの名無しさん
2009/01/16(金) 17:33:330295デフォルトの名無しさん
2009/01/16(金) 17:42:580296デフォルトの名無しさん
2009/01/16(金) 17:46:380297デフォルトの名無しさん
2009/01/16(金) 19:56:57>>295-296
この辺に必死さを感じるw
0298デフォルトの名無しさん
2009/01/16(金) 20:02:480299デフォルトの名無しさん
2009/01/16(金) 20:08:01たまにタスクマネージャで殺せないプロセスができて強制リブートする羽目になる
0300デフォルトの名無しさん
2009/01/16(金) 21:02:01特定の形式のクリップボードのデータをクリアしたいのですが
EmptyClipboard()だと全部消えてしまうみたいで、例えばCF_TXTのみをクリア
するにはどうすればよいでしょうか?
0301デフォルトの名無しさん
2009/01/16(金) 21:33:550302デフォルトの名無しさん
2009/01/16(金) 21:36:25例えばCF_TEXTをセットするとOSによって自動的にCF_UNICODETEXTやCF_OEMTEXTなどもセットされる
0303デフォルトの名無しさん
2009/01/17(土) 00:37:48パフォーマンスは出ないと思うけど、
MethodImplOptions.synchronizedをプロパティのget/setメソッドに付けるのが一番手っ取り早い
0304デフォルトの名無しさん
2009/01/17(土) 00:49:340305デフォルトの名無しさん
2009/01/17(土) 00:55:010306デフォルトの名無しさん
2009/01/17(土) 01:21:560308デフォルトの名無しさん
2009/01/17(土) 20:00:40ダイアログに書きたいのですがいい方法ありませんでしょうか?
(ツールバーとかによくあるボタン)
枠線くらいなら自前で書けるのですが、
押されたときの窪みとか背景色が変更された時の事を考えると
自前では辛いので何か案があればよろしくお願いします。
こういうの↓
ttp://upload.fam.cx/cgi-bin/img-box/3wj90117195648.jpg
0309デフォルトの名無しさん
2009/01/17(土) 20:08:56表示する絵を変えればいいだけ。
0310デフォルトの名無しさん
2009/01/17(土) 20:10:110311デフォルトの名無しさん
2009/01/17(土) 20:56:220312デフォルトの名無しさん
2009/01/17(土) 22:52:190313デフォルトの名無しさん
2009/01/17(土) 23:40:560314デフォルトの名無しさん
2009/01/18(日) 00:06:38んー、BMP用意するのも考えたんですが、
それだと背景の色が変わったら
ボタンの背景色も変えないといけないわけで・・・
もっと賢い方法ないですかなぁ・・・
0315デフォルトの名無しさん
2009/01/18(日) 00:15:288bppカラーで良いなら、LoadImageのLR_LOADMAP3DCOLORSを利用する手がある。
0316デフォルトの名無しさん
2009/01/18(日) 00:18:51ttp://msdn.microsoft.com/en-us/library/cc656671(VS.85).aspx
0317デフォルトの名無しさん
2009/01/18(日) 00:21:110318デフォルトの名無しさん
2009/01/18(日) 07:38:090319デフォルトの名無しさん
2009/01/18(日) 13:04:32よくテキストエディタなんかであるマウスのドラッグによる画面スクローリングは
どのように実現してるのでしょうか。
0320デフォルトの名無しさん
2009/01/18(日) 13:36:450321デフォルトの名無しさん
2009/01/18(日) 18:07:23サブクラス化して、リターンキーが押されたら同じウィンドウの [実行] ボタンにメッセージを
送って動かしたいのですが、動きません。
自分自身にメッセージを送っても動かないのでしょうか?
0322デフォルトの名無しさん
2009/01/18(日) 18:32:560323デフォルトの名無しさん
2009/01/18(日) 18:54:560324デフォルトの名無しさん
2009/01/18(日) 22:42:58APIとかあれば教えてください
今のところ自分で▲のアイコン作って描画してます
0325デフォルトの名無しさん
2009/01/18(日) 22:44:15ttp://homepage2.nifty.com/c_lang/sdk4/sdk_308.htm
0326デフォルトの名無しさん
2009/01/18(日) 23:03:27DFCS_MENUARROW辺りを使えば描画できそう。
0327デフォルトの名無しさん
2009/01/18(日) 23:19:520329デフォルトの名無しさん
2009/01/19(月) 22:16:12方法はあるでしょうか?
※最終的にXPで使いたいためv1を使用しています
0330デフォルトの名無しさん
2009/01/20(火) 01:29:02でファイルを検地して遊んでるんですけど
一回のファイル変更で2度検知に引っかかっているようなんですが
どんな場合にありえるのでしょうか?
0331デフォルトの名無しさん
2009/01/20(火) 01:31:350332デフォルトの名無しさん
2009/01/20(火) 01:51:490333デフォルトの名無しさん
2009/01/20(火) 11:12:42ドラッグでメニュー項目移動できるよね
あれどうやってるのかな?
0334デフォルトの名無しさん
2009/01/20(火) 11:19:130335デフォルトの名無しさん
2009/01/20(火) 11:57:27func("http://www.abcd.com/efg/hij/", "/") → "http://www.abcd.com/"
func("http://www.abcd.com/efg/hij/", "/xyz/") → "http://www.abcd.com/xyz/"
みたいなやつが欲しいのですけど、もしご存知て゜したら教えてください。
よろしくお願いします。
0336デフォルトの名無しさん
2009/01/20(火) 12:08:20おーこんなのがあるのか
さんくす
0337デフォルトの名無しさん
2009/01/20(火) 12:14:29> もしご存知て゜したら
どこの国の言葉?
0338デフォルトの名無しさん
2009/01/20(火) 12:15:430339デフォルトの名無しさん
2009/01/20(火) 12:16:510340デフォルトの名無しさん
2009/01/20(火) 12:17:150341デフォルトの名無しさん
2009/01/20(火) 12:46:49srudってググってもわからないです…
>>337
拝復 貴殿のレス、正に拝見いたしました。
ご無音に打ち過ぎておりますこと、まことに申し訳ございません。
さて、お申し越しの誤字に関する件、ご迷惑のほどお察し申し上げます。
当方においては、かな打ちであるためこのようなことになってしまいました。
ただ、1文字間違えただけで「どこの国の言葉?」との貴殿の発言は
少々行き過ぎではないかと感じる所存であります。
まずは、とりあえず事情を申し上げ、もってご返事といたします。
敬 具
0342デフォルトの名無しさん
2009/01/20(火) 12:57:46正規表現でいいんじゃねーの?
0343デフォルトの名無しさん
2009/01/20(火) 13:01:270344デフォルトの名無しさん
2009/01/20(火) 13:01:43どこの国の言葉?
0345デフォルトの名無しさん
2009/01/20(火) 13:38:31なんか使えんかね
0346デフォルトの名無しさん
2009/01/20(火) 13:40:46インギンブレー語
0347デフォルトの名無しさん
2009/01/20(火) 13:46:13http://pc11.2ch.net/test/gomidir/../read.cgi/tech/1231423602/
でもちゃんとアクセスできるのだなこれが。
まあ今はリダイレクトされるか。
http://pc11.2ch.net/test///read.cgi/tech/1231423602/
でも。
0348デフォルトの名無しさん
2009/01/20(火) 13:49:58UrlCombine
0349デフォルトの名無しさん
2009/01/20(火) 13:50:31特にwin32は別方面(ストリーム指定)からの攻撃もあるので、念入りにやらないといけない。
0350デフォルトの名無しさん
2009/01/20(火) 14:26:46IEとかどうしてるんだろ
0351デフォルトの名無しさん
2009/01/21(水) 11:31:14DCに線を引く場合、GDIで用意されるAPIより高品質な線を引きたいとします。
こういった場合、どういった方法が常とう手段となるのでしょうか?
たとえば、GDI+はどうやって描いているのでしょう?
0352デフォルトの名無しさん
2009/01/21(水) 11:41:150353デフォルトの名無しさん
2009/01/21(水) 11:45:030354デフォルトの名無しさん
2009/01/21(水) 11:52:190355デフォルトの名無しさん
2009/01/21(水) 11:57:000356デフォルトの名無しさん
2009/01/21(水) 11:58:390357デフォルトの名無しさん
2009/01/21(水) 11:59:170358デフォルトの名無しさん
2009/01/21(水) 12:01:35どうやって?
0359デフォルトの名無しさん
2009/01/21(水) 12:10:180360デフォルトの名無しさん
2009/01/21(水) 12:17:010361デフォルトの名無しさん
2009/01/21(水) 14:37:45ありがとうございました
0362デフォルトの名無しさん
2009/01/21(水) 14:38:47馬鹿はレスしないで下さい。ウザイだけです。
0363デフォルトの名無しさん
2009/01/21(水) 14:48:16ありがちなシチュエーションだと思うのだが。
0364デフォルトの名無しさん
2009/01/21(水) 15:15:380365デフォルトの名無しさん
2009/01/21(水) 15:38:06どうせアンチエイリアスの掛かった線を描きたいとかそんな所じゃねーか?
もし当たってるなら「GDI以外で」って事なんで
聞きたいであろう事はほぼスレ違いなんだけどな
0366デフォルトの名無しさん
2009/01/21(水) 15:47:240367デフォルトの名無しさん
2009/01/21(水) 16:55:480368デフォルトの名無しさん
2009/01/21(水) 17:00:100369デフォルトの名無しさん
2009/01/21(水) 17:01:30APIの縮小処理の品質は微妙だが
0370デフォルトの名無しさん
2009/01/21(水) 17:06:05アドレス・・?
0371デフォルトの名無しさん
2009/01/21(水) 17:19:41?
0372デフォルトの名無しさん
2009/01/21(水) 18:51:35何でも質問してくれw
0373デフォルトの名無しさん
2009/01/21(水) 19:04:17何しに来たんですか?
0374デフォルトの名無しさん
2009/01/21(水) 19:09:240375デフォルトの名無しさん
2009/01/21(水) 19:14:44Wineってどんな感じ?
0376デフォルトの名無しさん
2009/01/21(水) 19:21:09知らないならレスしないで下さい。ウザイだけです。
0377デフォルトの名無しさん
2009/01/21(水) 19:27:400378デフォルトの名無しさん
2009/01/21(水) 19:48:09わからない人はhttp://slashdot.jp/を見て勉強しましょう。
ドザには難しすぎるかもしれませんがw
0379デフォルトの名無しさん
2009/01/21(水) 19:51:25ああ、またゲンダイか
ああ、またsrudか
0380デフォルトの名無しさん
2009/01/21(水) 19:54:51いずれBSDの素晴らしさに気付いて捨てると思うけど
0381デフォルトの名無しさん
2009/01/21(水) 20:03:25イベントログに出てたからこのDLLで発生したのはほぼ間違いないんだけど、
再現しないし、イベントログも手元になくて詳細忘れたし\(^o^)/オワタ
0382デフォルトの名無しさん
2009/01/21(水) 20:18:54日本語崩壊はここまで来たか
0383デフォルトの名無しさん
2009/01/21(水) 20:34:430384デフォルトの名無しさん
2009/01/21(水) 20:36:270385デフォルトの名無しさん
2009/01/21(水) 23:15:17リファレンスで確認するしか方法がないでしょうか。
たとえば(handle == NULL || handle == INVALID_HANDLE_VALUE)でチェックした場合、
不都合が生じる可能性はあるのでしょうか
0386デフォルトの名無しさん
2009/01/21(水) 23:29:420387デフォルトの名無しさん
2009/01/21(水) 23:33:3032ビット以降に作成された関数はNULLを返すという背景はあるけど、
リファレンスで確認するしかないだろうね
それを面倒くさがるようではプログラミングはできないよ
だから、たとえば(handle == NULL || handle == INVALID_HANDLE_VALUE)でチェックしたコードを見た場合、
こいつのコードは危ないぞって気になる
あとは、ありえない仮定かもしれないけど、機械的に書いていて
↓みたいな状況になるかもしれないね
HANDLE handle = MyGetCurrentProcess(pid); // カレントプロセスなら -1 を返す
(handle == NULL || handle == INVALID_HANDLE_VALUE)
0388デフォルトの名無しさん
2009/01/21(水) 23:36:57ありがとうございました。
0389デフォルトの名無しさん
2009/01/21(水) 23:38:40GetCurrentProcessの返値チェックは不要だからそれは絶対にありえないと思う
0390デフォルトの名無しさん
2009/01/21(水) 23:44:44MyGetProcess(pid) と書きたかったがGetCurrentProcessが頭にあって間違った
べき論で答えるならドキュメント嫁と
その上でどうするかはもちろん知ったことじゃないけどね
0391デフォルトの名無しさん
2009/01/21(水) 23:48:49だとすると-1を返すなんて有り得ないと思うが。
0392デフォルトの名無しさん
2009/01/22(木) 00:04:46-2以下を使っとけばいいのに
しかもCreateFileMappingなんて第一引数で有効な値としてINVALID_HANDLE_VALUEが使えるし
このあたりの設計の悪さは(HBRUSH)(COLOR_WINDOW+1)の+1と同じく間抜けだな
0393デフォルトの名無しさん
2009/01/22(木) 00:04:55(ちなみにATL::CHandleはNULLしか見ないけど)
0394デフォルトの名無しさん
2009/01/22(木) 01:14:28原因エスパーできる人いますか?もしくは作成後どのメッセージを発行すれば描画してもらえるのか教えてもらえんでしょうか?
0395デフォルトの名無しさん
2009/01/22(木) 01:15:020396デフォルトの名無しさん
2009/01/22(木) 01:39:010397デフォルトの名無しさん
2009/01/22(木) 12:45:140398デフォルトの名無しさん
2009/01/22(木) 12:47:590399デフォルトの名無しさん
2009/01/22(木) 13:57:55送信元がウインドウを持っていなかったらどうするんだ?
アホにも程がある。
0400デフォルトの名無しさん
2009/01/22(木) 14:01:470401デフォルトの名無しさん
2009/01/22(木) 14:04:06なんでそんなに頭が弱いんだ?
0402デフォルトの名無しさん
2009/01/22(木) 14:05:510403デフォルトの名無しさん
2009/01/22(木) 14:22:45後者ならフックに該当し、スレが荒れるのでこれ以上の話は禁止
0404デフォルトの名無しさん
2009/01/22(木) 15:18:11馬鹿だからWindowsに固執する
0405デフォルトの名無しさん
2009/01/22(木) 15:28:34リアルでコミュニケーションがとれずに誰にも相手にされないんだろうな
0406デフォルトの名無しさん
2009/01/22(木) 15:35:460407デフォルトの名無しさん
2009/01/22(木) 15:35:58D-BUSとか使わない限り
0408デフォルトの名無しさん
2009/01/22(木) 16:57:480409デフォルトの名無しさん
2009/01/22(木) 17:11:18InvalidateRect+UpdateWindow
0410デフォルトの名無しさん
2009/01/22(木) 17:12:18RedrawWindowだけで出来るだろ
0411デフォルトの名無しさん
2009/01/22(木) 17:15:180412デフォルトの名無しさん
2009/01/22(木) 17:46:300413デフォルトの名無しさん
2009/01/22(木) 18:27:270414デフォルトの名無しさん
2009/01/22(木) 19:18:170415デフォルトの名無しさん
2009/01/22(木) 19:19:390416デフォルトの名無しさん
2009/01/22(木) 19:46:350417デフォルトの名無しさん
2009/01/22(木) 19:49:59英語でも資料無いしそもそもWM_MENUDRAGとかとれないし
もちろんSetMenuInfoはしている。。
0418デフォルトの名無しさん
2009/01/22(木) 19:52:42サブメニューにSetMenuInfoやってもだめなのね・・
0419デフォルトの名無しさん
2009/01/22(木) 21:05:43>なんか色々いじってたら
break付け忘れて別のcaseに突入してるとか、その手のミスだろ
ソース晒せないなら、捨てて1から同じもの作り直せ。それで直る
0420デフォルトの名無しさん
2009/01/22(木) 22:14:02てことは、dwm.exeを殺しつづけるプログラム書いたら・・・
0421デフォルトの名無しさん
2009/01/22(木) 22:30:47VistaベーシックテーマになってXP互換のドライバモデルによる描画になるはず。
0422デフォルトの名無しさん
2009/01/23(金) 16:35:310423デフォルトの名無しさん
2009/01/23(金) 16:36:590424デフォルトの名無しさん
2009/01/23(金) 16:45:370425デフォルトの名無しさん
2009/01/23(金) 16:53:210426デフォルトの名無しさん
2009/01/23(金) 17:23:140427デフォルトの名無しさん
2009/01/23(金) 17:26:32え?何いってんの?君
0428デフォルトの名無しさん
2009/01/23(金) 17:36:040429デフォルトの名無しさん
2009/01/23(金) 17:40:160430デフォルトの名無しさん
2009/01/23(金) 17:46:10TrackPopupMenuに渡したメニューハンドルはどこから来たんだ?
0431デフォルトの名無しさん
2009/01/23(金) 18:02:260432デフォルトの名無しさん
2009/01/23(金) 18:44:580433デフォルトの名無しさん
2009/01/23(金) 19:20:290434デフォルトの名無しさん
2009/01/23(金) 19:25:51例えばTrackPopupMenuで表示している間は関連があるから削除しなくていいとか?
0435デフォルトの名無しさん
2009/01/23(金) 19:52:47WinAPIの場合、ポインタと整数をキャストしている関数を新しいものと入れ替えるだけでいいのでしょうか?
またwindowsはLLP64ですけど、x64CPUを使っている場合
32bitOSと64bitOSで64bit長のデータを扱うと、前者はどこかネックになったりするのでしょうか?
0436デフォルトの名無しさん
2009/01/23(金) 20:14:020437デフォルトの名無しさん
2009/01/23(金) 20:14:490438デフォルトの名無しさん
2009/01/23(金) 20:15:29面倒だからここを一通り読んでくれ
ttp://msdn.microsoft.com/en-us/library/ms674660.aspx
0439デフォルトの名無しさん
2009/01/23(金) 20:29:21面倒だからあなたが答えてくれませんか?
0440デフォルトの名無しさん
2009/01/23(金) 22:28:18そうだよ。それだけで64ビットに対応できると謳われている。
32ビットOSでは64ビットに拡張されたレジスタを使えないので、
64ビットデータを扱うには32ビットレジスタ2つかSSEレジスタを使わなければならない。
0441デフォルトの名無しさん
2009/01/23(金) 22:49:370442デフォルトの名無しさん
2009/01/23(金) 23:06:24SSE命令の話なんてしてねーよ馬鹿
0443デフォルトの名無しさん
2009/01/23(金) 23:25:520444デフォルトの名無しさん
2009/01/23(金) 23:33:180445デフォルトの名無しさん
2009/01/24(土) 00:26:470446デフォルトの名無しさん
2009/01/24(土) 01:28:530447デフォルトの名無しさん
2009/01/24(土) 01:38:47WM_MENUCOMMAND
たぶん。使ったこと無いけどそれっぽい。
MENUINFO.dwStyleでMNS_NOTIFYBYPOSを立てておくと、
WM_COMMANDの代わりに飛んでくると書いてある。
0448デフォルトの名無しさん
2009/01/24(土) 12:01:040449デフォルトの名無しさん
2009/01/24(土) 16:39:040450デフォルトの名無しさん
2009/01/24(土) 17:44:06オーディオデバイスから出ている音声信号をキャプチャして画面効果を出すようなアプリが作りたいんですが
どうすれば良いか分かりません。
詳細は自分で調べますので、大まかなキーワードや考え方の方針だけでも教えてください。
0451デフォルトの名無しさん
2009/01/24(土) 18:47:39キーワード
オーディオデバイス,音声信号,キャプチャ,画面効果
0452デフォルトの名無しさん
2009/01/24(土) 19:23:18なけりゃほぼどうしようもないかと。
0453デフォルトの名無しさん
2009/01/25(日) 09:43:07ますが、動きません(コンパイルは通る)。同じような形で CreateDialogParam() では
できたのですが、ダイアログボックスは基本的にサブクラス化できないのですか?
ret = DialogBox(g_hInst,"IDD_ADD_ITEM", hWndOwner, (DLGPROC)addItemProc);
………
BOOL CALLBACK addItemProc( hAddTvItemDlg, msg, wp, lp){
………
case WM_INITDIALOG:
………
editboxAddItemProc = (WNDPROC)(LONG_PTR)GetWindowLong(GetDlgItem(hAddTvItemDlg,IDC_EDT_EDBX),GWL_WNDPROC);
SetWindowLong(GetDlgItem(hAddItemDlg,IDC_EDT_EDBX)
,GWL_WNDPROC,(LONG)(LONG_PTR)editboxAddItemSUBproc);
………
static BOOL CALLBACK editboxAddItemSUBproc( hAddItemDlg, msg, wp, lp){
switch(msg){
case WM_KEYDOWN:
if(wp==VK_RETURN){
PostMessage(hAddTvItemDlg,WM_COMMAND,(WPARAM)IDC_EDT_OK,0);
return 0;
}else if(wp==VK_ESCAPE){
EndDialog(hAddTvItemDlg,0);
return 0;
} // wp==VK_TAB はデフォルトで動くようです
break;
}
return CallWindowProc(editboxAddItemProc,hAddItemDlg,msg,wp,lp);
0454デフォルトの名無しさん
2009/01/25(日) 10:30:27editboxAddItemSUBprocは呼び出されてる?
それとは別に、
> editboxAddItemProc = (WNDPROC)(LONG_PTR)GetWindowLong(GetDlgItem(hAddTvItemDlg,IDC_EDT_EDBX),GWL_WNDPROC);
> SetWindowLong(GetDlgItem(hAddItemDlg,IDC_EDT_EDBX)
> ,GWL_WNDPROC,(LONG)(LONG_PTR)editboxAddItemSUBproc);
windowsx.hをインクルードして、
editboxAddItemProc = SubclassWindow(GetDlgItem(hAddItemDlg,IDC_EDT_EDBX), editboxAddItemSUBproc);
の方がいいだろう。変なキャストもしなくていいし。
0455デフォルトの名無しさん
2009/01/25(日) 10:38:220456デフォルトの名無しさん
2009/01/25(日) 10:58:37そもそもメッセージが届いていない、というオチな気がしないでもない。
COMCTL32v6用のGet/SetWindowSubclassとかあるけど関係無いだろうなあ。
0457デフォルトの名無しさん
2009/01/25(日) 11:03:52WM_COMMANDのIDOKとIDCANCELをうまく処理するだけで
目的が達成されそうな気がする。
SDKの「Dialog Box Programming Considerations」を参考にしてみてくれ。
0458デフォルトの名無しさん
2009/01/25(日) 11:43:180459453
2009/01/25(日) 13:48:10static BOOL CALLBACK editboxAddItemSUBproc( hAddItemDlg, msg, wp, lp){
switch(msg){
case WM_KEYDOWN:
>> MessageBox(……);
if(wp==VK_RETURN){
として調べると、文字キー(abcなど)は来てますが、VK_RETURN は来てません。
0460デフォルトの名無しさん
2009/01/25(日) 13:57:55初心者です。
送信、受信で、WriteFile()、ReadFile()を使用する事はわかったのですが、
この関数の使い方がわかりません。。。
具体的に引数に何を設定したらいいのでしょうか?
文字列:"Test送信データ!"を送信したい場合どうプログラムするのか教えてください。。
0461デフォルトの名無しさん
2009/01/25(日) 14:01:40MSDNでWriteFileの仕様は見たの?
0462460
2009/01/25(日) 14:06:57見ました。以下のページですよね。
http://msdn.microsoft.com/ja-jp/library/cc429856.aspx
BOOL WriteFile(
HANDLE hFile, // ファイルのハンドル
LPCVOID lpBuffer, // データバッファ
DWORD nNumberOfBytesToWrite, // 書き込み対象のバイト数
LPDWORD lpNumberOfBytesWritten, // 書き込んだバイト数
LPOVERLAPPED lpOverlapped // オーバーラップ構造体のバッファ
);
第1引数と、第5引数には、何を設定すれば、いいかわかりました。
2〜4に何を設定したらいいかわからなかったのです。。
通信は、PCのCOMポート通しの通信をやろうとしています。
0463デフォルトの名無しさん
2009/01/25(日) 14:23:15第2引数 書きたいもの→"Test送信データ!"
第3引数 書きたいものの長さ→"Test送信データ!"のバイト数(文字列長さじゃないよ)
第4引数 書かれた長さをうけとる変数→適当なDWORD変数
0464デフォルトの名無しさん
2009/01/25(日) 14:32:59([ALT]+[TAB]や、Vistaの[Windows]+[TAB]を押したときになる、ウインドウを切りかえる画面のこと)
になったかどうかを知りたんだけど、これを知る方法ってありますか?
調べて見た感じなさそうなんだけど・・・
0465460
2009/01/25(日) 14:51:05ありがとうございます。
動かしてみます。
char data[] = "test送信データ!";
LPDWORD lp;
// 送信〜
WriteFile(
handle, // シリアルポートへのハンドラ
&data, // 送信バッファへのポインタ
sizeof(data), // 送信データ数
lp, // 実際に送信したデータ数
NULL ); // 非同期I/O動作の場合のオーバーラップ構造体へのポインタ
0466デフォルトの名無しさん
2009/01/25(日) 14:58:51&data
○
data or &data[0]
×
LPDWORD lp;
○
DWORD len;
WriteFile(handle,data,sizeof(data),&len,NULL );
0467デフォルトの名無しさん
2009/01/25(日) 15:25:18DWORD written;とかにしてWriteFileの引数のlpを&writtenにしろ。それ以前のCの問題じゃないか。
MSDNだけじゃなくてWriteFileでググって参考になりそうなコード探せよ。
0468デフォルトの名無しさん
2009/01/25(日) 19:33:05チェックボックス(IDC_GREY)にはいっているチェックをとりたいんですが
どうしたらいいですか?調べたところSendMessageを使うみたい
なんですが・・。
SendMessage(hDlg,BST_UNCHECKED,wParam,lParam);
これじゃどのチェックボックス(IDC_GREY)を外すのかわからないとおもうんですが・・。
ご教授お願いします。
0469デフォルトの名無しさん
2009/01/25(日) 19:41:24GetDlgItemでハンドル取ってとか、
どれでも好きなのを使うと良い。
0470デフォルトの名無しさん
2009/01/25(日) 19:43:270471デフォルトの名無しさん
2009/01/25(日) 19:44:020472デフォルトの名無しさん
2009/01/25(日) 20:00:14下記のコードを書いてみたのですが、これですと、クリックで選択項目が変わる際は取得できるのですが、
キーボードの矢印キーを使って選択が変わると、何も反応しません。
キーボードの矢印キーを使って選択が変わっても、新しい項目の値を取得できるようにするには、
どうしたら良いのでしょうか?ご教授下さい。
---------------------------------------
case WM_NOTIFY:
LPNMHDR lpnmhdr = (LPNMHDR)lp;
if( lpnmhdr->hwndFrom == hListView ){
LV_ITEM item;
LV_HITTESTINFO lvhti;
GetCursorPos((LPPOINT)&lvhti.pt);
ScreenToClient(((LPNMLISTVIEW)lp)->hdr.hwndFrom, &lvhti.pt);
ListView_HitTest(((LPNMLISTVIEW)lp)->hdr.hwndFrom, &lvhti);
char szBuff[100]="";
if (lvhti.flags & LVHT_ONITEM){
item.mask = TVIF_HANDLE | TVIF_TEXT;
item.iItem = lvhti.iItem;
item.iSubItem = 0;
item.pszText=szBuff;
item.cchTextMax=sizeof(szBuff);
ListView_GetItem(((LPNMLISTVIEW)lp)->hdr.hwndFrom, &item);
MessageBox(hWnd,szBuff,"表示",MB_OK);
}
0473デフォルトの名無しさん
2009/01/25(日) 20:05:510474デフォルトの名無しさん
2009/01/25(日) 20:06:290476デフォルトの名無しさん
2009/01/25(日) 20:34:21探してみると、もっと楽できる方法が提供されている事が良くある。
そうやって楽しようと調べている内に、色々詳しくなっていくわけだ。
0477デフォルトの名無しさん
2009/01/25(日) 21:11:270478デフォルトの名無しさん
2009/01/25(日) 21:16:050479472
2009/01/25(日) 21:25:18再びListViewに関する質問なのですが、
任意のクリックしたセルを修正できるListViewを作ろうと思っています。
(要するに、MSExcelの様な感じです)
ググった結果、
クリックしたセルに上書きする形で、エディタを作ればいい
とありました。
なるほど〜〜と思ったのですが、ここで問題発生・・・。
クリックしたセル領域の座標を求める方法が分かりません。
クリックしたセルのItem,SubItemは取得できるので、
CreateWindow("edit",...,(セル幅×SubItem),(セル高さ×Item),セル幅,セル高さ,...)
にすれば良いのかと一瞬思ったのですが、
よくよく考えてみると、項目数が多い場合、
ユーザーがListViewをスクロールしている可能性も考えられます。
こういった場合、どのようにしてListViewの上にエディタを作れば良いのでしょうか??
もしくは、実はもっと良い方法があったりするのでしょうか?
ご教授下さいませ。
0480デフォルトの名無しさん
2009/01/25(日) 21:40:130481デフォルトの名無しさん
2009/01/25(日) 21:57:33だから、教えてくださいね
0482デフォルトの名無しさん
2009/01/25(日) 22:09:17ほらよ
http://www.google.co.jp/search?hl=ja&q=%E3%82%A2%E3%83%AB%E3%83%84%E3%83%8F%E3%82%A4%E3%83%9E%E3%83%BC+%E8%A8%BA%E7%99%82&lr=lang_ja
0483デフォルトの名無しさん
2009/01/25(日) 22:24:25それはあなたの事でしょう
0484デフォルトの名無しさん
2009/01/25(日) 22:26:450485デフォルトの名無しさん
2009/01/25(日) 22:28:33主スレッドである処理が終わるまで
副スレッドを待機させるのってどうやるんですか
0486デフォルトの名無しさん
2009/01/25(日) 22:34:130487デフォルトの名無しさん
2009/01/25(日) 22:36:550488デフォルトの名無しさん
2009/01/25(日) 22:37:130489デフォルトの名無しさん
2009/01/25(日) 22:39:080490デフォルトの名無しさん
2009/01/25(日) 22:40:090491デフォルトの名無しさん
2009/01/25(日) 23:08:270492あんあん
2009/01/25(日) 23:11:13/ ̄\、 // ̄`\、
/ _\//_ _ i|
/ //:::::_`'|ヽ:. \二`ノ、ー..、
// /'/ ./::ヽ|:::\:.ヽ::::ヽ:\:::\
|' /::/:.:./ |.:|"`、..::ト、:ト;::::|: |:::;::::|
|/|:::::;| ::l、| ヽ| ヽl \|: |:::i::::|
| |::::;ヽ:::| ,二、 ,二、|: ト ::|:::ト、
ト/:::|`:l ! lj ! lj |:..:| |::|:::|::|
`|:::i:ヾ:| " '_ " |::::|'.::::i:::|:::|
/|:::|:::|:i:\ ` ノ イ::::|:::::::|:::|:::|、
/:|:::|:::|::|:::|::i:.. ー ´ .|:|:::;|:::i::::|:::|:::::|、
/ |:, i .:|ー-──| / |:'|:::|ー─ 、i:::::::|
//|l:::.|i::|  ̄` ´  ̄//::;/ l::::::ト、
//|| |:;|ノ| ノ,l::;l/ /:::::::ト、ヽ
/ ' |/|:|ヾ| |::l'/ /| |:::::|、|:|
|l/ |:| ' / ノ// /:|:::|::::i:.| |:|
|') ヽ| | (o, ノ/ /:::| :|::::::|:| |:|
|l丶 ノ ヽ ,/ ./::::,':: |::::::|i.| |.|
| /`iー ' ` ー / /:::::/::/|:::::| |:| ||
__,/_|__, - ──/ /;::::/:::/ |:::/' |:| |
r-'ニ ' /:/::/:::/ |:./ //|
Y _ ___ _//// |:/ /'
`i_ // ̄  ̄ ̄ ̄l//、// |'
.| rl| ! \|n|
| ||_ヽ_ ,_, -= '_,7〉
| /、  ̄ ̄ ̄ ,/ |uゝ
| '| \ :、 , / ヽ
ヽ | \:、 // |
| \ ,:/ |
0493デフォルトの名無しさん
2009/01/25(日) 23:13:410494デフォルトの名無しさん
2009/01/25(日) 23:17:450495デフォルトの名無しさん
2009/01/25(日) 23:39:10タスクスケジューラを使わずにサスペンドからの復帰を実現しているソフトがありますが、どのような方法を使っているのでしょうか?
0496デフォルトの名無しさん
2009/01/25(日) 23:56:170497デフォルトの名無しさん
2009/01/26(月) 00:42:59レスありがとうございます。
調べてみます。
0498デフォルトの名無しさん
2009/01/26(月) 11:01:040499デフォルトの名無しさん
2009/01/26(月) 14:44:19TVGN_PARENT
0500デフォルトの名無しさん
2009/01/26(月) 19:10:100501デフォルトの名無しさん
2009/01/26(月) 19:11:200502デフォルトの名無しさん
2009/01/26(月) 19:22:080503デフォルトの名無しさん
2009/01/26(月) 19:26:11出来たありがとう
0504デフォルトの名無しさん
2009/01/27(火) 10:10:36StretchBlt(hDC, ...);
きれいにビットマップを縮小できません。どうすればいいか分かりますか。
0505デフォルトの名無しさん
2009/01/27(火) 10:13:400506デフォルトの名無しさん
2009/01/27(火) 10:17:42そんな馬鹿な
0507デフォルトの名無しさん
2009/01/27(火) 10:27:59原因がわかった。
>Windows 95/98/Me では、この値はサポートされていません。
0508デフォルトの名無しさん
2009/01/27(火) 11:45:510509デフォルトの名無しさん
2009/01/27(火) 11:46:39__ __ __ __ __ __ __
`i | | i'l_i'l_i' i''´ __`ヽ-ッ _コ l____ i´__`ー-ッ _,,.、
,! ,! .l l _,,,_ └'´__ ``´ レ┐ ┌─┐ ,!'´ ``´ /,r''´
/ 丿 '、'、 l´ __`ヽ-ッi''´__`ヽ-ッ .l l ノ / / /
/ / ヽ ヾ´ ``'´└'´,,_``'´ l └ ' ,/ ___,,ノ /
_,,.r'' / \ `> r'"´ ``ヽS.) l 「´ 「´ _ノ
‘''' ´ `′ └ ''´ ̄``‐-‐'' └ ┘ └‐ '' ´
0510デフォルトの名無しさん
2009/01/27(火) 13:42:26では、線形補間法を検討してみます。
0511デフォルトの名無しさん
2009/01/27(火) 13:52:490512デフォルトの名無しさん
2009/01/27(火) 13:54:000513デフォルトの名無しさん
2009/01/27(火) 14:00:340514デフォルトの名無しさん
2009/01/27(火) 14:03:1695も考慮するとCPU処理で十分だろ、SSE使えなくなるけど。
0515デフォルトの名無しさん
2009/01/27(火) 14:57:100516デフォルトの名無しさん
2009/01/27(火) 14:59:440517デフォルトの名無しさん
2009/01/27(火) 15:08:43馬鹿なお前らでもそれくらいはわかってたよな?
0518デフォルトの名無しさん
2009/01/27(火) 15:10:420519デフォルトの名無しさん
2009/01/27(火) 15:49:480520デフォルトの名無しさん
2009/01/27(火) 15:50:570521デフォルトの名無しさん
2009/01/27(火) 15:55:160523デフォルトの名無しさん
2009/01/27(火) 15:59:430524デフォルトの名無しさん
2009/01/27(火) 16:08:080525デフォルトの名無しさん
2009/01/27(火) 16:10:120526デフォルトの名無しさん
2009/01/27(火) 16:13:300527デフォルトの名無しさん
2009/01/27(火) 16:15:370528デフォルトの名無しさん
2009/01/27(火) 16:15:380529デフォルトの名無しさん
2009/01/27(火) 16:22:310530デフォルトの名無しさん
2009/01/27(火) 16:26:070531デフォルトの名無しさん
2009/01/27(火) 16:26:45_
───| |─ R. E. S T A. U R. A. N T
,イ二ヽ| |
_ { { ヾ |__r‐z_、-、┌┐ ,.-、┌ i r-、 , ‐ァ
\ヘヽ_二フ j / /} ト┘! レ1 | | l└┴──/ /
`ー--‐ '´/_/ 」__j レ' L_,|  ̄`ヽ\ 〈 /
┌┐ } } ヽ〉
\ヽ、 ノ/
``ー---─ '´
0532デフォルトの名無しさん
2009/01/27(火) 16:42:470533デフォルトの名無しさん
2009/01/27(火) 16:57:450534デフォルトの名無しさん
2009/01/27(火) 17:11:560535デフォルトの名無しさん
2009/01/27(火) 17:18:090536デフォルトの名無しさん
2009/01/27(火) 17:18:350537デフォルトの名無しさん
2009/01/27(火) 17:19:51すまんこ
0538デフォルトの名無しさん
2009/01/27(火) 17:20:130539デフォルトの名無しさん
2009/01/27(火) 17:20:170540デフォルトの名無しさん
2009/01/27(火) 17:21:100541デフォルトの名無しさん
2009/01/27(火) 17:30:570542デフォルトの名無しさん
2009/01/27(火) 18:01:400543デフォルトの名無しさん
2009/01/27(火) 18:22:390544デフォルトの名無しさん
2009/01/27(火) 18:26:57そんな判りきった事をわざわざ言わなくていいよ。
0545デフォルトの名無しさん
2009/01/27(火) 18:27:540546デフォルトの名無しさん
2009/01/27(火) 18:28:200547デフォルトの名無しさん
2009/01/27(火) 18:41:440548デフォルトの名無しさん
2009/01/27(火) 18:43:570549デフォルトの名無しさん
2009/01/27(火) 18:44:06バーミヤン、すかいらーくと来たらガストだろと思ってたのに。。。
情報、ありがとうございましたλ...
0550デフォルトの名無しさん
2009/01/27(火) 19:18:300551デフォルトの名無しさん
2009/01/27(火) 19:23:05違うよ。おっさんと爺が2,3人でやっている
0552デフォルトの名無しさん
2009/01/27(火) 19:24:000553デフォルトの名無しさん
2009/01/27(火) 19:24:17なんだ、お前一人の仕業だったのか
0554デフォルトの名無しさん
2009/01/27(火) 19:33:01もう止めろよお前
0555デフォルトの名無しさん
2009/01/27(火) 19:35:220556デフォルトの名無しさん
2009/01/27(火) 19:37:120557デフォルトの名無しさん
2009/01/27(火) 20:38:080558デフォルトの名無しさん
2009/01/27(火) 20:50:560559デフォルトの名無しさん
2009/01/27(火) 20:51:540560デフォルトの名無しさん
2009/01/27(火) 20:56:350561デフォルトの名無しさん
2009/01/27(火) 20:58:430562デフォルトの名無しさん
2009/01/27(火) 21:41:21どうすればいいの?
言語はVB.NETっす
0563デフォルトの名無しさん
2009/01/27(火) 21:44:36よ、目覚まし
0564デフォルトの名無しさん
2009/01/27(火) 21:45:08GetWindowText
でいいんすか?
0565デフォルトの名無しさん
2009/01/27(火) 22:02:00今度は何してるの?
0566デフォルトの名無しさん
2009/01/27(火) 22:03:36そんだけじゃわかんねぇよ
ちゃんとソース書いて説明しろよはげ
0567デフォルトの名無しさん
2009/01/27(火) 22:06:48さあ目覚ましと時計のソースをうpするんだ
みんなで笑ってあげるからよ
0568デフォルトの名無しさん
2009/01/27(火) 22:07:16お前が召還したんだから責任とれよ?
0569デフォルトの名無しさん
2009/01/27(火) 22:09:57GivemeAnswer( kokoni, GetWindowText( GetForegroundWindow() ) );
0570デフォルトの名無しさん
2009/01/27(火) 22:22:17できねぇじゃねぇかよ
俺の貴重な時間を浪費すんじゃねえよはげ
はやく教えろやくずども
0571デフォルトの名無しさん
2009/01/27(火) 22:25:460572デフォルトの名無しさん
2009/01/27(火) 22:26:250573デフォルトの名無しさん
2009/01/27(火) 22:37:01くずに聞かないとプログラムも書けないお前はなんなんだ?w
0574デフォルトの名無しさん
2009/01/27(火) 22:50:09で?ソースまだ?
0575デフォルトの名無しさん
2009/01/27(火) 22:52:520576デフォルトの名無しさん
2009/01/27(火) 22:57:36まずはお前が目覚ましと時計のソース出せよ
0577デフォルトの名無しさん
2009/01/27(火) 22:58:230578デフォルトの名無しさん
2009/01/27(火) 22:59:290579デフォルトの名無しさん
2009/01/27(火) 23:09:300580デフォルトの名無しさん
2009/01/27(火) 23:16:560581デフォルトの名無しさん
2009/01/27(火) 23:23:45同時に修飾キーを押してるかどうかをチェックしたいんだけど、メッセージから分かるのはAltキーだけですか?
0582デフォルトの名無しさん
2009/01/27(火) 23:24:14は?目覚ましって何?!
早くソース作れよこれzipでやるからよ
http://vbvbvb.com/jp/gtips/0751/gGetForegroundWindow.html
0583デフォルトの名無しさん
2009/01/27(火) 23:35:03GetKeyState
0584デフォルトの名無しさん
2009/01/27(火) 23:39:44マウスでListViewをドラッグして複数行選択した後、
マウスをドロップ(っていうのかな?範囲選択が終わって、マウスボタンから指を離す事)
した瞬間を捕まえるには、何のメッセージを捕らえれば良いのかな??
ListViewのWM_LBUTTONUPかと思ったんだけど、どうも違うと分かって、
ListViewの親ウィンドウに、WM_NOTIFYで何かのメッセージが飛んで来るんだと思って、
いろいろググってみたけど分からない。
知ってる人がいたら教えて下さい。
0585デフォルトの名無しさん
2009/01/27(火) 23:40:37Spy++で調べろ
0586デフォルトの名無しさん
2009/01/28(水) 00:25:03ttp://msdn.microsoft.com/en-us/library/cc656509.aspx
0587デフォルトの名無しさん
2009/01/28(水) 00:27:230588562
2009/01/28(水) 00:35:06とりあえず>>562以外は偽者なので無視でお願いします。
以下のソースを書いてみたんだけどなぜかGetWindowTextLengthのところで
エラーになっちゃいます。理由わからないのでどうか教えてくださ〜い。
Dim ret As Long
ret = GetForegroundWindow
Me.Text = "タイトル"
If ret <= 0 Then
Exit Sub
End If
Dim length As Integer = GetWindowTextLength(ret)
If length <= 0 Then
Exit Sub
End If
Dim lpStringBuf As System.Text.StringBuilder
lpStringBuf = New System.Text.StringBuilder("", length + 1)
GetWindowText(ret, lpStringBuf, lpStringBuf.Capacity)
Me.TextBox1.Text = lpStringBuf.ToString
0589デフォルトの名無しさん
2009/01/28(水) 00:57:430590デフォルトの名無しさん
2009/01/28(水) 01:46:040591デフォルトの名無しさん
2009/01/28(水) 07:10:32お前が荒らしたのはバレバレ
今さら善人ぶって「荒らしたのは偽物なので教えてくれ」なんて言っても説得力皆無
0592デフォルトの名無しさん
2009/01/28(水) 07:19:37そこが間違ってたらそれまでだしなあ。
0593デフォルトの名無しさん
2009/01/28(水) 09:53:27メモリの内容をファイル用APIとかで扱いたい。
0594デフォルトの名無しさん
2009/01/28(水) 10:58:07HWNDはIntPtrにするのが普通みたいだけど?
0595デフォルトの名無しさん
2009/01/28(水) 11:26:080596デフォルトの名無しさん
2009/01/28(水) 11:27:58http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8761.txt
0597デフォルトの名無しさん
2009/01/28(水) 11:44:010598デフォルトの名無しさん
2009/01/28(水) 11:55:45iyの変化に影響せずixの変化に影響するする変数を
予めループの外で計算しておく。(計算結果は配列に入れる)
浮動小数点は極力使わない。(10000倍とかの係数で対応)
0599デフォルトの名無しさん
2009/01/28(水) 12:00:14それだと0.5倍未満でエイリアス出てくるよ。
MMX使えないとしてもDWORDならx8R8G8B8をx16G16とR16B16に分ければ
16bitまでの加算は同時に2つ行える。
0.5倍未満の縮小をちゃんとやりたいならメモリ食うけど2passスケーリングにすると処理量が減る。
0600デフォルトの名無しさん
2009/01/28(水) 12:19:26WM_KEYDOWNが来た時にプロシージャ内で仮想キーがテンキーパッドにあるキーだった場合に
GetKeyState関数を使いNumLockが利いているかを最下位ビットを取るという方法でチェックしています。
しかし、何故か方向キーを連続で押すと最下位ビットが0と1を繰り返します。テンキーでない方でも同様でした。
NumLockが押されているかをチェックするのはどうすればいいんでしょうか?
0601デフォルトの名無しさん
2009/01/28(水) 12:27:16難しくてよくわかりません。例を示してくれませんか?
0602デフォルトの名無しさん
2009/01/28(水) 12:28:460603デフォルトの名無しさん
2009/01/28(水) 12:42:10スレ違いにも拘らずここまで答えもらっているのに
返ってきた言葉が「難しくてよくわかりません。例を示してくれませんか?」
よそに池
0604デフォルトの名無しさん
2009/01/28(水) 12:44:01日本語が難しくてよくわかりません。例を示してくれませんか?
0605デフォルトの名無しさん
2009/01/28(水) 12:55:520606デフォルトの名無しさん
2009/01/28(水) 12:56:450607デフォルトの名無しさん
2009/01/28(水) 13:19:20知らないならレスしないで下さい。ウザいだけです。。。
0608デフォルトの名無しさん
2009/01/28(水) 13:20:360609デフォルトの名無しさん
2009/01/28(水) 13:24:34何処の質問スレいってもそればっかりだな
答えてくれなくなるぞ
0610デフォルトの名無しさん
2009/01/28(水) 13:27:57知らないならレスしないで下さい。ウザいだけです。。。
0611デフォルトの名無しさん
2009/01/28(水) 13:30:08知らないならレスしないで下さい。ウザいだけです。。。
0612デフォルトの名無しさん
2009/01/28(水) 13:40:23仮想キーがテンキーだった場合は
NumLock効いてるんじゃないの?
NumLockがオフだとVK_LEFTとかが来るぞ
0613デフォルトの名無しさん
2009/01/28(水) 14:38:37どんなコードを書いたの?
0614デフォルトの名無しさん
2009/01/28(水) 15:31:34if( wp == VK_DOWN ){
bool numlock = ::GetKeyState(wp)&1;
ifstream("log.txt") << numlock;
}
break;
今チェックしてないですけど、こんな感じで
0615デフォルトの名無しさん
2009/01/28(水) 15:35:160616デフォルトの名無しさん
2009/01/28(水) 15:46:000617デフォルトの名無しさん
2009/01/28(水) 15:53:25スレ違いと分かっててわざと言ってるだろお前
0618デフォルトの名無しさん
2009/01/28(水) 15:56:160619デフォルトの名無しさん
2009/01/28(水) 16:05:09知らないならレスしないで下さい。ウザいだけです。。。
0620デフォルトの名無しさん
2009/01/28(水) 16:16:41スレの価値がないのだ。荒らしが言いたいことは「Linuxを使え」な
のだから。お前たちが改心してLinuxを使わない限り荒らしは収まら
ないだろう。どちらにしろ勝ち目のない戦いを挑んでいることになる。
荒らしを気にするあまり答えなければ荒らしの目論見どおりスレは潰
れる。答えれば荒らしでしたーという感じでバカにされる場合もある。
勝ち目はない。
ここはどうだろう?荒らされるに任せて200スレくらいまで伸ばして
「やはりWinAPIは流行ってるな〜」などと悦にいってみるのは?それも
悪くない。たかがAPIごときで75まで伸びるスレは他にないのだから。
Linux、Mac、UNIXのスレが75まで伸びた頃宇宙歴(Linuxに習ってヲタ
風にしてみた)はいくつだろうか?このスレは数千を超えているだろう。
悪くない。実に悪くない。
嵐に負けず、丁寧に一つ一つ質問に答えていくことを推奨する。
※LinuxはMacでもUNIXでもRubyでも好きに置き換えて読んでいただ
きたい。
0621デフォルトの名無しさん
2009/01/28(水) 16:21:51どうせコピペに釣られてUbuntuあたりでポチポチしてたクチだろ
0622616
2009/01/28(水) 16:28:22かなり真面目に質問してました…il|iorz
そしてsage忘れたのも重ねて謝ります…
…スレ違いですか?
.NETスレにでも行けばいいですか?
そして何この流れ
0623デフォルトの名無しさん
2009/01/28(水) 16:32:54Win32APIとは異なります。
0624デフォルトの名無しさん
2009/01/28(水) 16:33:37ラミングのみを扱うスレは無い。Linuxプログラマーなどいない。イン
ストールしただけで開発者を自称するのである。本来Linuxユーザーは
技術板に来てはいけない人種なのだ。来てしまった以上、荒らすのは
当然の成り行きとも言える。板違いなのである。
0625デフォルトの名無しさん
2009/01/28(水) 16:38:01【初心者歓迎】C/C++室 Ver.63【環境依存OK】
http://pc11.2ch.net/test/read.cgi/tech/1231499251/l50
0626デフォルトの名無しさん
2009/01/28(水) 16:54:48Linux上の開発環境のほとんどはLinux固有のものじゃないだろうがこの低脳
お前がム板から消えろ
0627616
2009/01/28(水) 17:18:18あ、ctimeで有る必要は全くなくて、
何か指定したフォーマットで時間を文字列に出力して
文字列を指定したフォーマットで時間に戻すような関数の組み合わせがあれば教えていただけませんか?
0628デフォルトの名無しさん
2009/01/28(水) 17:24:30FileTimeTo??? で最後に time型(time_t ?) に近いもの探して変換代入ぐらいか?
0629デフォルトの名無しさん
2009/01/28(水) 17:31:43文字列からの変換はエラー時の処理の要求が千差万別なので、
APIとして用意するのがあまり現実的でないんだよね。
0631デフォルトの名無しさん
2009/01/28(水) 18:57:17遅くなってすまん。
GetKeyState(VK_NUMLOCK)
0632デフォルトの名無しさん
2009/01/28(水) 19:34:56VB、NETだとハンドルはLong型ではなくINT型じゃないと駄目なんですね
勉強になりました
ところでウインドウから取得した情報をもとに、そのウインドウがどんなアプリ(エクセルとかメモ帳とかVBとか)なのかという情報を取得することって出来るでしょうか?
どなたか教えて下さい
よろしくお願いします
0633デフォルトの名無しさん
2009/01/28(水) 20:00:480634デフォルトの名無しさん
2009/01/28(水) 20:07:27つーかInt型でもマーシャリング時にエラー吐くんじゃないかなあ
.NETスレじゃないのでこれ以上触れないが
ウィンドウからプロセスIDが取れる(GetWindowThreadProcessId)
プロセスIDからプロセスを開き、そこからモジュールのパスが取れる(EnumProcessModules)
ttp://support.microsoft.com/kb/175030/ja
あとは実行ファイル名のデータベース用意するなりなんなりする
0635デフォルトの名無しさん
2009/01/28(水) 20:45:080636デフォルトの名無しさん
2009/01/28(水) 20:50:190637デフォルトの名無しさん
2009/01/28(水) 20:50:570638デフォルトの名無しさん
2009/01/28(水) 21:38:05のリンクの猫でもわかるのサイトを全部理解しできたらプログラマになれますか?
まだ足りないですか?
0639デフォルトの名無しさん
2009/01/28(水) 21:41:22そうじゃないなら自称プログラマ
0640デフォルトの名無しさん
2009/01/28(水) 21:41:550641デフォルトの名無しさん
2009/01/28(水) 21:42:19熟知してる人に合うのは稀
0642デフォルトの名無しさん
2009/01/28(水) 21:42:570643デフォルトの名無しさん
2009/01/28(水) 21:49:35嘘だろ
猫ぐらいの事は熟知してるだろ
さすがに関数全部は覚えちゃいないが
0644デフォルトの名無しさん
2009/01/28(水) 21:50:43ひでえよ
0645デフォルトの名無しさん
2009/01/28(水) 21:53:060646デフォルトの名無しさん
2009/01/28(水) 21:57:510647デフォルトの名無しさん
2009/01/28(水) 21:59:010648デフォルトの名無しさん
2009/01/28(水) 21:59:440649デフォルトの名無しさん
2009/01/28(水) 22:01:00おいおい、Windowはお前と違って忙しいんだから
描画ぐらいWM_PAINTなんてしないで、Windowに好きにやらせろよ
0650デフォルトの名無しさん
2009/01/28(水) 22:01:510651デフォルトの名無しさん
2009/01/28(水) 22:02:48ValidateRectよりは可能性高い気がしないか?
0652デフォルトの名無しさん
2009/01/28(水) 22:02:500653デフォルトの名無しさん
2009/01/28(水) 22:04:250654デフォルトの名無しさん
2009/01/28(水) 22:04:39BeginPaint 使わないと上にあるコントロールなどの上から描画しちゃったりするんだよな
0655デフォルトの名無しさん
2009/01/28(水) 22:12:170656デフォルトの名無しさん
2009/01/28(水) 22:14:210657デフォルトの名無しさん
2009/01/28(水) 22:15:35バグだからって俺が修正したというのに
0658デフォルトの名無しさん
2009/01/28(水) 22:24:38さんくす
0659デフォルトの名無しさん
2009/01/28(水) 23:10:55しかし、やりたいのは”押された方向キーがテンキー上のものかどうか”をチェックすることでして、
それだと、まったく意味がありませんでした。このようなチェックってどうやるんでしょうか・・・?
0660デフォルトの名無しさん
2009/01/28(水) 23:11:23言語訓練のために立てたものです。
iちゃんと調教サーバのトランザクションに利用するスレッドなので、
関係するプロセス内のスレッド以外からは書きこまないで下さい。
0661デフォルトの名無しさん
2009/01/28(水) 23:13:00VK_LEFT等の値が来たとしたらそれはNumLockがOnのテンキーではあり得ないんじゃないのか
0662デフォルトの名無しさん
2009/01/28(水) 23:27:29流れを読まずにレスするけど、WM_KEYDOWNのlParamのbit23-16のスキャンコードかbit24を
見るしかないんじゃないかな。
0663デフォルトの名無しさん
2009/01/28(水) 23:35:13一応思ってたことができたんで報告。
VK_LEFTはNumlockがオフの時、方向キーとテンキー両方から送られてきます。
用はこの時どちらが押されたのかを調べたかったんですが、どうやらこれらはLPARAMの24ビット目(拡張ビット)を
見ることで分かるようです。
後でこれを見るかもしれない人のために張っときます。
bool numlock = false;
if( wp == VK_RETURN ){
numlock = lp&0x1000000;
}else
if( (wp >= VK_PRIOR && wp <= VK_DOWN) || wp == VK_INSERT || wp == VK_DELETE || wp == VK_CLEAR ){
numlock = (lp&0x1000000)==0;
}
GetKeyState要りませんでした。
0664デフォルトの名無しさん
2009/01/28(水) 23:35:590665デフォルトの名無しさん
2009/01/28(水) 23:36:21解説ありがとうございました。
とても参考になったんですが、いろいろやってみて
アクティブになったウィンドウのプロセスIDを取得することはできたんですが、
アプリケーション名を取得することがなかなかできませんでした・・・。
すいませんがもう少しヒントをよろしくお願いいたします。
0666デフォルトの名無しさん
2009/01/28(水) 23:39:460667デフォルトの名無しさん
2009/01/28(水) 23:42:08いい加減VBスレか.NETスレ行けよ
0668デフォルトの名無しさん
2009/01/28(水) 23:44:59>プロセスIDからプロセスを開き、そこからモジュールのパスが取れる
OpenProcess→EnumProcessModules→GetModuleFileNameEx
これで全てな気がするが…
ヒントって何だ
>>666
プロセスを生成したモジュールファイル名じゃないの
0669デフォルトの名無しさん
2009/01/28(水) 23:52:23助かりましたありがとうございます!
いろいろと無知ですみません!
0670デフォルトの名無しさん
2009/01/28(水) 23:53:13.NET Frameworkでなんかあったはずだから、VB.NETスレで聞いたほうがいいと思うんだよな。
0671668
2009/01/28(水) 23:58:27わざわざAPIでやりたい物好きのようだから、APIで答えてあげたよ
俺って超優しい
0672デフォルトの名無しさん
2009/01/29(木) 00:18:32できました!
MainModuleのほうでやりました。
しかし、vb.netにこんなべんりな関数があったなんて。
勉強になりました。ありがとうございました。
0673668
2009/01/29(木) 00:21:460674デフォルトの名無しさん
2009/01/29(木) 00:26:24その気持ちすごくわかる
0675デフォルトの名無しさん
2009/01/29(木) 00:27:58マルチバイト、海栗
どっちでしている?
0676デフォルトの名無しさん
2009/01/29(木) 00:33:020677デフォルトの名無しさん
2009/01/29(木) 01:48:590678デフォルトの名無しさん
2009/01/29(木) 01:51:540679デフォルトの名無しさん
2009/01/29(木) 01:57:42一行目に書いてあるから
0680デフォルトの名無しさん
2009/01/29(木) 03:43:39では無理ってこと?
0681デフォルトの名無しさん
2009/01/29(木) 04:09:35説明しても理解する努力をしてもらえなさそうだな
0682デフォルトの名無しさん
2009/01/29(木) 04:13:30昔はこんなスレなんか無かったからな一人で頑張ったもんさ
0683デフォルトの名無しさん
2009/01/29(木) 04:55:19http://wisdom.sakura.ne.jp/system/winapi/media/mm6.html
のコードを
g++ wave.cpp -lwinmm -lgdi32
でコンパイルは通る&音出るけど,動作が停止する.なぜ?
こちらvista bussiness & g++ 3.4.4
0684デフォルトの名無しさん
2009/01/29(木) 06:31:22シングルバッファで結構エグい再生の仕方してるせいで
waveOutWriteが返って来ずにメッセージループが止まってるとか。
もしくは単にドライバが腐ってるだけとか。
0685デフォルトの名無しさん
2009/01/29(木) 07:18:03Win32s 対応もそろそろ厳しいな
0686デフォルトの名無しさん
2009/01/29(木) 07:38:210687デフォルトの名無しさん
2009/01/29(木) 07:56:32標準で再生できるようになった時点で用済みだろ。
昔は腐ったドライバもあったからまだ検討する価値も多少あったが、
完全にエミュレーションとなった今では全く無意味だな。
0688デフォルトの名無しさん
2009/01/29(木) 09:39:01Hwnd = CreateWindowEx(WS_EX_TOOLWINDOW | WS_EX_TOPMOST | WS_EX_LAYERED, "", "",
WS_POPUP, x, y, WIDTH, HEIGHT, NULL, NULL, GetModuleHandle(NULL), NULL );
SetLayeredWindowAttributes(Hwnd, RGB(255, 255, 0), 0, LWA_COLORKEY);
こういう感じで子ウィンドウの透明化していたんですけど
windows2000使っていた時は問題なく動いていたのに、XPsp3だと全く見えなくなってしまいました。
(WS_EX_LAYERED外すとxpでもちゃんと動く)
xpでWS_EX_LAYERED指定した時点で見えなくなるのはいいんですが
SetLayeredWindowAttributes が全然効いてない感じです。
なにか間違っているところありますかー
0689デフォルトの名無しさん
2009/01/29(木) 12:30:23>こういう感じで子ウィンドウの透明化していたんですけど
WS_EX_LAYERED
Windows 2000/XP: Creates a layered window. Note that this cannot be used for child windows.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Also, this cannot be used if the window has a class style of either CS_OWNDC or CS_CLASSDC.
0690デフォルトの名無しさん
2009/01/29(木) 12:41:24cygwinのdefaultのg=++からMinGWのg++に変更したらあっさり解決しました.
Vistaが原因なのかcygwinが原因なのかはわからずじまい.
0691デフォルトの名無しさん
2009/01/29(木) 12:44:27すみません子は書き間違いでした
0692デフォルトの名無しさん
2009/01/29(木) 12:53:00XP SP3だけど試しにやってみたら普通にできるが。
なにか別のところでヘマやってるんじゃないの?
0693デフォルトの名無しさん
2009/01/29(木) 13:28:31確かに別のところでヘマしてるかもしれませんが
何故か2000では問題なし
どこが怪しいのかもわかりません…
0694デフォルトの名無しさん
2009/01/29(木) 13:30:190695デフォルトの名無しさん
2009/01/29(木) 13:41:58まずレイヤードウィンドウの単純なテストプログラムでも作って動作確認してみなよ。
それで動くんなら自分のプログラムに不備があるんだろう。
0696デフォルトの名無しさん
2009/01/29(木) 13:52:17出かけねばならず後でちょっと作ってみます
0697デフォルトの名無しさん
2009/01/29(木) 15:39:070698デフォルトの名無しさん
2009/01/29(木) 15:41:450699デフォルトの名無しさん
2009/01/29(木) 15:46:060700デフォルトの名無しさん
2009/01/29(木) 15:59:17DCB構造体のメンバ
EofChar; /* EOF文字 */
EvtChar; /* イベント通知文字 */
イベント開始とEOFを検出するとどのような動作をするのでしょうか?
0701デフォルトの名無しさん
2009/01/29(木) 21:57:52_TrackMouseEventが返り値1でdwFlagsがTME_LEAVEの時に
WM_MOUSELEAVEがまったく飛んできません。ちなみにTME_HOVERにしたらWM_MOUSEHOVERは飛んできました。
何が悪いんでしょうか?
0702デフォルトの名無しさん
2009/01/29(木) 22:48:29データが入っているカラムの上からドラッグを始めて、
そのまま複数のアイテムを選択する方法ってありますか??
0703デフォルトの名無しさん
2009/01/29(木) 23:02:350704デフォルトの名無しさん
2009/01/29(木) 23:04:28さっそく単純な窓のみのプログラムを作ったところ問題無く透明化出来ました。
実は出来ないと言った問題のプログラムは、2枚ウィンドウがあるのです。
2000の時は、一枚目をHIDEにして2枚目を透明化していました。
XPで2枚のウィンドウを表示させるだけのプログラムを作ったところ
一枚目は透明化出来るんですが、2枚目がどうしても出来ません。
制限でもあるのでしょうか?
0705702
2009/01/29(木) 23:08:01ListViewは、
右余白(データの入っていない部分)をクリックしてドラッグを始めると、
普通に複数行選択できますが、
データの入っている部分をクリックしてドラッグを始めると、複数行選択できません。
これの解決方法がぜひ知りたいのです。
(結構ググッたのですが、探し出せませんでした。
もしかして不可能だったりするのでしょうか・・・)
0706デフォルトの名無しさん
2009/01/29(木) 23:14:06ソースうp
0707デフォルトの名無しさん
2009/01/29(木) 23:59:22余計なゴミとか削って70行になったけど
ここでいいのかな
0708デフォルトの名無しさん
2009/01/30(金) 00:00:400709デフォルトの名無しさん
2009/01/30(金) 00:14:02ttp://www1.axfc.net/uploader/File/so/17680
これでいいのかな
おねがいします
0710デフォルトの名無しさん
2009/01/30(金) 00:31:43コード抜粋するとこんな感じです。
case WM_MOUSEMOVE:
if(!hover){
TRACKMOUSEEVENT tme;
tme.cbSize = sizeof(TRACKMOUSEEVENT);
tme.dwFlags = TME_LEAVE;
tme.hwndTrack = hwnd;
hover=true;
_TrackMouseEvent(&tme);
}
break;
case WM_MOUSELEAVE:
hover = false;
break;
0711デフォルトの名無しさん
2009/01/30(金) 01:38:54「システム スタンバイ」「システム 休止状態」についてですが、
このシステムのアイドル時間が今いくらかを知る方法はなかったでしょうか?
起動しているといくら待ってもスタンバイにならないプログラムがあって
原因が何なのか調べたいのですが、毎回1分待っていてはきりがないので……。
0712デフォルトの名無しさん
2009/01/30(金) 01:56:54staticだから
てかWM_DESTROYでDestroyWindowって・・
0713デフォルトの名無しさん
2009/01/30(金) 02:08:460714デフォルトの名無しさん
2009/01/30(金) 02:46:060715デフォルトの名無しさん
2009/01/30(金) 04:10:03> WM_DESTROYでDestroyWindow
WM_DESTROYが無限再帰してスタックオーバーフローするのを期待して試したら何も起きなかったw
DestroyWindow側で再入防止の対策してあるのかな
0716デフォルトの名無しさん
2009/01/30(金) 04:30:37まだわからないです…
そこを変えまくっても色々変えまくっても変化なく
2000では普通に表示される…
0717デフォルトの名無しさん
2009/01/30(金) 05:03:38あ、できました
寝ぼけててちゃんとクラス設定してなかったけど
したら出来ました…こんな簡単なことだったのかあ
助かりました。
でもよくわからないのが、2000だと別に定義済みクラスでもなんでも
普通に透明化出来るんですよね
うpの為の適当なソースなので他のところあまりいじらんでくださいw
ありがとうございました
0718デフォルトの名無しさん
2009/01/30(金) 08:29:41WinAPIでウィンドウ作って
その子ウィンドウとして、ある.exeファイルを起動(吉里吉里)
そして、通常は霧きりで進行、なんらかのフラグでDXライブラリに移行
みたいなのを創造しているのですが、これは可能なのでしょうか?
知識があまり無いので勘違いしまくりの発言だったらすいません
0719デフォルトの名無しさん
2009/01/30(金) 08:48:290720デフォルトの名無しさん
2009/01/30(金) 08:50:44知識がないからと前置きされてしまったので止めた。すまぬ
0721デフォルトの名無しさん
2009/01/30(金) 08:52:45もしよければあげてもらえると嬉しいです
WinAPIは勉強中なので、これから理解できるかもしれませんし
0722デフォルトの名無しさん
2009/01/30(金) 08:55:22最悪自分で吉里吉里のソースいじる根性があるなら不可能じゃないが。
質問文のレベルからするとすっぱり諦めたほうが早いな。
0723デフォルトの名無しさん
2009/01/30(金) 08:57:07そして、もう一つのアプリ起動し、描画先を吉里吉里で作ったウィンドウにする
これでできる
0724デフォルトの名無しさん
2009/01/30(金) 09:02:460725デフォルトの名無しさん
2009/01/30(金) 12:43:270726デフォルトの名無しさん
2009/01/30(金) 13:31:00俺も無理である理由に興味あるなぁ。なんで?
0727デフォルトの名無しさん
2009/01/30(金) 14:22:40しかもやっぱりWM_MOUSEHOVERすら来ていないようです。
0728デフォルトの名無しさん
2009/01/30(金) 16:57:49現在のシングルスレッドアプリケーションは下記のような仕組みでやっています。
最初はSleepすら入れなかったため、CPU使用率が100%近くなってしまいました。
で、一番良いのは GetMessageにタイムアウト時間を設定できることなのですが、そういうAPIは無いでしょうか?
if (::PeekMessage(&msg, NULL, 0, 0, PM_NOREMOVE))
{
if (::GetMessage(&msg, NULL, 0, 0))
{
::TranslateMessage(&msg);
::DispatchMessage(&msg);
}
else
{
break;
}
}
else
{
run(); // 内部で1フレーム分時間が経ったかチェックして、経っていなかったら::Sleep(1);して何もせずに制御を返す
}
0729デフォルトの名無しさん
2009/01/30(金) 16:58:47実際は最初の行の前にwhile(true){があり、最後の行の下に } があります。
0730デフォルトの名無しさん
2009/01/30(金) 17:10:290731デフォルトの名無しさん
2009/01/30(金) 17:15:22俺では思いつかなかったから、結局スレッド分けてる。
0732デフォルトの名無しさん
2009/01/30(金) 17:22:22シグナルにならないダミーイベントwait をタイムアウト付きでやるぐらい?
0733デフォルトの名無しさん
2009/01/30(金) 17:37:54ありがとうございます。
試してみたところ、なかなか良い動きをしてくれているようです。
MsgWaitForMultipleObjectsExのほうでないと「すでにイベントキューが貯まっているか」を見てくれないようなので、Exを使いました。
シングルスレッドで十分なちょっとしたツールの時など、役に立ちそうです。
0734デフォルトの名無しさん
2009/01/30(金) 17:55:10リストビューを登録しました
LV_ITEM item;
item.mask = LVIF_TEXT | LVIF_PARAM;
item.pszText = "AAA";
item.iItem = 0;
item.iSubItem = 0;
item.lParam = 1;
ListView_InsertItem(hList, &item);
別の関数で item.lParam が持つ値を知りたいです。(この場合、1ですが)ListView_○○とかマクロがあったと思うのですが忘れてしまって困ってます
lParamが持ってる値を知る方法知りませんか?
0735デフォルトの名無しさん
2009/01/30(金) 18:01:360736デフォルトの名無しさん
2009/01/30(金) 18:41:13commctrl.hに載ってるのを忘れてました。感謝です。
0737デフォルトの名無しさん
2009/01/30(金) 20:03:45Sleepは0が基本で、それでもCPU 100%になるようなら
少しずつ値を増やしていく
0738デフォルトの名無しさん
2009/01/30(金) 20:07:270739デフォルトの名無しさん
2009/01/30(金) 20:08:230740デフォルトの名無しさん
2009/01/30(金) 20:27:39もっといい方法があるの?
それともただの馬鹿なの?死ぬの?
0741デフォルトの名無しさん
2009/01/30(金) 20:36:191の方が良いかもしれんね。
それにしてもWindows7SDKになっても未だに、
Sleepの分解能上げたかったら、timeBeginPeriod使えって書いてあるのな。
もう少しMMCSSをプッシュしても罰は当たらないと思うんだ。
0742デフォルトの名無しさん
2009/01/30(金) 21:23:08SetDIBitsToDevice(hdc,
0, 0, //転送先座標
wx, wy, //幅、高さ
0, 0, //転送元座標
0, wy, //走査開始番号、走査線の本数
//ビットマップデータ開始のアドレス
(char *)szBuffer + dwOffBits - sizeof(BITMAPFILEHEADER),
lpbmp_info, //BITMAPINFO構造体へのポインタ
DIB_RGB_COLORS);
をやっているのですが、これだとそのままbmpが表示されてしまいます。
たとえば4167×4167の画像を表示しようとするとDialogがくそでかくなってしまいます。
そこでbitmapを「縮小」してプレビューしたいのですが
どうしたらいいですか?
0743デフォルトの名無しさん
2009/01/30(金) 21:31:07そのサイズだと古いOSとか場合によっては失敗するけどな。
0744デフォルトの名無しさん
2009/01/30(金) 22:02:420745デフォルトの名無しさん
2009/01/30(金) 22:13:070746デフォルトの名無しさん
2009/01/30(金) 22:16:40トレイにカーソルを持ってくるとソフト名はポップアップされますが見えないんです。
case WM_CREATE:
hIcon = LoadIcon(NULL,".rcにあるアイコン名");
nIcon.cbSize = sizeof(NOTIFYICONDATA);
nIcon.hWnd = hwnd;
nIcon.uID = 0;
nIcon.uFlags = NIF_MESSAGE | NIF_ICON | NIF_TIP;
nIcon.uCallbackMessage = WM_USER + 1;
nIcon.hIcon = hIcon;
lstrcpy(nIcon.szTip,"ソフト名");
Shell_NotifyIcon(NIM_ADD,&nIcon);
何がいけないんでしょ?
0747デフォルトの名無しさん
2009/01/30(金) 22:25:17どう考えてもこれだろ
0748デフォルトの名無しさん
2009/01/30(金) 22:25:200749デフォルトの名無しさん
2009/01/30(金) 22:29:47>>743 ありがと
で、
GDI+でぐぐっても有益な情報がでてこない。
GDI+について何かおすすめの「本」ありますか?
0750デフォルトの名無しさん
2009/01/30(金) 22:32:490751デフォルトの名無しさん
2009/01/30(金) 22:34:50.NET関連の本ぐらいしか日本語で読める書籍はなかろう。
普通にWin32APIとC++理解してるならMSDNの情報だけで概ね事足りると思うが。
0752デフォルトの名無しさん
2009/01/30(金) 22:39:43別の書き方しないとダメですか。
0753デフォルトの名無しさん
2009/01/30(金) 22:40:12Graphics::DrawImageで幅と高さを指定するだけなのに情報も何も
0754デフォルトの名無しさん
2009/01/30(金) 22:49:32Google ChromeがtimeBeginPeriod(1)を呼ぶせいで、
CPU仕様率が上がってうるさいという話があるわけで、そう簡単な話でもないようだ。
http://www.google.co.jp/search?hl=ja&q=timeBeginPeriod+chrome
0755デフォルトの名無しさん
2009/01/30(金) 22:49:370756デフォルトの名無しさん
2009/01/30(金) 22:53:57スレッドセーフに作らなければ何使ってもダメだろ
>>741
Sleep(1);だと10msぐらい返って来なくね?
ちょっと時間掛かりすぎだと思
0757デフォルトの名無しさん
2009/01/30(金) 22:54:15http://msdn.microsoft.com/en-us/library/ms534077.aspx
だから、おそらくスレッド毎にGdiplusStartupとGdiplusShutdownに呼ぶ必要もないし、
複数スレッドで使ってもいいのだろうと俺は思う。
0758デフォルトの名無しさん
2009/01/30(金) 22:55:410759デフォルトの名無しさん
2009/01/30(金) 23:04:39子Dialogで
hDlg_a=GetParent(hDlg);
// GetDlgItemText(hDlg_a,IDC_EDITBOX,FileName,(int)sizeof(FileName)-1);
とかいてもうまくFileNameに文字列が入りません。
0760デフォルトの名無しさん
2009/01/30(金) 23:15:24�d
だったら落ちるプログラムはクリティカルセクションで排他かけてるからDLLが落ちる理由があるならGDI+の内部で性的変数が使われてるのかと思ったんだけど、違うみたいだね。。。
けどシングルスレッドの状態では落ちないんだよなぁ。
なんでマルチスレッドだとフォントの作成辺りで落ちるのか……
フォントファイルに排他ロックでも掛けてるのかねぇ。
0761デフォルトの名無しさん
2009/01/30(金) 23:22:54どうやればよいのでしょうか?
0762デフォルトの名無しさん
2009/01/30(金) 23:30:38他人のせいにする前に自分のプログラムを一寸たりとも疑わないその馬鹿さ加減は、
きっと死ぬまで治らないんだろうな。
0763デフォルトの名無しさん
2009/01/30(金) 23:39:58当たり前だけど疑ったあとです。
その決め付け癖はきっと死ぬまで治らないんだろうな。
0764デフォルトの名無しさん
2009/01/30(金) 23:41:090765デフォルトの名無しさん
2009/01/30(金) 23:49:50自分が無能で発見できないだけということを、一寸たりとも疑わないその馬鹿さ加減は、
きっと死ぬまで治らないんだろうな。
0766デフォルトの名無しさん
2009/01/30(金) 23:51:40マルチスレッドだと性能が落ちるって話は聞いたことある。
個人的にはマルチスレッドとの相性が良くないのかなとは思う。
0767デフォルトの名無しさん
2009/01/31(土) 00:03:32情報のソースがあるわけでもなく、自分で実験したわけでもないのに、
信憑性がまったくないことを既成事実のように語り始めるやつってなんなの?
0768デフォルトの名無しさん
2009/01/31(土) 00:08:17画面に描画したことあるけど普通に性能上がってたけどな。
書き込みだったら性能落ちるかもしれないけど。
0769デフォルトの名無しさん
2009/01/31(土) 00:08:35いやでも落ちるまではいかないけど、
マルチスレッドだと性能が落ちるよ。
マルチスレッドとの相性が良くない。
↑こう書かれるより全然ましってことですね。 分かります。
0770デフォルトの名無しさん
2009/01/31(土) 00:08:50子Dialogで
hDlg_a=GetParent(hDlg);
GetDlgItemText(hDlg_a,IDC_EDITBOX,FileName,(int)sizeof(FileName)-1);
とかいてもうまくFileNameに文字列が入りません.
0771デフォルトの名無しさん
2009/01/31(土) 01:04:410772デフォルトの名無しさん
2009/01/31(土) 01:16:43別々のUSBポートにつなげたキーボードのキーってそれぞれどちら側のキーボードのキーが
押されたかって判別できるものですか?
0773デフォルトの名無しさん
2009/01/31(土) 01:46:27知らないのにレスするのはやめてください。うざいです。
0774デフォルトの名無しさん
2009/01/31(土) 01:49:140775デフォルトの名無しさん
2009/01/31(土) 02:22:420776デフォルトの名無しさん
2009/01/31(土) 02:44:300777デフォルトの名無しさん
2009/01/31(土) 02:49:540778デフォルトの名無しさん
2009/01/31(土) 03:17:00XP以降ならRaw Input APIで出来るらしい。
0779デフォルトの名無しさん
2009/01/31(土) 10:56:14クライアントの接続を切ったとたんに、サーバーが異常終了して
しまいます。原因がわかりませんか?
http://uproda11.2ch-library.com/src/11154199.zip.shtml
お願いします。
0780デフォルトの名無しさん
2009/01/31(土) 11:21:37なんでGetParentを呼んでるの?
0781デフォルトの名無しさん
2009/01/31(土) 11:44:07FileNameが配列じゃなくてポインタだったら、Cの初歩からやり直せ。
0782779
2009/01/31(土) 12:28:420783デフォルトの名無しさん
2009/01/31(土) 12:32:150784デフォルトの名無しさん
2009/01/31(土) 12:33:080785デフォルトの名無しさん
2009/01/31(土) 12:35:010786デフォルトの名無しさん
2009/01/31(土) 12:35:440787779
2009/01/31(土) 12:39:28逝ってきます(泣
0788デフォルトの名無しさん
2009/01/31(土) 12:44:42hDlg_a=GetParent(hDlg);
GetDlgItemText(hDlg_a,IDC_EDITBOX,FileName,(int)strlen(FileName));
親DialogのハンドルをとるためにGetParentを呼んでいます。
0789デフォルトの名無しさん
2009/01/31(土) 12:46:06その strlen に意味はあるの?
0790デフォルトの名無しさん
2009/01/31(土) 12:47:120791デフォルトの名無しさん
2009/01/31(土) 13:18:40ファイル名を子ウィンドウで取得させて処理させたいって事か・・・やっと意味がわかった
どのタイミングでさせたいの?場合によっては独自定義メッセージでさせちゃうとかすりゃいいのに
0792デフォルトの名無しさん
2009/01/31(土) 13:26:49話はそれからだ
>>789 たぶん>>771が悪い
0793デフォルトの名無しさん
2009/01/31(土) 14:25:130794デフォルトの名無しさん
2009/01/31(土) 19:41:35255じゃなくて256だろ
0795デフォルトの名無しさん
2009/01/31(土) 20:25:551バイトで一々うるさい奴だな
0796デフォルトの名無しさん
2009/01/31(土) 20:32:380797デフォルトの名無しさん
2009/01/31(土) 20:37:270798デフォルトの名無しさん
2009/01/31(土) 20:47:51そんな奴>>793には回答する資格は無い。去れ。
0799デフォルトの名無しさん
2009/01/31(土) 20:59:160800デフォルトの名無しさん
2009/01/31(土) 21:05:35妄想でありもしない勝手な仕様を考える馬鹿って、いつになったら絶滅してくれるんだろう?
0801デフォルトの名無しさん
2009/01/31(土) 21:05:370802デフォルトの名無しさん
2009/01/31(土) 21:11:09ありがとうございます!
調べてみます。
0803デフォルトの名無しさん
2009/01/31(土) 21:11:380804デフォルトの名無しさん
2009/01/31(土) 21:18:10文字列終端文字は無視
最大文字数までに文字列を切り詰めちゃうから
最大数-1して終端に終端文字追加しないとだめぽ
0805デフォルトの名無しさん
2009/01/31(土) 21:19:210806デフォルトの名無しさん
2009/01/31(土) 21:27:35// 戻り値
// 関数が成功すると、バッファへコピーされた文字列の長さ( 終端の NULL を含まない)が TCHAR 単位で返ります。
ということで終端には NULL がある。
0807デフォルトの名無しさん
2009/01/31(土) 21:39:28こういう嘘を堂々と言うバカってまだいるんだな
0808デフォルトの名無しさん
2009/01/31(土) 21:42:51戻り値じゃなくてこっちだろ
> nMaxCount
> [in] Specifies the maximum length, in TCHARs, of the string to be copied to the buffer pointed to by lpString.
> If the length of the string, including the NULL character, exceeds the limit, the string is truncated.
0809デフォルトの名無しさん
2009/01/31(土) 21:45:210810デフォルトの名無しさん
2009/01/31(土) 21:48:02馬鹿は黙ってろ
0811デフォルトの名無しさん
2009/01/31(土) 21:49:210812デフォルトの名無しさん
2009/01/31(土) 21:50:56こんなの常識
0813デフォルトの名無しさん
2009/01/31(土) 22:11:080814デフォルトの名無しさん
2009/02/01(日) 00:39:22タブのファイラーみたいな感じです
アドバイスお願いします
0815デフォルトの名無しさん
2009/02/01(日) 01:39:490816デフォルトの名無しさん
2009/02/01(日) 01:54:26がんばれ!
以上。
0817デフォルトの名無しさん
2009/02/01(日) 02:09:09エスパーじゃない人はお引き取りください
0818デフォルトの名無しさん
2009/02/01(日) 02:10:22応援してる!
以上。
0819デフォルトの名無しさん
2009/02/01(日) 02:32:19大好き!
以上。
0820デフォルトの名無しさん
2009/02/01(日) 02:35:480821デフォルトの名無しさん
2009/02/01(日) 02:37:17キリ番!
以上。
0822デフォルトの名無しさん
2009/02/01(日) 02:39:360823デフォルトの名無しさん
2009/02/01(日) 04:05:57GetModuleFileNameって結構使うのにエラー判定は弱いよな……
0824デフォルトの名無しさん
2009/02/01(日) 06:52:24MS的な正しい使い方 (最近のSDK Helpには無くなってるが)
まあ、例えば "ファイル名.ini" を作る類いのソフトならこれくらいすべきだと思うけど。
static const TCHAR szManifest[] = TEXT(".manifest");
static const DWORD cchManifest = sizeof(szManifest) / sizeof(szManifest[0]);
ULONG dwChars;
TCHAR ModuleFileNameBuffer[MAX_PATH];
TCHAR lpsz = ModuleFileNameBuffer;
DWORD dwModuleFileNameBufferAvailable = sizeof(ModuleFileNameBuffer) / sizeof(TCHAR);
// Keep trying until we run out of space, or until we fetch the name of the module.
do
{
dwChars = GetModuleFileName(NULL, lpsz, dwModuleFileNameBufferAvailable);
if (dwChars == 0)
ReportLastErrorAndExit("GetModuleFileName(...)");
if ((dwChars + cchManifest) < dwModuleFileNameBufferAvailable)
break;
if (lpsz != ModuleFileNameBuffer)
delete[] lpsz;
dwModuleFileNameBufferAvailable += MAX_PATH;
lpsz = new TCHAR[dwModuleFileNameBufferAvailable];
if (lpsz == NULL)
{
SetLastError(ERROR_OUTOFMEMORY);
ReportLastErrorAndExit("new TCHAR[%lu]", dwModuleFileNameBufferAvailable);
}
}
while (true);
_tcscat(lpsz, szManifest);
0825デフォルトの名無しさん
2009/02/01(日) 07:16:57deleteが必要か判断する手間もあるからかな
0826デフォルトの名無しさん
2009/02/01(日) 08:45:460827デフォルトの名無しさん
2009/02/01(日) 09:46:38俺なんか、いつもreallocで手を抜くからなあ。
0828デフォルトの名無しさん
2009/02/01(日) 09:59:00現在のC++では、newに失敗すると、例外がthrowされるのでは? それと、
2回目のループが成功で抜けた時に、newで動的に確保したヒープが解放
されない。
ところで、上記だと結果が"ファイル名(.exe含む).manifest"になるけど、
これは意図したものなのか?
0829デフォルトの名無しさん
2009/02/01(日) 10:26:45> これは意図したものなのか?
意図も何も、.manifestの仕様を知らないのか?
0830デフォルトの名無しさん
2009/02/01(日) 10:33:41こいつ、頭が相当悪そうだw
0831デフォルトの名無しさん
2009/02/01(日) 10:36:39int main(){
CHAR *pNew;
while(1){
pNew = new char[65535];
std::cin >> pNew;
std::cout << pNwe;
}
return 0;
}
0832デフォルトの名無しさん
2009/02/01(日) 10:37:19クラスじゃないならいいんでね?
0833デフォルトの名無しさん
2009/02/01(日) 11:47:52manifestなんていつもexeのリソースに組み込んで、単独で配布するなんて
これまで一度もやってないからな。
> まあ、例えば "ファイル名.ini" を作る類いのソフトならこれくらいすべきだと思うけど。
って記述がなければスルーしたんだが。(w
んで、メモリリークするコードを書くのはスルーか?(w
0834デフォルトの名無しさん
2009/02/01(日) 12:09:060835デフォルトの名無しさん
2009/02/01(日) 12:15:310836デフォルトの名無しさん
2009/02/01(日) 12:28:48ちなみに、元コードは後できちんとdeleteしてある。
……よく見ると、元コードも含めて色々おかしくないか?これ。
「TCHAR lpsz」ってなんやねん。
_tcscatの箇所は元コードだとStringCChCatだけど、
バッファサイズの指定が明らかに変だし。
0837デフォルトの名無しさん
2009/02/01(日) 12:28:50そうそう。
_tcscat(lpsz, szManifest);
の後、lpszを使い終わってから、
if (lpsz != ModuleFileNameBuffer)
delete[] lpsz;
だよな。
0838デフォルトの名無しさん
2009/02/01(日) 12:37:18今のC++なら、
lpsz = new (std::nothrow) TCHAR[dwModuleFileNameBufferAvailable];
かな。こうすればNULLが返るようになってそのまま使える。
0839デフォルトの名無しさん
2009/02/01(日) 12:38:27メモリの確保に失敗した際のメモリリーク対策など考えてもあまり意味は無い。
そのままプログラムを殺してしまえば、どうせメモリは全て開放されるのだから。
プログラム終了時に自動的に開放されない、
グローバルなリソースに関してはその限りではないが。
場合によっては throw するためのメモリも足らず、即死する事もある。
この場合、スタック巻き戻しすら起こらないので、
いくらかのリソースリークが不可避になこともある。
これは不運だと思うしかないが、
グローバルリソースをできるだけ開放する努力をしなくて良い理由にはならない。
まあ、そうは言っても、簡単に例外安全にできるケースで
わざわざ例外安全にしないってのもどうかとは思うけどね。
0840デフォルトの名無しさん
2009/02/01(日) 12:54:110841デフォルトの名無しさん
2009/02/01(日) 12:57:29以前は終端に\0をつけなかったらしい。この切り詰めが起こったのをチェックしないと、
バッファオーバーランしてしまう。
んで、あんまりひどいんで必ず\0をつけるようにした、
とかいう話を聞いたことがある。
どのAPIだったか思い出せない・・・まさにこのGetModuleFileNameだったような・・・
しかしこの手のAPIは統一性ないよな。
別のAPIだと、引数に ptr と &bufsiz 渡させて、ptrがNULLのときはbufsizに必要サイズを返す、
ってなってるよな。MultiByteToWideCharとかレジストリ系とか。
ああ、この場合も、bufsizに\0用の領域を含むかどうかがあるか・・・
0842デフォルトの名無しさん
2009/02/01(日) 13:00:46うわ、ホントに頭悪かったのかw
0843デフォルトの名無しさん
2009/02/01(日) 13:17:280844デフォルトの名無しさん
2009/02/01(日) 13:19:181. ptr == NULLのとき
i. 必要サイズを返す
a. 終端の \0 を含める
b. 終端の \0 は含まない
ii. 失敗して 0 を返す
iii. NULL アクセスで落ちる
2. ptr != NULLでバッファが足りないとき
i. 可能な限りコピーして切り詰める
a. 終端に \0 が付く
b. 終端に \0 が付かない
ii. 何もコピーしない
a. *ptr に \0 が入る
b. バッファを一切弄らない
iii. バッファオーバーランする
細かいところだと ERROR_INSUFFICIENT_BUFFER などが設定されるか、とか
まぁ1-iiiと2-iiiは論外だが
0845デフォルトの名無しさん
2009/02/01(日) 13:21:420846デフォルトの名無しさん
2009/02/01(日) 13:33:06速度優先の場合は、落ちるのもありじゃないだろうか?
0847デフォルトの名無しさん
2009/02/01(日) 13:44:510848デフォルトの名無しさん
2009/02/01(日) 13:52:460849デフォルトの名無しさん
2009/02/01(日) 13:54:210850デフォルトの名無しさん
2009/02/01(日) 13:58:39毎日ageて馬鹿な発言をしては叩かれて、顔真っ赤にしながら低脳な煽りしてる人でしょ?
0851デフォルトの名無しさん
2009/02/01(日) 14:01:250852デフォルトの名無しさん
2009/02/01(日) 14:02:31スルーです。
0853デフォルトの名無しさん
2009/02/01(日) 14:16:03oldnewthingでclock.aviをハードコードするなとか文句言ってた馬鹿外人みたいだ
0854デフォルトの名無しさん
2009/02/01(日) 14:25:14この指摘がそもそも頓珍漢だからスルーしただけじゃんw
0855デフォルトの名無しさん
2009/02/01(日) 14:42:470856デフォルトの名無しさん
2009/02/01(日) 14:48:340857デフォルトの名無しさん
2009/02/01(日) 15:16:12static HWND hSlider;
case WM_INITDIALOG:
hSlider=GetDlgItem(hDlg,IDC_SLIDER);
SendMessage(hSlider,TBM_SETPOS,(WPARAM)TRUE,(LPARAM)3);
//スライダーの値を3にしておく。
これで設定できるはずがうまくいきません。
WM_PAINTなどで他にも設定が必要なのでしょうか?
0858デフォルトの名無しさん
2009/02/01(日) 15:19:300859デフォルトの名無しさん
2009/02/01(日) 15:28:16はSETPOSの前で行っています。
0860デフォルトの名無しさん
2009/02/01(日) 15:39:19SendMessage(hSlider,TBM_SETRANGE,FALSE,MAKELONG(1,7));
0861デフォルトの名無しさん
2009/02/01(日) 16:11:590862デフォルトの名無しさん
2009/02/01(日) 17:03:48case WM_INITDIALOG:
hSlider=GetDlgItem(hDlg,IDC_SLIDER);
SendMessage(hSlider,TBM_SETRANGE,FALSE,MAKELONG(1,7));
SendMessage(hSlider,TBM_SETPOS,(WPARAM)TRUE,(LPARAM)3);
SendDlgItemMessage (hDlg,IDC_SLIDER,TBM_SETTIC,0,3);
でうまくいきません 初期値を3にもっていきたいんですが・・。
何かincludeミスもないし・・。
0863デフォルトの名無しさん
2009/02/01(日) 17:10:50ありがとうございました。
0864デフォルトの名無しさん
2009/02/01(日) 17:14:440865デフォルトの名無しさん
2009/02/01(日) 17:43:380866デフォルトの名無しさん
2009/02/01(日) 17:51:060867デフォルトの名無しさん
2009/02/01(日) 18:32:040868デフォルトの名無しさん
2009/02/01(日) 18:41:45教えてください ねこでもわかるなどを探したのですが
詳しいページがありません。
1.Picute Controlの初期画像の設定
2.Picute Controlの画像変更
などがかいてあるページを探しています。
0869デフォルトの名無しさん
2009/02/01(日) 18:51:230870デフォルトの名無しさん
2009/02/01(日) 18:53:390871デフォルトの名無しさん
2009/02/01(日) 19:45:39よう、基地害!
0872デフォルトの名無しさん
2009/02/01(日) 19:53:43あのーーー、先生
Picture Controlとスタティックコントロールの違いって何ですか?
0873デフォルトの名無しさん
2009/02/01(日) 20:01:57ttp://msdn.microsoft.com/en-us/library/cc656589.aspx
0874デフォルトの名無しさん
2009/02/01(日) 20:20:590875デフォルトの名無しさん
2009/02/01(日) 20:26:400876デフォルトの名無しさん
2009/02/01(日) 20:29:24スレのレベルが急激に低下したのもこの人たちの仕業でしょう。
0877デフォルトの名無しさん
2009/02/01(日) 20:33:19pie chartを作成するサードパーティ製コントロールの名前かと思った
0878デフォルトの名無しさん
2009/02/01(日) 21:16:33ウィンドウを作成し
次に予め作っておいたアプリBを起動し、それをアプリAの子ウィンドウにする
これってどうやればできますでしょうか
0879デフォルトの名無しさん
2009/02/01(日) 21:21:51方法はいくらでもある
0880デフォルトの名無しさん
2009/02/01(日) 21:22:460881デフォルトの名無しさん
2009/02/01(日) 21:23:250882デフォルトの名無しさん
2009/02/01(日) 21:24:58もうなんつうかお前あほだな
0883デフォルトの名無しさん
2009/02/01(日) 21:25:190884デフォルトの名無しさん
2009/02/01(日) 21:26:41さっきの小学生の方ですね。ご愁傷様です。
0885デフォルトの名無しさん
2009/02/01(日) 21:27:06ハンドルから子ウィンドウは分かりましたがアプリAを起動するとアプリBの.exeを自動で起動する方法が分かりません
0886デフォルトの名無しさん
2009/02/01(日) 21:28:41CreateProcess
0887デフォルトの名無しさん
2009/02/01(日) 21:28:420888デフォルトの名無しさん
2009/02/01(日) 21:29:49心のそこから感謝します
これで出来ます
0889デフォルトの名無しさん
2009/02/01(日) 21:29:49スルーしとけ
0890デフォルトの名無しさん
2009/02/01(日) 21:33:10>>878と>>885と>>888は自分です
ID無いと分かりにくいですね
質問スレで質問している人間をスルーしろとか頭が弱いのでしょうか、お大事に・・・・
0891デフォルトの名無しさん
2009/02/01(日) 21:33:350892デフォルトの名無しさん
2009/02/01(日) 21:34:17釣れて良かったね
0893デフォルトの名無しさん
2009/02/01(日) 21:36:15なんでそこまで心が歪んでるのかな
自分は分からないところを質問した
分かる人が教えてくれた
俺は教えてもらえて嬉しいし、お礼を言った
これに食いつく意味が分からない
もっと素直な心で生きましょうよ
0894デフォルトの名無しさん
2009/02/01(日) 21:39:190895デフォルトの名無しさん
2009/02/01(日) 21:40:300896デフォルトの名無しさん
2009/02/01(日) 21:41:570897デフォルトの名無しさん
2009/02/01(日) 21:45:34もう二度と来ません、さようなら
0898デフォルトの名無しさん
2009/02/01(日) 21:47:54さようなら
0899デフォルトの名無しさん
2009/02/01(日) 21:53:390900デフォルトの名無しさん
2009/02/01(日) 21:54:560901デフォルトの名無しさん
2009/02/01(日) 22:04:180902デフォルトの名無しさん
2009/02/01(日) 22:13:18教えてもらう側としては本当にありがたいスレだから釣りとかよく分からないこと警戒して変な空気作るのは良くないと思う
0903デフォルトの名無しさん
2009/02/01(日) 22:16:050904デフォルトの名無しさん
2009/02/01(日) 22:27:120905デフォルトの名無しさん
2009/02/01(日) 22:34:350907デフォルトの名無しさん
2009/02/01(日) 23:44:44/[へへ
うこだだのめもスレ
0908デフォルトの名無しさん
2009/02/02(月) 00:23:42リソースIDのIDではなく、番号で書き込むイカレタ仕様じゃなかったっけ?
こいつ使うとリソースヘッダにある番号振りなおすと大変なことになるんだよね
0909デフォルトの名無しさん
2009/02/02(月) 00:30:130910デフォルトの名無しさん
2009/02/02(月) 01:15:24嘘だやってみろ
bmpリソースだぞ
0911デフォルトの名無しさん
2009/02/02(月) 01:20:55#define IDB_BITMAP1 130
ほらなってるやん
この130ってのがそうな
ケッ!糞が!>>909
0912デフォルトの名無しさん
2009/02/02(月) 01:35:410913デフォルトの名無しさん
2009/02/02(月) 01:53:28ウィザードで作りっぱなしだと未使用のIDが増えて
収拾つかなくなって保守しずらくなったり
別プロジェクトで作成したダイアログリソースををマージ
したりするとき手作業のほうが安心できたりとかするので
0914デフォルトの名無しさん
2009/02/02(月) 04:25:32ならない
お前の環境が糞なだけだろ
0915デフォルトの名無しさん
2009/02/02(月) 06:30:08そんときにピクチャーボックスがあるとENDw
0916デフォルトの名無しさん
2009/02/02(月) 06:33:220917デフォルトの名無しさん
2009/02/02(月) 07:17:400918デフォルトの名無しさん
2009/02/02(月) 08:10:09以下のように書式付きメッセージボックスを表示するコードを書いたのですが、
void func(const wchar_t* str, const wchar_t *fmt, ...) {
va_list ap;
va_start(ap, fmt);
wchar_t buf[256];
vswprintf_s(buf, sizeof(buf), fmt, ap); // ★
va_end(ap);
MessageBoxW(NULL, buf, str, MB_OK);
}
★を実行後にstrに不正な値が書きこまれてしまいます。
どうしてでしょうか?
_locale_t locale = _create_locale(LC_CTYPE, "japanese");
_vswprintf_s_l(buf, sizeof(buf), fmt, locale, ap);
としてみてもダメでした。
0919デフォルトの名無しさん
2009/02/02(月) 08:11:410920918
2009/02/02(月) 08:16:46918へのレスですか?
wchar_t buf[256];
_vsnwprintf_s(buf, sizeof(buf), _TRUNCATE, fmt, ap);
としてもダメでした。
0921デフォルトの名無しさん
2009/02/02(月) 08:26:58sizeof(buf)/sizeof(wchar_t)
ってことはない?
0922918
2009/02/02(月) 08:31:24げげっ。それでうまくいきました。
MSDNに「sizeOfBuffer 出力の buffer のサイズ」と書いてあったので
てっきりバイト数だと思ってました。
ありがとうございました!
0923デフォルトの名無しさん
2009/02/02(月) 09:02:50> In Visual C++ 2005, vswprintf_s conforms to the ISO C Standard for vswprintf,
> which requires the second parameter, count, of type size_t.
0924デフォルトの名無しさん
2009/02/02(月) 10:09:010925デフォルトの名無しさん
2009/02/02(月) 10:36:05おらぁクズr(r
0926デフォルトの名無しさん
2009/02/02(月) 15:03:030927デフォルトの名無しさん
2009/02/02(月) 15:32:20これのビットイメージ部だけをどうしたらいいのでしょうか?
0928デフォルトの名無しさん
2009/02/02(月) 15:35:58>これのビットイメージ部だけをどうしたらいいのでしょうか?
どうしたらいいか?ってどうにでもしろよ!
俺に聞くなよ!
0929デフォルトの名無しさん
2009/02/02(月) 15:39:11想像するに、GetDIBits使えばいいと思うよ。
ハンドルはハンドルだ。識別子だ。それ以外のなんでもない。
0930デフォルトの名無しさん
2009/02/02(月) 16:04:25これをStretchBltで縮小するにはどのようにしたらいいですか?
0931デフォルトの名無しさん
2009/02/02(月) 16:21:570932デフォルトの名無しさん
2009/02/02(月) 16:28:36どこか参考になるサイトがあったら教えてください
0933デフォルトの名無しさん
2009/02/02(月) 17:12:140934デフォルトの名無しさん
2009/02/02(月) 17:21:54今それみてました。
StretchDIBitsまで辿り着くプロセスとして
BITMAPINFO bi;
biの初期化
HBITMAP hb = ::CreateCompatibleBitmap( NULL, 1440, 1080 );
HDC hdc = ::CreateCompatibleDC( NULL );
::SelectObject( hdc, hb );
::StretchDIBits( hdc, 0, 0, 1280, 720, 0, 0, 1440, 1080, dwBuffer, &bi, DIB_RGB_COLORS, SRCCOPY );
と、こんな感じでしょうか?
で、ここから縮小したDIBデータをアクセスしたい場合はどうしたらいいのでしょうか・・・
0935デフォルトの名無しさん
2009/02/02(月) 20:04:290936デフォルトの名無しさん
2009/02/02(月) 20:22:25STARTUPINFO pi;
PROCESS_INFORMATION si;
if(CreateProcess(NULL,
"C:\\test.exe",
NULL,
NULL,
FALSE,
0,
NULL,
NULL,
&pi,
&si) == 0)
MessageBox(NULL,"読み取れない","エラー",MB_OK);
ちゃんとC直下にtest.exe作ったけど起動されない。一体どうすれば・・・・
0937デフォルトの名無しさん
2009/02/02(月) 20:25:090初期化しておけばとりあえず動くと思う。
0938デフォルトの名無しさん
2009/02/02(月) 20:31:420初期化ってことで
PROCESS_INFORMATION pi;
STARTUPINFO si;
ZeroMemory(&si, sizeof (si));
こう変えたら動くようになった、ありがとう、ほんとありがとう
0939デフォルトの名無しさん
2009/02/02(月) 20:45:17保存されるところが一定じゃないだろうからフルパスだとおかしなことになっちゃう。どうすればいいんだろう・・・
0940デフォルトの名無しさん
2009/02/02(月) 20:49:01fullpathっていう関数もあるし逆にいえばそれが実行される場所と同じディレクトリは
カレントディレクトリなのでその実行ファイルと同じディレクトリにあればファイル名の指定だけで動く
0941デフォルトの名無しさん
2009/02/02(月) 20:50:57つ【SetCurrentDirectory】
0942デフォルトの名無しさん
2009/02/02(月) 21:39:02突込みどころ多すぎだろw
0943デフォルトの名無しさん
2009/02/02(月) 21:42:050944デフォルトの名無しさん
2009/02/02(月) 21:43:540945デフォルトの名無しさん
2009/02/02(月) 21:45:540946デフォルトの名無しさん
2009/02/02(月) 21:53:26STARTUPINFO pi;
PROCESS_INFORMATION si;
ま、intellisenseが使えりゃ変数名なんてどうでもいいけど
0947デフォルトの名無しさん
2009/02/02(月) 21:55:240948デフォルトの名無しさん
2009/02/02(月) 21:56:490949936
2009/02/02(月) 22:01:12なんですがC直下のプログラムは動いたんですが、違うディレクトリにすると動きません
何か間違ってそうなところはありますでしょうか
"C:\\Documents and Settings\\user\\My Documents\\Visual Studio 2008\\Projects\\Repton\\Dat\\ADV\\game.exe"
0950デフォルトの名無しさん
2009/02/02(月) 22:02:080951デフォルトの名無しさん
2009/02/02(月) 22:04:520952936
2009/02/02(月) 22:10:50そんなルールがあったのか・・・・
・・・・・まだ、ダメっぽいです
パスは間違ってないし、C直下なら動いたので書き方が悪いと思うんですが・・・
"C:\\Documents" "and" "Settings\\user\\My" "Documents\\Visual" "Studio" "2008\\Projects\\Repton\\Dat\\ADV\\game.exe"
0953デフォルトの名無しさん
2009/02/02(月) 22:12:070点
0954デフォルトの名無しさん
2009/02/02(月) 22:13:39PROCESS_INFORMATION pi = {0};
char szCmdLine[] = "\"C:\\Documents and Settings\\user\\My Documents\\Visual Studio 2008\\Projects\\Repton\\Dat\\ADV\\game.exe\"";
if ( !::CreateProcess( NULL, strCmdLine, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi))
{
MessageBox(NULL,"読み取れない","エラー",MB_OK);
}
::CloseHandle( pi.hThread);
::CloseHandle( pi.hProcess);
0955デフォルトの名無しさん
2009/02/02(月) 22:13:46コマンドプロンプト出してタイプして動いたら、それと同じように入れればいい。
あと、"は\"のようにエスケープしないとな
0956デフォルトの名無しさん
2009/02/02(月) 22:13:47コマンドラインから実行してみろよ・・・
0957デフォルトの名無しさん
2009/02/02(月) 22:13:53"はエ・・・・
なんでもない
0958デフォルトの名無しさん
2009/02/02(月) 22:15:150959デフォルトの名無しさん
2009/02/02(月) 22:17:23どうせならTCHAR対応もやろうぜ。
#include <windows.h>
int main()
{
STARTUPINFO si = { sizeof( STARTUPINFO)};
PROCESS_INFORMATION pi = {0};
TCHAR szCmdLine[] = TEXT("\"C:\\Documents and Settings\\user\\My Documents\\Visual Studio 2008\\Projects\\Repton\\Dat\\ADV\\game.exe\"");
if ( !::CreateProcess( NULL, szCmdLine, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi))
{
MessageBox(NULL,TEXT("読み取れない"),0,MB_OK);
}
::CloseHandle( pi.hThread);
::CloseHandle( pi.hProcess);
}
0960デフォルトの名無しさん
2009/02/02(月) 22:18:55もとが ANSI だから手を抜いたんだけどね。(笑)
0961936
2009/02/02(月) 22:19:16ありがとうございます
頑張ります
0962デフォルトの名無しさん
2009/02/02(月) 22:27:44書くの楽だからそうしてたら逆に\しか許さないので嵌ったな。
0963デフォルトの名無しさん
2009/02/02(月) 22:30:15MessageBoxの後にreturnが抜けてる
0964デフォルトの名無しさん
2009/02/02(月) 22:56:290965デフォルトの名無しさん
2009/02/02(月) 23:06:560966デフォルトの名無しさん
2009/02/02(月) 23:09:290967デフォルトの名無しさん
2009/02/02(月) 23:12:13高レベルな質問plz
0968デフォルトの名無しさん
2009/02/02(月) 23:36:300969デフォルトの名無しさん
2009/02/02(月) 23:41:29>>959で関数の頭に::付いているのとないのあるんですけど
なぜなんですか?
0970936
2009/02/02(月) 23:41:36今、この瞬間
お前は俺に「スレタイ100回読め」といわれる
そのためだけに生まれ、生きてきたんだ
0971デフォルトの名無しさん
2009/02/02(月) 23:49:35お前こそスレタイの前にMSDN読め
0972デフォルトの名無しさん
2009/02/02(月) 23:50:26ついてないのは、単にコピペしただけだから。
0973デフォルトの名無しさん
2009/02/02(月) 23:51:13単に統一してないだけ。
詳しくはC++スレへ
0974デフォルトの名無しさん
2009/02/02(月) 23:53:23::を入力するとintellisenseの恩恵に与れる
0975デフォルトの名無しさん
2009/02/02(月) 23:55:250976デフォルトの名無しさん
2009/02/03(火) 00:12:22なんでだー
0977デフォルトの名無しさん
2009/02/03(火) 00:20:540978デフォルトの名無しさん
2009/02/03(火) 00:23:060979デフォルトの名無しさん
2009/02/03(火) 00:30:390980デフォルトの名無しさん
2009/02/03(火) 00:31:34関数名は被る可能性がある(CWnd::MessageBoxとか)けれど、構造体名なんて滅多に被らないだろ
つまりそういうこと
0981デフォルトの名無しさん
2009/02/03(火) 09:59:56http://pc11.2ch.net/test/read.cgi/tech/1233622578/
次
0982デフォルトの名無しさん
2009/02/03(火) 10:06:550983デフォルトの名無しさん
2009/02/03(火) 10:19:270984デフォルトの名無しさん
2009/02/03(火) 10:33:430985デフォルトの名無しさん
2009/02/03(火) 10:37:290986デフォルトの名無しさん
2009/02/03(火) 11:00:03他の個人のソフトでは数100KBどころか数MBのモノが普通にありますがあれ、どーしてそこまで大きく
なるんですか?
0987デフォルトの名無しさん
2009/02/03(火) 11:01:540988デフォルトの名無しさん
2009/02/03(火) 11:02:28リソースに画像とか音声を埋め込んだりすれば
すぐにMBくらい超える
0989デフォルトの名無しさん
2009/02/03(火) 11:24:05ああ書いた分量だけでなく、そういうことですか。俺個人じゃ書けない量だと不思議に
思ってました…
0990デフォルトの名無しさん
2009/02/03(火) 11:42:57CreateCompatibleDCをCreateDIBSectionにするって事ですよね?
そうした場合はStretchDIBitsで縮小したら
縮小したビットデータにはどうやってアクセスすればいいでしょうか?
0991デフォルトの名無しさん
2009/02/03(火) 12:06:480992デフォルトの名無しさん
2009/02/03(火) 12:31:41SelectObjectして、BitBltでしょ
0993デフォルトの名無しさん
2009/02/03(火) 12:55:580994デフォルトの名無しさん
2009/02/03(火) 13:02:240995デフォルトの名無しさん
2009/02/03(火) 13:08:17こういうことしたいって話?
ttp://blogs.msdn.com/oldnewthing/archive/2004/01/01/47042.aspx
0996デフォルトの名無しさん
2009/02/03(火) 13:15:000997デフォルトの名無しさん
2009/02/03(火) 13:48:19DLL側が呼び出されたときに自分を呼び出したスレッドハンドルまたはプロセスハンドル
を知りたいです。
0998デフォルトの名無しさん
2009/02/03(火) 13:50:21悩むまでも無くない??
0999デフォルトの名無しさん
2009/02/03(火) 13:53:311000デフォルトの名無しさん
2009/02/03(火) 13:54:1010011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。