Win32API質問箱 Build63
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2008/03/04(火) 12:15:58やさしいお兄さんやお姉さんたちが答えてくれるかも。
過去スレ、関連リンクは>>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
【前スレ】
http://pc11.2ch.net/test/read.cgi/tech/1202060403/
0002デフォルトの名無しさん
2008/03/04(火) 12:16:20http://www.microsoft.com/japan/msdn/
- MSDN ライブラリ
http://msdn.microsoft.com/library/
http://msdn.microsoft.com/library/ja/
- MSDN2 ライブラリ
http://msdn2.microsoft.com/en-us/library/
http://msdn2.microsoft.com/ja-jp/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デフォルトの名無しさん
2008/03/04(火) 12:16:42http://www.google.com/
- 猫でもわかるプログラミング
http://www.kumei.ne.jp/c_lang/
- Win32 API入門
http://wisdom.sakura.ne.jp/system/winapi/
- Win32 プログラミング入門
http://www7.plala.or.jp/keny01/
- Advanced Windows (書籍)
http://www.amazon.co.jp/dp/4756138055
-おまけ
Build19が見たい人で余裕のある人は●でも買ってくれ。
0004デフォルトの名無しさん
2008/03/04(火) 12:17:2860 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/
50 ttp://pc11.2ch.net/test/read.cgi/tech/1171721448/
49 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/
0005デフォルトの名無しさん
2008/03/04(火) 12:18:1440 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/
25 ttp://pc5.2ch.net/test/read.cgi/tech/1101393155/
24 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/
0006デフォルトの名無しさん
2008/03/04(火) 12:19:0120 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
0007デフォルトの名無しさん
2008/03/04(火) 12:21:110008デフォルトの名無しさん
2008/03/04(火) 12:29:050009デフォルトの名無しさん
2008/03/04(火) 13:32:150010デフォルトの名無しさん
2008/03/04(火) 15:08:52NULL, NULL, NULL, NULL, _T("My Window"), NULL};
某参考書で勉強しているんですが、サンプル通りに打つと↑のOLが識別子が登録されていない、ということでエラーになってしまいます。
MSDNで調べてとりあえず0に置き換えてみたら動いたんですが、OL=0という認識で良いんでしょうか?
参考書の環境はVisualC++2005で、自分は2008を使っているので。その差なのかと思っているんですが、、、
似たようなもので
PeekMessage(&msg,NULL,OU,OU,PM_REMOVE))
ここでのOUも0に置き換えないと識別子のエラーで動きませんでした。
OUとかOLとか検索しても解説が見つからないので、誰か説明頂けるとありがたいです、、、
0011デフォルトの名無しさん
2008/03/04(火) 15:09:44たぶん オー じゃなくて ゼロ
0012デフォルトの名無しさん
2008/03/04(火) 15:09:50ウインドウないの?
0013デフォルトの名無しさん
2008/03/04(火) 15:09:53数字の後ろのL はlong のL Uはunsigned のU
0014デフォルトの名無しさん
2008/03/04(火) 15:11:19× OL
○ 0L
× OU
○ 0U
001510
2008/03/04(火) 15:13:37あー、そういうことだったのか、これは非常に見づらい。
とりあえずややこしい話にならなくて安心しました、どうもありがとうございましたー。
0016デフォルトの名無しさん
2008/03/04(火) 15:38:22画像全体を読み込まずに、幅と高さを取得するAPIやお手軽な方法ってありますか?
0017デフォルトの名無しさん
2008/03/04(火) 15:58:31Message-Only Windowってやつだよ。
0018デフォルトの名無しさん
2008/03/04(火) 16:03:24ごめん、なんか無茶苦茶変な質問になっちまった...orz
でも知りたいの...orz
0019デフォルトの名無しさん
2008/03/04(火) 16:15:46あります。どちらもヘッダ部分に書かれているのでそこだけ解析すれば、全部を読む必要はありません。
とは言え、面倒ですが。
0020デフォルトの名無しさん
2008/03/04(火) 16:59:08JPGの場合は・・・、とかPNGの場合は・・・、とかTIFFの場合は・・・、とか処理分けて自分で読むしかないでしょうか?
0021デフォルトの名無しさん
2008/03/04(火) 17:26:05そうです。それが嫌なら既存のライブラリで済ませるしかないでしょう。
例えばImageMagickならその辺りは全部サポートしています。
0022デフォルトの名無しさん
2008/03/04(火) 17:34:32大抵データ全体を読み込むことになると思う。
0023デフォルトの名無しさん
2008/03/04(火) 17:38:220024デフォルトの名無しさん
2008/03/04(火) 17:45:38大抵フォーマットごとに処理を分けることになると思う。
0025デフォルトの名無しさん
2008/03/04(火) 17:50:230026デフォルトの名無しさん
2008/03/04(火) 18:22:15OKだが、普通は常にDefFrameProcに投げる
0027デフォルトの名無しさん
2008/03/04(火) 18:27:36GifやPngは、画像サイズの位置が固定されているので一部だけ読んで処理しても問題は無いです
0028デフォルトの名無しさん
2008/03/04(火) 18:31:26ありがとう!!!
今、ウインドウズのプログラムの勉強がてら、クラスライブラリ作ってて
ウインドプロシージャ見てたら統一できそうだなぁと思ってたんです
これで心置きなく統一できます!!!
0029デフォルトの名無しさん
2008/03/04(火) 18:35:410030デフォルトの名無しさん
2008/03/04(火) 18:53:13std::map<HWND, pUBaseWindow> WndToPointer;
/*******************************************************************************/
// ウインドプロシージャ
LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
LPCREATESTRUCT lpcs;
pUBaseWindow pWindow = WndToPointer[hwnd];
if (!pWindow){
if (msg == WM_CREATE){
lpcs = (LPCREATESTRUCT)lParam;
pWindow = (pUBaseWindow)lpcs->lpCreateParams;
pWindow->SetHandle(hwnd);
WndToPointer[hwnd] = pWindow;
} else {
return ::DefWindowProc(hwnd, msg, wParam, lParam); // この部分が::DefFrameProcになる
}
}
if (msg == WM_DESTROY){
WndToPointer.erase(hwnd);
}
return pWindow->WndProc(msg, wParam, lParam);
}
こんな感じっす
0031デフォルトの名無しさん
2008/03/04(火) 18:59:52それだったら、俺はDefWindowProcにする。
ちなみに、WM_CREATEより前にWM_NCCREATEが送られてきて、
そっちでもlParamからCREATESTRUCTへのポインタが得られる。
現在のWindowsでは、WM_NCCREATEの前に
WM_GETMINMAXINFOが送られるということが知られている。
逆に言えば、それしかやってこないということ。
だから、俺はDefWindowProcで済ます。
ついでに言えば、WM_DESTROYのあとにはWM_NCDESTROYがやってくる。
eraseはそっちでやればいいと思う。
0032デフォルトの名無しさん
2008/03/04(火) 19:29:21EMR_HEADERとEMR_EOFの間にどのレコードを作ればいいかわかりません。
具体的には、
任意の色、サイズをもった文字列、四角形、線がかければ良いんですが?
0033デフォルトの名無しさん
2008/03/04(火) 19:51:09アドバイスありがとう!!!
0034デフォルトの名無しさん
2008/03/04(火) 22:09:310035デフォルトの名無しさん
2008/03/04(火) 22:56:36stringは絶対に使わない
0036デフォルトの名無しさん
2008/03/04(火) 22:57:51たまに使うけど。
0037デフォルトの名無しさん
2008/03/04(火) 22:58:460038デフォルトの名無しさん
2008/03/04(火) 23:03:16強いて言うならC++標準。
つまんないことにこだわらんでも良いよ。
頻出ネタの上に面白くない議論にしかならないのでスルー。
0039デフォルトの名無しさん
2008/03/04(火) 23:12:470040デフォルトの名無しさん
2008/03/04(火) 23:51:28ちなみにタイトルバーのキャプションは刻々と変化するかもしれず、また存在しないかもしれないです。
0041デフォルトの名無しさん
2008/03/04(火) 23:54:10IsWindow
0042デフォルトの名無しさん
2008/03/04(火) 23:54:21IsHungAppWindow
とか?
0043デフォルトの名無しさん
2008/03/05(水) 00:24:43トンクス!!
0044デフォルトの名無しさん
2008/03/05(水) 03:05:520045デフォルトの名無しさん
2008/03/05(水) 11:27:24最後の引数2つがわからないのです。(あとはわかります)
最後の二つの引数はwpalam lpalamとか設定する?いったいなにを
設定すべきなの?
0046デフォルトの名無しさん
2008/03/05(水) 11:30:400047デフォルトの名無しさん
2008/03/05(水) 11:31:16あなたが伝えたいと思う熱いメッセージの内容を
0048デフォルトの名無しさん
2008/03/05(水) 11:31:40SendDlgItemMessage(hDlg, nIDDlgItem, Msg, wParam, lParam)
= SendMessage(GetDlgItem(hDlg, nIDDlgItem), Msg, wParam, lParam)
これで分からなかったらCとWin32を勉強しなおせ
0049デフォルトの名無しさん
2008/03/05(水) 14:39:51Run-Time Check Failure #2 - Stack around the variable が出てしまいます。
> + cAlternateFileName 0x0013e578 "????200712~2.JPG" wchar_t [14]
ググってもFindFirstFileでこんなレベルのエラーが出た人は居ない様です…orz
何をミスっているのでしょうか?
環境はXP SP2、VC++ 2008EE、後はDirectX9 2007Novを入れている位です。
0050デフォルトの名無しさん
2008/03/05(水) 14:44:09その程度なら PathFileExists で良かろう
0051デフォルトの名無しさん
2008/03/05(水) 14:50:59>何をミスっているのでしょうか?
配列の長さ
0052デフォルトの名無しさん
2008/03/05(水) 15:05:40そうですね、PathFileExistsを使う様にします。
それと後出しになって申し訳ないのですが、フォルダの中身をなめる事も
別の個所でやっていました。
元の問題についてもアドバイス頂けませんか?
>>51
具体的にはどこを修正すれば良いのでしょうか?
0053デフォルトの名無しさん
2008/03/05(水) 15:16:16デバッガの使い方でも覚えたらどうかね?
0054デフォルトの名無しさん
2008/03/05(水) 15:17:440055デフォルトの名無しさん
2008/03/05(水) 16:07:10定義を手繰るとFindFirstFile、WIN32_FIND_DATA共にW付きでした。
16文字帰ってきている様に見えるのですが、そういうものなのでしょうか?
0056デフォルトの名無しさん
2008/03/05(水) 16:23:21wmainにFindFirstFileだけ書いて動かしてみればいい。
0057デフォルトの名無しさん
2008/03/05(水) 16:46:470058デフォルトの名無しさん
2008/03/05(水) 18:56:10|丶、 ;;; __;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;_,,: ィ";;_|
ト、;;;;;;;;;;;;;;;` ` '' ー -- ‐ '' ";;;;;;;;;,:ィ;:;!
,';:``' ‐ョ 、 ,_ ;;;;;;;;;;;;;;;;;;;;;;;;;;; , - '"l;:;:;:;:l
l;:;:;:;:;:;:;ミ ` ` '' ー -‐ '" ,リ;:;:;:l
l;:;:;:;:;:;:;:ゝ く三) (三シ `ヾ;:t、
fミ{;:;:;:;:f'´ , -−-_,, _,ィ 、_,,ィ,.-−、 };f }
l トl;:;:;:;:l 、,ィ或tュ、゙:ミ {,'ィt或アチ l:l,/
゙i,tヾ:;:;:! `ヽ 二ノ ト ` ‐''"´ l:l:f
ヽ`ー};:l ,r'、 ヽ リ_)
`"^l:l ,/゙ー、 ,r'ヽ l
゙i ,ノ `'" 丶. ,' コードを貼らずして修正とな!?
゙l、 ′ ,, ィrェェzュ、,_ 〉 } /
',ヽ ヘヾ'zェェェッ',シ' //ヽ
} 丶、 ` ー--‐ '"'´,/ノ:.:.:ヽ
/l 丶、 ,.イ:.:.:.:.:.:.:.:丶、、
,r'"^l ! ` ー‐;オ´:.:.:.:.:.:.:.:.:.,ノ ,}、
,. -ァ=く(:.:.:.l l //:.:.:.:.:.:., - '" ,/ ヽ、
, - '"´ / ,/`>'t、_」___,ィ'゙,ィ,.: -‐ '" ,. -‐ '" \
/ ヽ-( / / f }li, ,. -‐ '" \
0059デフォルトの名無しさん
2008/03/05(水) 21:26:32int _tmain(int argc, _TCHAR* argv[])
{
WIN32_FIND_DATA fileDataBuff;
HANDLE hFind;
hFind = FindFirstFile(_T("C:\\20051215105022.png"), &fileDataBuff);
if (hFind != INVALID_HANDLE_VALUE)
FindClose(hFind);
return 0;
}
0060デフォルトの名無しさん
2008/03/05(水) 23:27:52このコードでランタイムエラーが起きると?
0061デフォルトの名無しさん
2008/03/06(木) 00:23:14他のスレッドも一緒に止まってしまっているようなのですが、
止まらないようにするにはどうすればいいのでしょうか。
0062デフォルトの名無しさん
2008/03/06(木) 00:26:560063デフォルトの名無しさん
2008/03/06(木) 00:32:220064デフォルトの名無しさん
2008/03/06(木) 01:15:220065デフォルトの名無しさん
2008/03/06(木) 01:29:210066デフォルトの名無しさん
2008/03/06(木) 01:32:140067デフォルトの名無しさん
2008/03/06(木) 01:35:570068デフォルトの名無しさん
2008/03/06(木) 01:36:270069デフォルトの名無しさん
2008/03/06(木) 01:41:350070デフォルトの名無しさん
2008/03/06(木) 02:04:480071デフォルトの名無しさん
2008/03/06(木) 02:31:10いや、まじで
>>70
Yes
HALのハード寄りの低位なところをVMが使ってるらしいよ
意外と知られてない事実
0072デフォルトの名無しさん
2008/03/06(木) 02:38:220073デフォルトの名無しさん
2008/03/06(木) 02:41:43本当にスレッド分けてるのか?
0074デフォルトの名無しさん
2008/03/06(木) 06:25:18別スレッドからメッセージをSendしているからじゃね?
007561
2008/03/06(木) 08:05:08int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow){
CreateThread(スレッド処理);
while(GetMessage(&msg, NULL, 0, 0)){
DispatchMessage(&msg);
}
return 0;
}
LRESULT CALLBACK WindowProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam){
switch(uMsg){
case WM_CLOSE:
StopFlg = TRUE;
Sleep(100); //ここでスレッドも止まる
FreeApp();
PostQuitMessage(0);
return 0;
}
return DefWindowProc(hWnd, uMsg, wParam, lParam);
}
0076デフォルトの名無しさん
2008/03/06(木) 08:30:34だったら出ていけ。
0077デフォルトの名無しさん
2008/03/06(木) 09:14:320078デフォルトの名無しさん
2008/03/06(木) 10:07:140079デフォルトの名無しさん
2008/03/06(木) 13:25:41文字列と値を取得したいです。
0080デフォルトの名無しさん
2008/03/06(木) 14:58:560081デフォルトの名無しさん
2008/03/06(木) 16:48:20その内容だけで
> + cAlternateFileName 0x0013e578 "????200712~2.JPG" wchar_t [14]
みたいにはならんぞ。????には実際に何が入ってる?
0082デフォルトの名無しさん
2008/03/06(木) 16:49:000083デフォルトの名無しさん
2008/03/06(木) 17:18:53hFind = FindFirstFile(_T("C:\\20051215105022.png"), &fileDataBuff);
で何が返ってくるかなんて知るかぼけ
0084デフォルトの名無しさん
2008/03/06(木) 17:27:160085デフォルトの名無しさん
2008/03/06(木) 18:07:23おまいさんが当たり前のことをしなかったから、それを戒めただけ。
おまいさんが本当に困ってるという前提で、それぞれ反応しただけ。
コードが貼れない理由もあるんだろうけど、このスレの住人のこと信頼してるなら
きちんとコードを示してな。ここは困った人に知識を分け与えてくれる住人が
いるから続いてるわけだ。それに比べおまいさんの書き込みからは問題を解決
したいという真っ直ぐな気持ちが伝わってこないんだよ。俺の言いたいことは
それだけ。
激しくスレ違いなのでさげ
0086デフォルトの名無しさん
2008/03/06(木) 20:22:25なんでFind系だけ違うのだろう・・・
0087デフォルトの名無しさん
2008/03/06(木) 22:31:55008861
2008/03/06(木) 22:36:40アプロダにソース上げたら、見てくれるというなら、
見てもらいたいです。
Sleepで止まっていたのは、
スレッド処理にあるDirectXの、
IDirect3DDevice9::EndScene();が原因でした。
この1行を抜けば止まらないんですが、
理由はまだよく分かりません。
DirectXの問題のようなので、DirectXスレで聞いてみます。
0089デフォルトの名無しさん
2008/03/07(金) 02:56:48んで転送先のウィンドウがロックされてるから止まる
0090デフォルトの名無しさん
2008/03/07(金) 03:59:15ありがとう。
プロパティの文字列(値ではなく表題)を取るには、IShellFolder2::MapColumnToSCIDで取得するしかないでしょうか。
これだと200ぐらいループが回るw
SHCOLUMNIDのGUID fmtidに対応した文字列と、
GUID fmtid + DWORD pidの組み合わせに対応した文字列を取得する方法はありませんか?
0091デフォルトの名無しさん
2008/03/07(金) 12:31:50その名前のファイル置いてやってみたけど特に問題ないな。
XP SP2 で NTFS のパーティション。
デジカメでフォーマットしたSDとか、そういう変なボリュームを相手にしてない?
(だからってバッファオーバーランは困るけど)
0092デフォルトの名無しさん
2008/03/07(金) 12:47:170093デフォルトの名無しさん
2008/03/07(金) 13:15:090094デフォルトの名無しさん
2008/03/07(金) 14:16:300095デフォルトの名無しさん
2008/03/07(金) 17:11:470096デフォルトの名無しさん
2008/03/07(金) 17:21:56やめときなされ
事実を語っても推奨される環境云々って自説に固執するオバカが騒ぎ出すだけだから
無知は無知のまま放って置けばよいのだ
0097デフォルトの名無しさん
2008/03/07(金) 18:08:020098デフォルトの名無しさん
2008/03/07(金) 18:12:020099デフォルトの名無しさん
2008/03/07(金) 21:48:01IPropertyUI
0100デフォルトの名無しさん
2008/03/08(土) 00:48:20A, B がフロッピー用に空けられていて、
HDD が C からなのが通例。
あくまで通例であってそうしないといけないわけじゃないが。
0101デフォルトの名無しさん
2008/03/08(土) 00:51:26|
|
|
/V\ ,J>>100
/◎;;;,;,,,,ヽ
_ ム::::(;;゚Д゚)::| ジー
ヽツ.(ノ::::::::::.:::::.:..|)
ヾソ:::::::::::::::::.:ノ
` ー U'"U'
0102デフォルトの名無しさん
2008/03/08(土) 00:53:250103デフォルトの名無しさん
2008/03/08(土) 00:57:35ネタなのかPC-98を知らないゆとり世代なのか
0104デフォルトの名無しさん
2008/03/08(土) 01:06:31あの時代は HDD はそんな一般的じゃなくて、
フロッピー2枚差しが普通だっただろ?
その時代、ドライブレターは頭から A, B と振ってた。
そこに HDD がやってきて、それがフロッピーの次の C から振られるようになって、
その後フロッピーが1つしかなかったりそもそも無くなったりすることが増えたけど、
結局 HDD のドライブレターは C から振られるので定着してしまっていた、
という流れだと思っていたのだが。
0105デフォルトの名無しさん
2008/03/08(土) 01:12:14テープメディア等を繋ぐとC以降が割り当てられた。
拡張FDDをつければCがFDDにもなる。
その後、テープメディア等からHDDに変わったけど
ABドライブは相変わらずフロッピー用に予約されてる。
そんな事知らないNECが作ったPC-98は起動ドライブが無条件でAになる。
こっちの方が分かり易いとでも思ったんだろうな。
だから、HDDから起動すればHDDがAドライブになる。
Cドライブに固定するのは確か出来なかった気がするけどもう忘れた。
0106デフォルトの名無しさん
2008/03/08(土) 01:18:05もう記憶があやふやだな・・・。
0107デフォルトの名無しさん
2008/03/08(土) 01:31:44PC98のおかげでPCが普及したのか
どちらにせよPC98独自ルールになれてた漏れは
Win95からAT互換機移るときに苦労した思い出がある
DOSゲーやりたいがためにWindows95が出た後もPC98買ってた馬鹿がここに一人いますよ
0108デフォルトの名無しさん
2008/03/08(土) 01:38:430109デフォルトの名無しさん
2008/03/08(土) 01:40:100110デフォルトの名無しさん
2008/03/08(土) 01:43:06当時はまだ PC98 買う人はいた気はする。
0111デフォルトの名無しさん
2008/03/08(土) 01:50:080112デフォルトの名無しさん
2008/03/08(土) 01:58:51ゆとり世代馬鹿にすんな。
0113デフォルトの名無しさん
2008/03/08(土) 02:02:130114デフォルトの名無しさん
2008/03/08(土) 02:02:39実機は見たことないが
ゆとり世代馬鹿にすんな。
0115デフォルトの名無しさん
2008/03/08(土) 02:23:50ビデオトースターとか
0116デフォルトの名無しさん
2008/03/08(土) 02:50:29馬鹿はいつの時代にもいる
馬鹿は量産される
0117デフォルトの名無しさん
2008/03/08(土) 03:10:580118デフォルトの名無しさん
2008/03/08(土) 03:13:160119デフォルトの名無しさん
2008/03/08(土) 03:14:490120デフォルトの名無しさん
2008/03/08(土) 03:34:440121デフォルトの名無しさん
2008/03/08(土) 03:43:58A:/B:どちらでもアクセスできるようになっていた
PC-98の場合は・・・
0122デフォルトの名無しさん
2008/03/08(土) 03:46:05いっぱいマウントしてD〜Z使い果たしているPCで
さらにマウントするとBにマウントされたのに感動
0123デフォルトの名無しさん
2008/03/08(土) 04:56:500124デフォルトの名無しさん
2008/03/08(土) 09:39:06PC-98でも、Windows 2000を新規インストールすると、
起動するHDDパーティションがC:になるって聞いたことがある。
0125デフォルトの名無しさん
2008/03/08(土) 10:19:31そしてそれを咎める奴を無視したり叩いたりしたら再起不能。
0126デフォルトの名無しさん
2008/03/08(土) 10:57:04初期のPC-98と最近の(今でもあんのか知らんが)PC98は違うよ
0127デフォルトの名無しさん
2008/03/08(土) 11:58:20フルスクリーン時にマウスカーソルをウィンドウ上部に持ってくると、
上からタイトルバーがにょきっとスライドして出てくるものがありますが、
にょきっと出現させるAPIがあるのでしょうか?
それとも自前のプログラムですか。
0128デフォルトの名無しさん
2008/03/08(土) 12:04:45SetMenuNyoki
0129デフォルトの名無しさん
2008/03/08(土) 12:11:250130デフォルトの名無しさん
2008/03/08(土) 12:15:200131デフォルトの名無しさん
2008/03/08(土) 12:23:55パラメータkwsk
0132デフォルトの名無しさん
2008/03/08(土) 12:29:210133デフォルトの名無しさん
2008/03/08(土) 12:39:49ParentWnd 親ウインドウハンドル
hMenuWnd メニューのハンドル
bOpenHide TRUE:メニュー表示、FALSE:メニュー隠す
pVoid 拡張のための予約。NULLに設定。
0134デフォルトの名無しさん
2008/03/08(土) 12:43:170135デフォルトの名無しさん
2008/03/08(土) 12:47:17動いてる間UIスレッド止まったりしないし
VistaのスクロールバーからMouseLeaveで徐々に色が消えるやつとか
0136127
2008/03/08(土) 12:47:26ちょっと本気でググってしまいました。
>>132
DirectXでできるんでしょうか?
素人考えですが、
タイトルバーが上からスライドしてくるということは、
その分、押し出される感じでクライアント領域が下にずれるから、
画面の描画内容が動かないようにするためには、
描画位置をその分上にスライドしないといといけないのかなと、
思うんですが、どうなんでしょうか。
0137マジレスでごめん
2008/03/08(土) 12:53:350138デフォルトの名無しさん
2008/03/08(土) 12:55:35>>127じゃないけどためになった
ただゲーム以外でどこで使うのか思いつかない
0139デフォルトの名無しさん
2008/03/08(土) 12:59:21ここで聞くな
0141デフォルトの名無しさん
2008/03/08(土) 13:37:33表示されるようなアプリケーションで使われる。
0142デフォルトの名無しさん
2008/03/08(土) 13:52:590143デフォルトの名無しさん
2008/03/08(土) 13:59:42IT業界みんなの憧れだわ
0144127
2008/03/08(土) 14:25:04多数のゲームは単純にタイトルバーを表示していただけかもしれません。
タイトルバーだけのウィンドウと、
クライアント領域だけのウィンドウを作って、
AnimateWindow(hTitleWnd, 600, AW_SLIDE | AW_VER_POSITIVE);で、
タイトルバーウィンドウだけ、にょきっと出してみようと思います。
>>143
初心者が2chで質問して、2時間であたりがつく技術。
半端ないですね。
0145デフォルトの名無しさん
2008/03/08(土) 15:08:550146デフォルトの名無しさん
2008/03/08(土) 15:16:010147デフォルトの名無しさん
2008/03/08(土) 16:34:250148デフォルトの名無しさん
2008/03/08(土) 17:21:17AnimateWindow(hMenuWnd, 200, (bOpenHide) ? AW_SLIDE : AW_HIDE)
0149デフォルトの名無しさん
2008/03/08(土) 17:45:030150デフォルトの名無しさん
2008/03/08(土) 19:50:21{
switch(wReason)
{
case DLL_PROCESS_ATTACH:
VERBOSE(DLLTEXT("Process attach.\r\n"));
break;
case DLL_THREAD_ATTACH:
VERBOSE(DLLTEXT("Thread attach.\r\n"));
break;
case DLL_PROCESS_DETACH:
VERBOSE(DLLTEXT("Process detach.\r\n"));
break;
case DLL_THREAD_DETACH:
VERBOSE(DLLTEXT("Thread detach.\r\n"));
break;
}
ユニドライバの最初にこうあるのですが、それぞれのメッセージは
どのようなときにおくられてくるのですか?またVERBOSEとはなんでしょうか?
0151デフォルトの名無しさん
2008/03/08(土) 19:53:540152デフォルトの名無しさん
2008/03/08(土) 20:01:090153デフォルトの名無しさん
2008/03/08(土) 21:21:060154デフォルトの名無しさん
2008/03/08(土) 21:36:13Process attach.のときにおくられてくる
Thread attach.のときにおくられてくる
以下略
0155デフォルトの名無しさん
2008/03/08(土) 21:45:20お前ってさ自己中で友達とかいないだろw
0156デフォルトの名無しさん
2008/03/08(土) 23:36:13描画するわけでもないのに、画像読込、解放してるのが凄く無駄な気がします。
サイズ取得用のAPIなど、もっといい方法ってないでしょうか?
BITMAP bmp;
HBITMAP hbmp = (HBITMAP)LoadImage(hInst, <画像のパス>, IMAGE_BITMAP, 0,0, LR_LOADFROMFILE);
GetObject(hbmp, sizeof(BITMAP), &bmp);
width = bmp.bmWidth; //画像幅取得
height = bmp.bmHeight; //画像高さ取得
DeleteObject(hbmp);
0157デフォルトの名無しさん
2008/03/08(土) 23:47:010158デフォルトの名無しさん
2008/03/08(土) 23:47:43最初の14バイトがBITMAPFILEHEADER
以降がBITMAPINFOHEADER
0159デフォルトの名無しさん
2008/03/08(土) 23:48:2424じゃなくて54バイトw
0160デフォルトの名無しさん
2008/03/08(土) 23:49:32ここ見て必要なデータを直読みするといいよ
0161デフォルトの名無しさん
2008/03/09(日) 00:00:06ヘッダから読み込むことにします。
0162デフォルトの名無しさん
2008/03/09(日) 00:41:35指定のフォント、フォントサイズで文字列の画面上でのサイズを計算したいのですが、
どんなAPIを使えばできますか?
0163デフォルトの名無しさん
2008/03/09(日) 00:47:040164デフォルトの名無しさん
2008/03/09(日) 00:48:46即レスありがとうございます!
助かりました
0165デフォルトの名無しさん
2008/03/09(日) 01:47:550166デフォルトの名無しさん
2008/03/09(日) 01:48:570167デフォルトの名無しさん
2008/03/09(日) 10:39:25プログラム内部からSetWindowLongを試みたところ
GetLastErrorで5番のアクセス拒否が返ってきたのですが
これはやっちゃいけないことなんでしょうか
0168デフォルトの名無しさん
2008/03/09(日) 10:45:290169デフォルトの名無しさん
2008/03/09(日) 10:48:39例えば、
::SendMessage(hParent, WM_PARENTNOTIFY, MAKEWPARAM(WM_NCDESTROY, id), (LPARAM)hWindow);
の様な感じで
0170デフォルトの名無しさん
2008/03/09(日) 10:51:53ありがとうございました
0171デフォルトの名無しさん
2008/03/09(日) 10:53:42なんでもおkという訳ではないけど、そういう使い方をするものは存在する
WM_HITTESTとか
0172デフォルトの名無しさん
2008/03/09(日) 10:57:070173デフォルトの名無しさん
2008/03/09(日) 11:17:11ウインドウの終了を親ウインドウで捕まえたいのですが、POPUPスタイルだったり、MDIの子ウインドウだったりした場合
WM_PARENTNOTIFYを捕まえることが出来ないので自分で明示的に送ろうかと思ったのですが問題がでたらいやだなぁと思い
質問させていただきました
>>172
たしかに、WM_APPを使うのが楽でいいのですが...
オリジナルのWindows用クラスライブラリで使うので、WM_APPの使用は極力避けたいのです
0174デフォルトの名無しさん
2008/03/09(日) 12:13:340175デフォルトの名無しさん
2008/03/09(日) 15:38:16abort、exit、_exit、または ExitProcess を呼び出したスレッドがあると、
すべてのスレッドが終了します。
と書かれていたのですが、明示的に終了関数を呼ばない場合
スレッドは生きたままになるのでしょうか?
0176デフォルトの名無しさん
2008/03/09(日) 15:58:320177デフォルトの名無しさん
2008/03/09(日) 16:09:46普通に組むと、
エントリポイント - CRTのスタートアップ関数 - main/WinMain
という構造になる。
VC2005のCRTだと、main/WinMainから帰ってきた後で_exitが呼ばれているので、
その結果他のスレッドも終了させられる。
微妙にスレ違いなネタの気がしなくもないな。
0179デフォルトの名無しさん
2008/03/10(月) 00:21:01クライアント領域がないタイトルバーだけのウィンドウって、
どうやって作ればいいんでしょうか。
0180デフォルトの名無しさん
2008/03/10(月) 00:31:23> "サイズ復元ボタン" に一致する日本語のページ 1 件中 1 - 1 件目
0181デフォルトの名無しさん
2008/03/10(月) 00:32:330182デフォルトの名無しさん
2008/03/10(月) 00:37:07「元のサイズに戻す」ボタンでした。
0183デフォルトの名無しさん
2008/03/10(月) 00:52:39ウインドウサイズを指定できるけど
クライアントサイズから
ウインドウサイズを算出することはできない?
0184デフォルトの名無しさん
2008/03/10(月) 00:54:500185デフォルトの名無しさん
2008/03/10(月) 00:57:020186179
2008/03/10(月) 01:00:10最大化も最小化もしていないので
「元のサイズに戻す」ボタンが表示されなくて、
でも、最大化してしまうとクライアント領域ができてしまいます。
>>183
なんか丁度10分前くらいに作ったので。どうぞ。
void getWindowSize(WORD clientW, WORD clientH, WORD* pWindowW, WORD* pWindowH, DWORD style) {
RECT rect = {0,0,clientW, clientH};
AdjustWindowRect(&rect, style, FALSE);
*pWindowW = (WORD) (rect.right - rect.left);
*pWindowH= (WORD) (rect.bottom - rect.top);
}
0187デフォルトの名無しさん
2008/03/10(月) 01:04:01実際に表示してから目的の状態になるまでリサイズを繰り返すしかない。
0188デフォルトの名無しさん
2008/03/10(月) 01:10:23これだって完璧にやってくれるわけではないけど。
0189デフォルトの名無しさん
2008/03/10(月) 01:26:03なぜWORDなのか理由を聞きたい
0190デフォルトの名無しさん
2008/03/10(月) 01:27:550191デフォルトの名無しさん
2008/03/10(月) 01:40:22深い理由はないけど、
サイズ4294967296みたいなウィンドウを作る予定はなかったので。
0192デフォルトの名無しさん
2008/03/10(月) 02:13:140193デフォルトの名無しさん
2008/03/10(月) 02:13:540194デフォルトの名無しさん
2008/03/10(月) 02:27:210195デフォルトの名無しさん
2008/03/10(月) 02:31:480196デフォルトの名無しさん
2008/03/10(月) 02:42:070197デフォルトの名無しさん
2008/03/10(月) 02:42:460198デフォルトの名無しさん
2008/03/10(月) 02:42:51こんなソースに噴いた事あるw
0199デフォルトの名無しさん
2008/03/10(月) 02:52:550200デフォルトの名無しさん
2008/03/10(月) 02:54:020201デフォルトの名無しさん
2008/03/10(月) 02:59:340202デフォルトの名無しさん
2008/03/10(月) 03:28:03サイズの小さい変数を使ったら速くなると思ったら大間違い。
WORDなんて中途半端に混ぜるとかえって遅くなる。
そこはRECTのメンバがLONGだから、LONGにするのが普通。
0203デフォルトの名無しさん
2008/03/10(月) 03:54:48最後の一行は同意
0204デフォルトの名無しさん
2008/03/10(月) 11:06:34もうobsoleteだな
0205デフォルトの名無しさん
2008/03/10(月) 12:32:40じゃあ遅くしたいのか
0206デフォルトの名無しさん
2008/03/10(月) 12:43:230207デフォルトの名無しさん
2008/03/10(月) 13:18:40デバイスごとに処理を振り分けるということは可能なのでしょうか?
具体的にはPS/2とUSB接続の2種類のキーボードが接続されているPCで、
PS/2キーボードでEnterキーが押された場合と、
USBキーボードでEnterキーが押された場合で処理を振り分けたいのです。
0208デフォルトの名無しさん
2008/03/10(月) 13:21:08そんなことを実現しているアプリはあるのでできるはず
0209デフォルトの名無しさん
2008/03/10(月) 13:27:54XP以降ならRaw Inputで区別できる。
0211デフォルトの名無しさん
2008/03/10(月) 15:23:090212デフォルトの名無しさん
2008/03/10(月) 17:46:42OpenMutexでミューテックスが開けた場合、そのミューテックスハンドルを元に
ミューテックスを持っているプロセス(≒前のインスタンス)のプロセスハンドル
又はプロセスIDを得る方法ってあるんでしょうか?
頻繁に起動・終了するタイプのプロセスなので、可能ならそれを使って
WaitForSingleObjectしたいのです。
0213デフォルトの名無しさん
2008/03/10(月) 17:50:13よく考えたら開いたミューテックス自体を使って同期すればいいのか・・・
0214デフォルトの名無しさん
2008/03/10(月) 18:02:59WinMainの第二引数が使えりゃいいのに
0215デフォルトの名無しさん
2008/03/10(月) 19:16:01違っているので注意。
0216デフォルトの名無しさん
2008/03/10(月) 21:00:440217デフォルトの名無しさん
2008/03/10(月) 23:32:49やっていたが、CreateWindow→CreateMutexにしないと穴があるな。
既に起動しているインスタンスがあれば、そっちをアクティブにするんだけど
CreateWindowの前に多重起動の判定していると、Mutexはあるがウインドウが
ないという状況が存在するね。
0218デフォルトの名無しさん
2008/03/10(月) 23:40:01終了直前かもしれんし
0219デフォルトの名無しさん
2008/03/11(火) 00:33:30「あたり。今日はちょっといいことあるかも」
ってことにしよう。
0220デフォルトの名無しさん
2008/03/11(火) 00:49:270221デフォルトの名無しさん
2008/03/11(火) 01:19:000222デフォルトの名無しさん
2008/03/11(火) 02:22:57「Win32/C++マルチスレッドプログラミング詳説」
CreateMutexでOwnerを設定し、ウィンドウができたらReleaseMutex
別スレッドはWaitFor
0223デフォルトの名無しさん
2008/03/11(火) 06:38:370224デフォルトの名無しさん
2008/03/11(火) 09:55:070225デフォルトの名無しさん
2008/03/11(火) 10:39:18曲を開く度にWinampが起動したら困るっしょ。
だけど、Vistaのエクスプローラで複数選択してコマンドバーから
Winampのアイコン押すと、選択した数だけWinampが起動する。凄い。ヤバい。
0226デフォルトの名無しさん
2008/03/11(火) 10:41:010227デフォルトの名無しさん
2008/03/11(火) 11:26:54この書込みが終了したことを知るAPIってありますか?
0228デフォルトの名無しさん
2008/03/11(火) 11:38:340229デフォルトの名無しさん
2008/03/11(火) 12:32:350230デフォルトの名無しさん
2008/03/11(火) 16:03:08レジストリをテキストのレジストリファイルする API などありませんでしょうか。
0231デフォルトの名無しさん
2008/03/11(火) 16:34:25regedit.exe互換にしたいということ?
0232デフォルトの名無しさん
2008/03/11(火) 16:39:46そうです。regedit.exe 互換にしたいと思ってます。
0233デフォルトの名無しさん
2008/03/11(火) 17:10:35出さずにそのままプロセス消滅とさせる方法はあるでしょうか?
とあるシェルエクステンションで外部プラグインDLLを利用可能としたとき、プロセス分離させてある
ので出来の悪いプラグインが落ちてもシェルは巻き込まないけど失敗時にエラーが出るのは避け
たい・・・という用途です。
0234デフォルトの名無しさん
2008/03/11(火) 17:11:54普通のエラー類ならプラグイン呼び出し部だけWin32例外ハンドラで捕まえられますが、
DirectShowモジュール等を使うと例外ハンドラだけではエラーが捕捉しきれないようなのです。
0235デフォルトの名無しさん
2008/03/11(火) 18:42:490236デフォルトの名無しさん
2008/03/11(火) 18:50:34引き継がれないdえ初期化されてしまうものなのでしょうか?
0237デフォルトの名無しさん
2008/03/11(火) 19:22:14ぼやけた感じになるのですが、これを1ドットずつくっきりと表示させるにはどうしたらいいですか
0238デフォルトの名無しさん
2008/03/11(火) 19:23:50低解像度ではぼやけるものなのでしょうか。
0239デフォルトの名無しさん
2008/03/11(火) 19:34:370240デフォルトの名無しさん
2008/03/11(火) 20:35:21http://itaya.corso-b.net/TIPS/TIPS015.html
regeditに引数をつけて呼び出すとか。
0241デフォルトの名無しさん
2008/03/11(火) 20:40:09受け取ったレジストリ情報を自分でテキストとして出力すればいいだけだろ。
0242デフォルトの名無しさん
2008/03/11(火) 20:59:210243デフォルトの名無しさん
2008/03/11(火) 21:16:39はい。BitBltで表示してます。
ていうか、マウスポインタもぼやけて表示されます。
0244デフォルトの名無しさん
2008/03/11(火) 21:20:33CRTモニタ使うといいんじゃない?
0245デフォルトの名無しさん
2008/03/11(火) 21:32:360246デフォルトの名無しさん
2008/03/11(火) 22:53:220247デフォルトの名無しさん
2008/03/11(火) 23:13:390248デフォルトの名無しさん
2008/03/11(火) 23:16:09SetUnhandledExceptionFilter使えば規定の処理を上書きできるのかなあ?
よくわからん。ごめん。
Advanced Windowsに何か書いてあったような気もするけど…。
0249デフォルトの名無しさん
2008/03/11(火) 23:43:46Vistaだと管理者パスワードが必要。
>>241のように自分でregedit互換のテキストにするほうがいいんじゃ?
ユーザーに面倒をかけるよりは自分が面倒くさいほうがまし。
0250デフォルトの名無しさん
2008/03/12(水) 00:18:09その程度でUACなの?
0251デフォルトの名無しさん
2008/03/12(水) 00:21:440252デフォルトの名無しさん
2008/03/12(水) 00:36:490253デフォルトの名無しさん
2008/03/12(水) 00:43:500254デフォルトの名無しさん
2008/03/12(水) 12:23:06ノートPCならBIOSで拡大表示時の設定が出来るものがある。
デスクトップPCなら液晶のOSDで拡大補完レベルを設定できるものがある。
↑俺のシャープの液晶がこれ
0255デフォルトの名無しさん
2008/03/12(水) 12:25:33画面の解像度と液晶の解像度が一致しているか確認する。
0256デフォルトの名無しさん
2008/03/12(水) 12:28:000257デフォルトの名無しさん
2008/03/12(水) 13:28:00PCに繋げられるQVGAの液晶なんてあるのか?
0258デフォルトの名無しさん
2008/03/12(水) 13:43:27PCから出力されてるドットとディスプレイ上のドットを1対1に対応させることのできる液晶はある
0259デフォルトの名無しさん
2008/03/12(水) 19:32:190260デフォルトの名無しさん
2008/03/12(水) 21:37:24wParamが”値が割り当てられていないローカルな変数”とか警告が出てままだし、
何か根本的な部分で理解できていないようなんですが、どこがおかしいのか教えていただければ幸いです
使っているのはVC++6.0です
HANDLE wParam;
char szFn[256] ;
//DragAcceptFiles(hWnd,TRUE);
//UINT iCount = DragQueryFile((HDROP)wParam, 0xFFFFFFFF, NULL, 0);
DragQueryFile((HDROP)wParam, 0, szFn, 256);
printf("%s",szFn);
これで実行するとszFnの中身がフフフ…でまったく機能してませんでした
真空波動研からflvファイルの画像サイズを取得して、FLVPのiniのウィンドウサイズを書き換えて
等倍で再生されるFLVPの支援ツールを作っていて、ネットのソースを色々流用してflvのパスの取得以外はちゃんと動作するものが
できたんですが、あと一歩なんです
0261デフォルトの名無しさん
2008/03/12(水) 21:39:530262デフォルトの名無しさん
2008/03/12(水) 21:56:32変数に笑われているようではあと一歩どころでは無かろう
つうかその程度のツールならvbsで作れそうな気もするが
0263デフォルトの名無しさん
2008/03/12(水) 22:04:55case WM_CREATE:
DragAcceptFiles(hWnd, TRUE);
return 0;
case WM_DROPFILES:
{
int len = DragQueryFile((HDROP)wParam, 0, NULL, 0);
char* p_strBuf = (char*)malloc(len+1);
DragQueryFile((HDROP)wParam, 0, p_strBuf, len+1);
MessageBox(hWnd, p_strBuf, "message", MB_OK);
free((void*)p_strBuf);
DragFinish((HDROP)wParam);
}
return 0;
0264デフォルトの名無しさん
2008/03/12(水) 22:24:10適当にも程がある
0265デフォルトの名無しさん
2008/03/12(水) 22:33:42これが仕事ならデスマーチ
0266デフォルトの名無しさん
2008/03/12(水) 22:48:540267デフォルトの名無しさん
2008/03/12(水) 22:49:50ありがとうございました
よくわからないので諦めます
確かに後1歩どころではなかったようです
せっかくなんでソース置いときます
ttp://kissho.xii.jp/1/src/1jyou29678.txt
CreateProcess()はネットに合ったのをそのまま使ったので全然わかってません
0268デフォルトの名無しさん
2008/03/12(水) 23:36:13真空波動研やらFLVPについては関知しないが、
ざっとコード見た感じDragAcceptFiles()やDragQueryFile()じゃなく
コマンドライン引数使えって話のように思える。
0269デフォルトの名無しさん
2008/03/12(水) 23:40:18使い終わった場合(例えばスクロールが終わったり、ツールバーのボタンを押した後)に
もともとフォーカスを持っていたウィンドウにフォーカスを返すにはどうしたら良いのでしょうか?
0270デフォルトの名無しさん
2008/03/12(水) 23:52:43デスクトップのDCを使って GetTextExtentPoint32() しても
問題ありませんか?
文字を描画するのは作ったウィンドウなんですが。
0271デフォルトの名無しさん
2008/03/13(木) 01:01:58ありがとうございます!
出来そうな気がしてきました
0272デフォルトの名無しさん
2008/03/13(木) 02:12:20ありがとうございました
後は細かい設定をつけていきます
0273デフォルトの名無しさん
2008/03/13(木) 02:15:350274デフォルトの名無しさん
2008/03/13(木) 03:42:02デスクトップで使われてるフォントで描画した場合の高さと幅が返ってくる
それでも良ければそうしたまえ
>>269
WM_SETFOCUSを見て頑張れ
この場合スクロールバーは子ウィンドウでないと駄目かもな
0275デフォルトの名無しさん
2008/03/13(木) 04:38:380276デフォルトの名無しさん
2008/03/13(木) 06:22:02コンソールアプリだとするとDragQueryFileをどうやって呼んでるか謎だった
0277デフォルトの名無しさん
2008/03/13(木) 09:47:08同じフォントなのにデスクトップと自ウインドウで描画時に幅かわることがあるのですか?
0278デフォルトの名無しさん
2008/03/13(木) 11:18:45なんでよそさまのアプリであるデスクトップ=explorer.exeを使うか理解できない
自前でDCつくればいいだろ?
0279デフォルトの名無しさん
2008/03/13(木) 11:21:440280デフォルトの名無しさん
2008/03/13(木) 12:01:140281デフォルトの名無しさん
2008/03/13(木) 12:01:340282277
2008/03/13(木) 22:00:55ありがとうございました。
0283デフォルトの名無しさん
2008/03/14(金) 00:29:130284デフォルトの名無しさん
2008/03/14(金) 12:11:50自ウィンドウのDC渡す変わりに、互換あればGetDC(0)でやりたかったってことだろ。
0285デフォルトの名無しさん
2008/03/14(金) 12:18:20どうすれば可能ですか?
0286デフォルトの名無しさん
2008/03/14(金) 12:22:560287デフォルトの名無しさん
2008/03/14(金) 13:59:270288デフォルトの名無しさん
2008/03/14(金) 15:42:49C++を最近学び始めて、GUIを作ってみようと思ったんですが、Webの雛形はCで書かれているので、このまま使うのも・・と思っています。
もちろん、cppでもコンパイルできたのですが、C++を生かした作り方があるのかなと悩んでいます。
Windowプログラミングの仕組みはある程度は分かっているのですが、やはり分からない部分もあるので自分で1から作るというのも不安です。
C++で作る時は、C++用の雛形を作ったほうが良いのでしょうか?
0289デフォルトの名無しさん
2008/03/14(金) 15:50:26それとも初期化やら描画関連やらプロシージャから全て1から作ろうとかってこと?
0290デフォルトの名無しさん
2008/03/14(金) 15:57:390291デフォルトの名無しさん
2008/03/14(金) 16:01:28なるかの二択だと思う。
0292デフォルトの名無しさん
2008/03/14(金) 16:01:34MFCやATL/WTLを使用しないならそれこそスタンスの問題
0293デフォルトの名無しさん
2008/03/14(金) 16:09:30かなり難しいことになりそうなのでCのを引き継ぐことにします。
0294デフォルトの名無しさん
2008/03/14(金) 16:36:33wxWidgets とか GTKmm とか
0295デフォルトの名無しさん
2008/03/14(金) 16:50:07BitBlt( hDC, 100, 100, 256, 256, hCompatDC, 0, 0, SRCCOPY ); // bitmap表示
hdc=BeginPaint(hwnd, &ps);
draw(hdc,&drg); // LineToを使ったたくさんの線の描画
EndPaint(hwnd, &ps);
break;
こうすると、bitmapの上にLineが引かれると思ったのですが、
Lineのうえにbitmapがあるように表示されます。
これはなぜですか?
0296デフォルトの名無しさん
2008/03/14(金) 16:55:020297デフォルトの名無しさん
2008/03/14(金) 17:06:440298デフォルトの名無しさん
2008/03/14(金) 17:07:16(お察しのとおり初心者です)
PAINTSTRUCT ps;
HDC hdc;
static HBITMAP hBitmap, hPrevBitmap; // ビットマップのハンドル
static HDC hDC, hCompatDC; // デバイスコンテキストハンドル
(中略)
case WM_CREATE:
(中略)
// ビットマップをファイルからロードする
hBitmap = (HBITMAP)LoadImage( NULL, "xxx.bmp", IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE );
if( hBitmap == NULL )
{
MessageBox( hwnd, ("ビットマップのロードに失敗しました"), ("エラー"), MB_OK | MB_ICONWARNING );
return 0;
}
// ウィンドウのデバイスコンテキストハンドルを取得する
hDC = GetDC( hwnd );
// メモリデバイスコンテキストを作成する
hCompatDC = CreateCompatibleDC( hDC );
// ロードしたビットマップを選択する
hPrevBitmap = (HBITMAP)SelectObject( hCompatDC, hBitmap );
return 0;
break;
0299デフォルトの名無しさん
2008/03/14(金) 17:08:580300デフォルトの名無しさん
2008/03/14(金) 17:10:440301デフォルトの名無しさん
2008/03/14(金) 17:10:47というか、この二つの変数名なんとかしろよ。
0302デフォルトの名無しさん
2008/03/14(金) 17:15:090303デフォルトの名無しさん
2008/03/14(金) 17:17:02もともとある(本のCDについてた)たくさんのLineを書くプログラムに
WEBサイトに載っていたbitmapを表示させるコードをくっつけてみた、
というところです。
どちらもそれぞれちゃんと表示されているのですが、
bitmapの上に線が描かれると思った予想が外れたので
聞いてみました。
hdcとhDCの件、どう統一させたらよいのでしょうか。
(片方の変数名の変更だけということでよいということでは
なさそうですよね?)
0304デフォルトの名無しさん
2008/03/14(金) 17:18:46BeginPaintの吐くhdcでBitBltすればいいだけ
0305デフォルトの名無しさん
2008/03/14(金) 17:20:02bitmapの上に線が載りました!!
大変お騒がせしました。どうもありがとうございました。
0306デフォルトの名無しさん
2008/03/14(金) 17:23:25すれ違いになりました。
これでもうまく行きました。
もうちょっと勉強しますです。
ありがとうございました。
0307デフォルトの名無しさん
2008/03/14(金) 23:20:49表示してEditBox で左クリックをするとダイアログが閉じてしまうんです。
もともと VC6 で作成してあった EditBox(TextBox) は問題なくつかえるのですが;
新たにそこに追加した場合もだめになるんです。
そのついかした EditBox に WM_INITDIALOG で文字列を設定しようとすると
ダイアログ自体が開かないんです。VS2005 で何か変わったのでしょうか?
.RC をみても以前と変わらなく見えるのですが?
0308デフォルトの名無しさん
2008/03/14(金) 23:51:15見辛くなってしまったのですが、色を変更するにはオーナードローするしかないんでしょうか?
0309デフォルトの名無しさん
2008/03/15(土) 00:02:090310デフォルトの名無しさん
2008/03/15(土) 00:17:070311デフォルトの名無しさん
2008/03/15(土) 00:23:16VS2005 で EditBox を追加すると全く使えないんです。既存のは動くんですけど
それをコピーしたものはうごかない。 .RC 見てもそっくりなんですけど;
なんとかヒントをお願いします。
0312デフォルトの名無しさん
2008/03/15(土) 00:46:23VC6から移行したときに何かの拍子で
リソースのIDがバッティングしてしまってるんじゃないか?
とぐらいしか言えないな。
とにかくソースを持ってるのは自分だけなんだから
ブレークポイント置くなりして調べないとな。
0313デフォルトの名無しさん
2008/03/15(土) 00:50:020314デフォルトの名無しさん
2008/03/15(土) 00:58:45ヒント:ソース晒せ
0315デフォルトの名無しさん
2008/03/15(土) 01:40:55動きました。
どうやら、コンパイラかリンカーのバグのようです。ちょっとひどいバグでした。
最初から Unicode がらみとか、ダイアログのフォントからみかと思ったのですが;
動くダイアログを動かない場所で呼び出すと動かないので、スタックかと悩んだり
していました。
結局リソースもいじらず、ソース位置(呼び出し場所、方法)も変えずになおりました。
コンパイルオプションもリンクオプションもいじらずに。。
ソース上はなんの問題もありませんでした。
巨大なプログラムではないのですが;
(単一exe 非mfc 12万行ぐらい)
1日、無駄でした。
VS2008 を買おうか検討します。
0316デフォルトの名無しさん
2008/03/15(土) 02:17:310317デフォルトの名無しさん
2008/03/15(土) 02:52:260318デフォルトの名無しさん
2008/03/15(土) 03:55:070319デフォルトの名無しさん
2008/03/15(土) 07:57:140320デフォルトの名無しさん
2008/03/15(土) 18:46:200321デフォルトの名無しさん
2008/03/15(土) 18:51:55SPをあてるという手もあるが、たいていの場合はそのSP自体が輪をかけてクソなうえ、
こっちの各種のプライベートコンポーネントを破壊していく。
アンインストールなんざしようもんなら、恒久的にリソースリークを引き起こす始末。
最低だな。
0322デフォルトの名無しさん
2008/03/15(土) 18:55:220323デフォルトの名無しさん
2008/03/15(土) 19:17:21糞でかいから古いの落としてたら悲惨だわ
0324デフォルトの名無しさん
2008/03/15(土) 20:13:49YES
0325デフォルトの名無しさん
2008/03/15(土) 20:28:49やっとインストールおわったんだが、
どうやらDirectX SDKも必要なようだ
0326デフォルトの名無しさん
2008/03/15(土) 20:32:51これだけあればウインドーズアポリはほぼ作れる。イヤッホウ!
0327デフォルトの名無しさん
2008/03/15(土) 20:34:010328デフォルトの名無しさん
2008/03/15(土) 20:35:02それは違う
>>326に必要なのはWin32APIの知識
0329デフォルトの名無しさん
2008/03/15(土) 20:48:440330デフォルトの名無しさん
2008/03/15(土) 20:50:390331デフォルトの名無しさん
2008/03/15(土) 20:57:360332デフォルトの名無しさん
2008/03/15(土) 21:40:390333デフォルトの名無しさん
2008/03/15(土) 21:52:43見てて気持ち悪いw
0334デフォルトの名無しさん
2008/03/16(日) 10:47:07オフスクリーンで描画して、元のDCの BITMAP と切り替えるなんてことはOK?
BitBlt するより早くなると思うんだけど。
SelectObject() の説明に
「この関数は、指定されたのと同じタイプで、それまで選択されていたオブジェクトを返します。
アプリケーションは新しいオブジェクトを使い終えたら、必ず元の(既定)オブジェクトに置き換えるべきです。」
と書いてあるから駄目かな?
0335デフォルトの名無しさん
2008/03/16(日) 10:52:100336デフォルトの名無しさん
2008/03/16(日) 11:03:010337デフォルトの名無しさん
2008/03/16(日) 11:09:14ビットマップを選択できるのは、メモリDCだけ。
0338デフォルトの名無しさん
2008/03/16(日) 11:51:21DCを物凄く誤解してる。
DCがビットマップデータを持っているわけじゃないよ。
0339デフォルトの名無しさん
2008/03/16(日) 21:22:16ならないよ。
てかね、Windowsの製作者はお前さんより数段上だと思っときな。
そんなこた考慮済みで作ってんだよ。
ちなみにならない理由は物理的な問題なんでどうやっても回避不可よ。
OSの癖で多少の違いは出るかもだけど。
0340デフォルトの名無しさん
2008/03/17(月) 01:03:01その hItem ハンドルを取得するにはどうすればよいのでしょうか?
0341デフォルトの名無しさん
2008/03/17(月) 01:23:50How To Know When the User Clicks a Check Box in a TreeView Control
http://support.microsoft.com/kb/261289
0342デフォルトの名無しさん
2008/03/17(月) 02:00:38WM_NOTYFYを受け取ったら通知IDをチェックする
0343デフォルトの名無しさん
2008/03/17(月) 02:33:36そのサンプル、TVN_KEYDOWNへの応答が抜けてるし
Spaceキーを押してチェックマーク付けた時はスルーかよ
相変わらずいい加減だなぁ
そういや昔VirtualPC2004で設定ダイアログのリストビューを↑↓キーで行き来するとバグってたのを思い出した
最近は直ってるのかな。もう使ってないから知らんけど
0344デフォルトの名無しさん
2008/03/17(月) 16:41:31UNICODE文字がアルファベットか数値かなどを調べる方法が分かりません。
GetStringTypeWという関数を見つけたのですが、デバッグしてみたところ
第4引数のLPWARDに格納されたのは644という数値で16進表記でもC1_DIGITなどに
の定数の値に当てはまりません。教えてください。
お願いします。
0345デフォルトの名無しさん
2008/03/17(月) 16:56:020346デフォルトの名無しさん
2008/03/17(月) 16:58:130347デフォルトの名無しさん
2008/03/17(月) 16:59:00早々とありがとうございます!
0348デフォルトの名無しさん
2008/03/17(月) 16:59:15iswasciiの実装がそれ
0349デフォルトの名無しさん
2008/03/17(月) 17:00:59GetStringTypeWの説明ぐらい嫁
0350デフォルトの名無しさん
2008/03/17(月) 17:02:08こんな関数が搭載されているとは思いませんでした。
mbstowcs_sとかUNICODE企画ってうざいですね。
0351デフォルトの名無しさん
2008/03/17(月) 17:08:37すみませんでした。たくさん定数あったんで読み逃してましたorz
0352デフォルトの名無しさん
2008/03/17(月) 17:09:21まぁしばらく無理だけど
0353デフォルトの名無しさん
2008/03/17(月) 17:10:40恥を忍んだ割には随分な物言いだな。
0354デフォルトの名無しさん
2008/03/17(月) 17:12:510355デフォルトの名無しさん
2008/03/17(月) 17:18:390356デフォルトの名無しさん
2008/03/17(月) 17:33:180357340
2008/03/17(月) 17:34:26lpnmh->idFrom の値が 0 になってしまいます? ちなみに BCC32 なのですが
分かる方いますか?
case WM_NOTIFY: /* TreeView control からの通知メッセージ */
lpnmh = (LPNMHDR)lp;
if((lpnmh->code == NM_CLICK) && (lpnmh->idFrom == IDC_MYTREEVIEW))
{
.
.
.
0358デフォルトの名無しさん
2008/03/17(月) 17:42:00だから、忍んでねぇじゃん。
0359デフォルトの名無しさん
2008/03/17(月) 17:45:140360デフォルトの名無しさん
2008/03/17(月) 17:48:380361デフォルトの名無しさん
2008/03/17(月) 17:49:060362デフォルトの名無しさん
2008/03/17(月) 17:57:46IDC_MYTREEVIEWが0って落ちはないよね?
lpnmh->codeはちゃんとNM_CLICKになってる?
0363デフォルトの名無しさん
2008/03/17(月) 19:01:30バグのあるソースを参考にするのは(ry
0364デフォルトの名無しさん
2008/03/17(月) 22:27:29なんでVC6は > を一個多く付けないと怒られるんだぜ?
VC7は普通にエラーと申しておるし、どういうことですか?
0365デフォルトの名無しさん
2008/03/17(月) 22:29:350366デフォルトの名無しさん
2008/03/17(月) 22:31:12すまん、>>363見てた。
0367デフォルトの名無しさん
2008/03/17(月) 22:54:45typedef std::map<std::string, std::vector<std::string> > data;とするとどう?
テンプレートを閉じるときには>>と書けない。>>という1つの字句と解釈されるから。
C++0xで改善されるみたいだけど。
0368デフォルトの名無しさん
2008/03/17(月) 23:09:17スレ違いに回答する阿呆はお帰りください。
0369デフォルトの名無しさん
2008/03/17(月) 23:10:58_, ._
( ・ω・) now shibakaring ...
○={=}〇,
|:::::::::\, ', ´
、、、、し 、、、(((.@)WWWWWWWWWWWWWWWWWWWWWWW (26%)
0370デフォルトの名無しさん
2008/03/17(月) 23:12:26激しくワロタ
0371デフォルトの名無しさん
2008/03/17(月) 23:12:47自演はお帰りください。
0372デフォルトの名無しさん
2008/03/17(月) 23:13:400373デフォルトの名無しさん
2008/03/17(月) 23:14:08そうだよね。
0374デフォルトの名無しさん
2008/03/17(月) 23:15:06自演乙w
0375デフォルトの名無しさん
2008/03/17(月) 23:15:13だから帰ってきたのさ。このスレに。
0376デフォルトの名無しさん
2008/03/17(月) 23:18:180377デフォルトの名無しさん
2008/03/17(月) 23:19:22これはね…
お前を食べるためだぁ〜〜
0378デフォルトの名無しさん
2008/03/17(月) 23:20:570379デフォルトの名無しさん
2008/03/17(月) 23:22:47激しく同意
0380デフォルトの名無しさん
2008/03/17(月) 23:23:470381デフォルトの名無しさん
2008/03/17(月) 23:25:50自演必死だなw
0382デフォルトの名無しさん
2008/03/17(月) 23:27:50↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
0383デフォルトの名無しさん
2008/03/18(火) 00:06:05言ってみるものだ、地味に助かったわ。 �d
0384デフォルトの名無しさん
2008/03/18(火) 00:47:42解決できて良かったね^^
0385デフォルトの名無しさん
2008/03/18(火) 00:52:490386デフォルトの名無しさん
2008/03/18(火) 01:26:23軽口叩く前にベッドの中で入門書でも読んでろよこのHP3の雑魚グラマが
0387デフォルトの名無しさん
2008/03/18(火) 01:29:50_, ._
(・ω・ ) now shibakaring ...
○={=}〇,
|:::::::::\, ', ´
wwwwww、、、、、、し 、、、(((.@)wwwwwwwwwwwwwwwwwwwwwww (19%)
0388デフォルトの名無しさん
2008/03/18(火) 01:58:36お前は俺か
俺も丁度コンパイルエラーで悩んでいた所だったから助かったよ。
0389デフォルトの名無しさん
2008/03/18(火) 02:48:39とレスすると自演だと思われる地獄
0390デフォルトの名無しさん
2008/03/18(火) 02:51:170391デフォルトの名無しさん
2008/03/18(火) 02:52:29>>390
自演乙
0392デフォルトの名無しさん
2008/03/18(火) 03:33:350393デフォルトの名無しさん
2008/03/18(火) 03:45:120394デフォルトの名無しさん
2008/03/18(火) 06:32:19ワロタw
0395デフォルトの名無しさん
2008/03/18(火) 06:49:31>>385で相手にされなかったので今度は自演でフォローとは情けない
0396デフォルトの名無しさん
2008/03/18(火) 09:21:580397デフォルトの名無しさん
2008/03/18(火) 13:03:390398デフォルトの名無しさん
2008/03/18(火) 13:05:40クライアント側はどうやって実装すりゃ良いの?
0399デフォルトの名無しさん
2008/03/18(火) 13:05:540400デフォルトの名無しさん
2008/03/18(火) 14:31:110401デフォルトの名無しさん
2008/03/18(火) 15:25:210402デフォルトの名無しさん
2008/03/18(火) 17:56:35ダイアログ破棄時に LB_DELETESTRING しないと メモリーリーク
するのでしょうか?
0403デフォルトの名無しさん
2008/03/18(火) 17:59:350404デフォルトの名無しさん
2008/03/18(火) 18:37:58.c_str() で LB_ADDSTRING していると、メモリーリークするようです。
ダイアログ破棄時に、ちゃんと LB_DELETESTRING すると直るんです。
0405デフォルトの名無しさん
2008/03/18(火) 19:28:55:と;を間違えるぐらいだから他の部分でトチ狂った事してるんだろ
0406デフォルトの名無しさん
2008/03/18(火) 22:42:27「しかいきがる」って何?
そんな日本語ねーよ。
国 へ 帰 る ん だ な。 お 前 に も 家 族 が い る だ ろ う。
0407デフォルトの名無しさん
2008/03/18(火) 22:45:12司会気軽
鹿息がる
しか、粋がる
0408デフォルトの名無しさん
2008/03/18(火) 22:46:310409デフォルトの名無しさん
2008/03/18(火) 22:53:02そんな品詞分解する日本人いねーよ。
国 へ 帰 る ん だ な。 お 前 に も 家 族 が い る だ ろ う。
0410デフォルトの名無しさん
2008/03/18(火) 22:54:37> お 前 に も 家 族 が い る だ ろ う。
いません… orz
0411デフォルトの名無しさん
2008/03/18(火) 22:56:530412デフォルトの名無しさん
2008/03/18(火) 23:14:25分かち書きしないハングルとか何故普通に読めるのかナゾ杉る
0413デフォルトの名無しさん
2008/03/18(火) 23:16:510414デフォルトの名無しさん
2008/03/18(火) 23:35:03( ・ω・) now shibakaring ...
○={=}〇,
|:::::::::\, ', ´
、、、、し 、、、(((.@)WWWWWWWWWWWWWWWWWWWWWWW (26%)
0415デフォルトの名無しさん
2008/03/18(火) 23:38:190416デフォルトの名無しさん
2008/03/19(水) 00:07:41責任取れ>>364
0417デフォルトの名無しさん
2008/03/19(水) 00:09:15実は普通に読めてないようだが。
つ 機能性文盲
0418デフォルトの名無しさん
2008/03/19(水) 00:14:040419デフォルトの名無しさん
2008/03/19(水) 01:37:02ハングルは、日本語のカナと違って漢字一文字で一文字だからな。
勿論、同音異義語は山の数。
0420デフォルトの名無しさん
2008/03/19(水) 01:48:34なんでわざわざ暗号化したんだろ?
0421デフォルトの名無しさん
2008/03/19(水) 01:59:10仮名もアルファベットも同じ趣旨の元に生まれた文字。
0422デフォルトの名無しさん
2008/03/19(水) 04:20:41419の言う様にそのまま置き換えたから、表音文字の癖に縦横に
組み合わせないといけないややこしい物になっちまってるが。
0423デフォルトの名無しさん
2008/03/19(水) 07:03:453月19日 ハングル講座 -歴史編-
もはやWin32APIスレとは言えないな・・・
0424デフォルトの名無しさん
2008/03/19(水) 07:44:38カナ文字ってかなり変な仕組みな文字だと思わね?
0425デフォルトの名無しさん
2008/03/19(水) 07:59:130426デフォルトの名無しさん
2008/03/19(水) 08:37:250427デフォルトの名無しさん
2008/03/19(水) 08:42:130428デフォルトの名無しさん
2008/03/19(水) 08:48:020429三木支
2008/03/19(水) 08:51:030430デフォルトの名無しさん
2008/03/19(水) 09:31:34わざわざ専用の関数用意しなくてもいいような気がするんですが…
こういうのがあるってことは、できる限りこれらを使った方がいいんですか?
0431デフォルトの名無しさん
2008/03/19(水) 10:00:41今は知らんけど。
別にわざわざ使う必要も無いと思う。
0432デフォルトの名無しさん
2008/03/19(水) 10:03:02まったく同じ処理するんだったら使った方が分かりやすいかな
0433デフォルトの名無しさん
2008/03/19(水) 10:25:16C言語用だろ、たぶん
0434デフォルトの名無しさん
2008/03/19(水) 10:38:10そうすると他のも使う
0435デフォルトの名無しさん
2008/03/19(水) 12:18:41lstrlenとかlstrcpyって何のためにあるんですか?
わざわざ専用の関数用意しなくてもいいような気がするんですが…
こういうのがあるってことは、できる限りこれらを使った方がいいんですか?
0436デフォルトの名無しさん
2008/03/19(水) 12:40:290437デフォルトの名無しさん
2008/03/19(水) 12:46:47Win16の頃、機械語の量を減らすのに役立ったと聞いたことがある。
0438デフォルトの名無しさん
2008/03/19(水) 12:54:470439デフォルトの名無しさん
2008/03/19(水) 12:58:40包丁一本で何でもできる人には不要だけど、そうじゃない人には手軽。
0440デフォルトの名無しさん
2008/03/19(水) 14:15:320441デフォルトの名無しさん
2008/03/19(水) 14:59:00ハァ?
0442デフォルトの名無しさん
2008/03/19(水) 15:06:34おいw
すごい方向へ飛んで行ったぞw
0443デフォルトの名無しさん
2008/03/19(水) 18:44:470444デフォルトの名無しさん
2008/03/19(水) 19:33:26Windowsの中の人が必要と思ってるから、APIがあるんじゃないのか?
0445デフォルトの名無しさん
2008/03/19(水) 20:22:29できますか?
0446デフォルトの名無しさん
2008/03/19(水) 20:23:450447デフォルトの名無しさん
2008/03/19(水) 20:48:590448デフォルトの名無しさん
2008/03/19(水) 21:10:18ヘッダ
0449デフォルトの名無しさん
2008/03/19(水) 21:16:050450デフォルトの名無しさん
2008/03/19(水) 21:54:51EUにもっと暴れてもらわないと
0451デフォルトの名無しさん
2008/03/19(水) 22:31:290452デフォルトの名無しさん
2008/03/19(水) 22:33:050453デフォルトの名無しさん
2008/03/19(水) 22:45:39正直スマンカッタ 些細な疑問だったんだ。 反省してる。
だが謝らない。
0454デフォルトの名無しさん
2008/03/19(水) 22:47:09そうでないのは語彙が乏しくてガキっぽいよねww とか
ってここ何のスレだっけな
0455デフォルトの名無しさん
2008/03/19(水) 22:49:36ベータ(SONY)みたいな
0456デフォルトの名無しさん
2008/03/19(水) 23:03:310457デフォルトの名無しさん
2008/03/19(水) 23:12:21Windows 2000あたり限定(XPやVistaでは使えない)で、ほかの公開APIで代替が効く。
例えばSHFlushClipboardとか。
0458デフォルトの名無しさん
2008/03/19(水) 23:29:50「非公開API使って競合企業を出し抜いてるよ!ずるいよ!」
って訴えるためにあるAPI
0459デフォルトの名無しさん
2008/03/20(木) 00:09:380460デフォルトの名無しさん
2008/03/20(木) 00:15:11…なんかGPL厨みたいな言い分だ
MSを擁護する気はさらさらないがこういうのも好きじゃないなあ
0461デフォルトの名無しさん
2008/03/20(木) 00:15:44SHFlushClipboardならXPにもあるみたいだが
で、2000の奴を逆汗してみたら
jmp OleFlushClipboard
の一行だけw 何の為にあるんだww
0462デフォルトの名無しさん
2008/03/20(木) 00:17:020463デフォルトの名無しさん
2008/03/20(木) 00:23:510464デフォルトの名無しさん
2008/03/20(木) 00:35:43shell32!SHRegisterDragDrop → ole32!RegisterDragDrop
shell32!SHRevokeDragDrop → ole32!RevokeDragDrop
shell32!SHFreeUnusedLibraries → ole32!CoFreeUnusedLibraries
どうやら95時代のshell32.dllが、対応するole32.dllのAPIをLoadLibrary/GetProcAddressで
遅延ロードしてアクセスする為のヘルパ関数として用意していたのを後方互換で残しているだけらしい
だから2000以降では全く意味が無いようだ
だったら最初からそう書いとけっつーの
0465デフォルトの名無しさん
2008/03/20(木) 00:59:39Shell用の軽量疑似OLEシステムがあったとかなんとか
0466デフォルトの名無しさん
2008/03/20(木) 01:32:15VS2005のVC++でMFCを使ってプログラムしています。
USB機器の抜き差しについては、ぐぐったら
WM_DEVICECHANGE
DBT_DEVTYP_HANDLE
RegisterDeviceNotification
などのキーワードが出てきたので、それらを試して検知できることを確認しました。
結局、DBT_DEVTYP_HANDLE構造体のdbch_handleには
HIDデバイスのハンドルを渡したら上手くいきました。
しかし、DVI-Dで接続されたモニターの抜き差しを検知する方法がわかりません。
WM_DEVICECHANGEは飛んできます。
しかし、wParamにはDBT_DEVNODES_CHANGEDしか入ってきません。
USBと同じやり方でできないか、と思ったのですが
dbch_handleに何をセットすれば良いのかがわかりません。
EnumDisplayMonitorsで取得できるモニターハンドルではダメでした。
すみませんが、WM_DEVICECHANGEの中から、DVI-Dの抜き差しだけを検知する
やり方をぜひお教え下さい。
それとも、そのようなことは不可能なのでしょうか・・・?
0467デフォルトの名無しさん
2008/03/20(木) 01:39:18それを知るためにはThe Old New Thingを読まなければならないってどうなのかね
0468デフォルトの名無しさん
2008/03/20(木) 02:09:24しかしなんであんな邦題なんだろう
0469デフォルトの名無しさん
2008/03/20(木) 02:17:46いや、>>464の内容は自力で解析してみただけなんだがw
The Old New Thingに書いてあるか?
0470デフォルトの名無しさん
2008/03/20(木) 03:20:54直接>>464に対応する関数ではないが、ほぼその解析が正しいことを裏付ける記事を
http://blogs.msdn.com/oldnewthing/archive/2004/07/05/173226.aspx
で読んだことがあったのでてっきりこれを見ていたのかと思った
0471デフォルトの名無しさん
2008/03/20(木) 03:22:53ってことで言及はされてるけどね
0472デフォルトの名無しさん
2008/03/20(木) 08:04:02親じゃなくて、特定のプロシージャに送ることはできますか?
0473デフォルトの名無しさん
2008/03/20(木) 08:12:170474デフォルトの名無しさん
2008/03/20(木) 11:56:36・自分のプログラムのバグなのかコンパイラのバグなのかわからない
・他の仕事に応用できない糞開発ツールの独自世界を必死に学習している
・テキストエディタで書いたほうが効率的なのに糞UIツールを懸命に使っている
・糞開発ツールを批判すると「性格が悪いから糞ツールを批判するんだ」と言われる
糞だけど、政治的な理由で無理やり使わされているんですよね。
もう、あんな厨の作った糞ツールを我慢して使うのはやめましょう。
・糞開発ツールを部下に押し付ける上司の命令は無視しましょう。
上司は糞開発ツールが使われる実績を作ることであの会社のごきげんをとっているのです。
・あの糞開発ツール提供会社には「おたくの糞開発ツールは話にならない」と突き放しましょう。
バグレポートなどしてはいけません。改善要求などもってのほかです。
あの会社はあなたたちのことをテスター/モルモットとしか思っていません。
・あの会議で「糞開発ツールを使ったら生産性がxx%アップしました」
なんて話が出たら力強く机を叩き、会議室を出ましょう。
あの人たちは糞開発ツールをマンセーすることで立場を確保しているのです。
糞な開発ツールを糞だと言える、そんな当たり前の環境をみんなの力で取り戻しましょう。
0475デフォルトの名無しさん
2008/03/20(木) 11:58:580476デフォルトの名無しさん
2008/03/20(木) 12:04:38つまり、自分が納得できる物を、自分で作って使えと言うことか?
0477デフォルトの名無しさん
2008/03/20(木) 12:05:360478デフォルトの名無しさん
2008/03/20(木) 13:02:00糞開発ツール多いよな
0479デフォルトの名無しさん
2008/03/20(木) 13:25:420480デフォルトの名無しさん
2008/03/20(木) 13:45:08特に「簡単に画面が作れます」系が糞でダメだった
0481デフォルトの名無しさん
2008/03/20(木) 13:51:450482デフォルトの名無しさん
2008/03/20(木) 14:00:330483デフォルトの名無しさん
2008/03/20(木) 14:13:26組み込み系なんか遥かに糞な開発ツールが今でも使われてる
0484デフォルトの名無しさん
2008/03/20(木) 14:13:420485デフォルトの名無しさん
2008/03/20(木) 14:20:31提供されてないわけだw
0486デフォルトの名無しさん
2008/03/20(木) 14:44:57ざっと調べたのですが、どうもDEVMODE構造体を渡す場合の正しい使い方が確信できません。
わからないのは、
・pDevMode は、それが指す構造体の値を関数に渡すために使われるのか、
構造体に関数が値を書き込むために使われるのか、
あるいはその両方なのか(そうだとしてどれがreadでどれがwriteなのか)
・もし pDevMode の dmField メンバが取得する値を決めるとしたら、
その場合 fwCapability は無視されるのかどうか、
また要求する値は pDevMode に書き込まれるとして戻り値はどうなるのか
です。お願いします。
0487デフォルトの名無しさん
2008/03/20(木) 14:54:25>・pDevMode は、それが指す構造体の値を関数に渡すために使われるのか、
> 構造体に関数が値を書き込むために使われるのか、
入力オンリーです
MSDNを読めば宣言にconstが付いてるのが分かります
二点目
>・もし pDevMode の dmField メンバが取得する値を決めるとしたら、
> その場合 fwCapability は無視されるのかどうか、
fwCapabilityの値でpDevModeを無視するかどうか決めているので、fwCapabilityは必須
↓を見ると分かるがdmFieldメンバは構造体中の有効メンバを示すマスク
http://www.winapi-database.com/Struct/DEVMODE.html
穴があくまでMSDNを読みましょう
http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/jpgdi/html/_win32_devicecapabilities.asp
0488デフォルトの名無しさん
2008/03/20(木) 15:00:13要するにDevice〜()はpDevModeの中身を吐き出すだけなのですね。
ではDEVMODE構造体に目的の値を得るにはいったい何の関数を使えばよいのでしょうか。
デバイスコンテキストに値を渡すにはResetDC()を使えばよいというのは分かるのですが、
逆にデバイスコンテキストから値を引っ張り出す関数がわかりません。
0489488
2008/03/20(木) 15:34:060490デフォルトの名無しさん
2008/03/20(木) 16:00:290491デフォルトの名無しさん
2008/03/20(木) 16:03:43ホビープログラマは大変ですね
0492デフォルトの名無しさん
2008/03/20(木) 17:28:10改行まで文字列を取り出そうとしているのですが、
\r\nがなぜか見つかりません。
これはなぜなのですか?
0493デフォルトの名無しさん
2008/03/20(木) 17:50:13・MP3再生
DirectShow、ACM
・音の重ね合わせ
MIDIでも鳴らしとけ
・JPEG
OleLoadPicture、GDI+
0494デフォルトの名無しさん
2008/03/20(木) 18:26:03もしくはHSPとかTTSナントカとかひまわり
>>492
エディットコントロール内と検索文字列の文字コード違うんじゃない?としか言いようがないわぁ
コード貼ってよ
0495デフォルトの名無しさん
2008/03/20(木) 19:17:01\nだけでやってみそ
0496デフォルトの名無しさん
2008/03/20(木) 19:57:53Write("test");
Write("\r\n");
という具合です。
0497デフォルトの名無しさん
2008/03/20(木) 23:40:06自己解決しました
0498デフォルトの名無しさん
2008/03/21(金) 01:50:38intのサイズってどこで決まるんでしょうか?
OSのバージョン?CPU?
WindowsXPだと普通intは32ビットでしょうか?
0499デフォルトの名無しさん
2008/03/21(金) 01:52:40コンパイル時に決まる。
0500498
2008/03/21(金) 01:59:48LONGやDWORDでも、スピードがほとんど変わらないなら、
intは使わないでもいいかなと思いますが。
0501デフォルトの名無しさん
2008/03/21(金) 02:01:060502498
2008/03/21(金) 02:01:420503デフォルトの名無しさん
2008/03/21(金) 02:01:52移植性のためなら LONG や DWORD をどうぞ
0504デフォルトの名無しさん
2008/03/21(金) 02:03:250505デフォルトの名無しさん
2008/03/21(金) 02:16:250506デフォルトの名無しさん
2008/03/21(金) 02:51:15プラットフォームで切り替えたいなら、プリプロセッサで定義変わるようにしとくといい。
とりあえず64bit環境を準備するんだな。実際作って動かしてみればわかる。
0507デフォルトの名無しさん
2008/03/21(金) 09:19:43俺は__int64っての使ってるんだけど
何が標準なのか判らない。
0508デフォルトの名無しさん
2008/03/21(金) 09:49:21C/C++の標準ならC9Xならstdint.h に int64_t があるかも知れないが無いかもしれない
標準というわけではないがWin32APIスレとしてはbasetsd.hのINT64やUINT64が無難だと思う
0509デフォルトの名無しさん
2008/03/21(金) 09:50:350510デフォルトの名無しさん
2008/03/21(金) 10:04:53中身同じだろ
0511デフォルトの名無しさん
2008/03/21(金) 10:22:16キャストしなくても警告なしでコンパイルできると思う。
お前が個人的にそれを気持ち悪いと思ってキャストしているというのならともかく。
0512デフォルトの名無しさん
2008/03/21(金) 10:46:350513デフォルトの名無しさん
2008/03/21(金) 10:50:470514デフォルトの名無しさん
2008/03/21(金) 10:53:140516デフォルトの名無しさん
2008/03/21(金) 11:38:38サロゲートペアとか考慮するとMBCS程ではないが面倒には変わりないし
とか言いつつ最近は殆どUnicodeビルドだしサロゲートペアなんて全然考えてない俺w
0517デフォルトの名無しさん
2008/03/21(金) 12:22:22しね
0518デフォルトの名無しさん
2008/03/21(金) 12:23:110519デフォルトの名無しさん
2008/03/21(金) 12:24:490520デフォルトの名無しさん
2008/03/21(金) 12:48:240521デフォルトの名無しさん
2008/03/21(金) 13:04:11プロセスのIDかハンドルを元に、起動引数を取得するAPIは無いのでしょうか?
過去スレでは
1、CreateRemoteThreadで対象プロセスにdllを注入し、
2、GetCommandLineで引数を取得。
3、その情報をプロセス間通信などで送信
という方法が示されていましたが、
1の処理がLoadLibraryのカーネル上でのアドレスが全プロセスで共通であることに依存しており
もし、LoadLibraryのアドレスが異なれば対象プロセスを異常終了させてしまうという危険なものでした。
できれば、この方法はとりたくないので、APIが用意されていればいいのですが・・・。
0522デフォルトの名無しさん
2008/03/21(金) 13:11:54確か決まってたはず
0523デフォルトの名無しさん
2008/03/21(金) 15:57:07Vistaでもそうなんだっけ?
0524デフォルトの名無しさん
2008/03/21(金) 16:48:080525デフォルトの名無しさん
2008/03/21(金) 17:54:292. 1つでもそのDLLをロードしているプロセスがある間、他のプロセスがロードしてもアドレスは変化しない
3. 全プロセスからアンロードされたら、次にロードされたときにまたランダムに変わる(1.へ)
こんな感じだったと記憶している
0526デフォルトの名無しさん
2008/03/21(金) 18:09:390527デフォルトの名無しさん
2008/03/21(金) 18:31:580528デフォルトの名無しさん
2008/03/21(金) 19:04:440529デフォルトの名無しさん
2008/03/21(金) 19:54:28つまり別ユーザがリモートデスクトップとかで入ってきた時のプロセスはロードアドレスが異なるものになる
0530529
2008/03/21(金) 20:42:28http://www.codeproject.com/KB/threads/GetNtProcessInfo.aspx
NtQueryInformationProcessでPROCESS_BASIC_INFORMATION拾ってきて
PROCESS_BASIC_INFORMATION::PEB::RTL_USER_PROCESS_PARAMETERS::ImagePathName.Buffer
(要するにプロセスがコマンドラインを保存しているアドレス)をReadProcessMemoryするっぽ
ただPEB構造体はDDKでも非公開だった気がするからそこは注意
0531デフォルトの名無しさん
2008/03/21(金) 20:51:410532デフォルトの名無しさん
2008/03/21(金) 20:53:130533521
2008/03/21(金) 20:53:56今後仕様変更があるかも、とは書かれていますが、一応公開されてますね。
http://msdn2.microsoft.com/en-us/library/aa813706(VS.85).aspx
もし、仕様変更があったとしても、他のプロセスにダメージを与えることはなさそうなので
>>512の方法よりずっと安全なコードが書けそうです。
ありがとうございました。
0534デフォルトの名無しさん
2008/03/21(金) 21:29:20他プロセスのコマンドライン文字列を取得して何に使うのか知らないけど、MSもいい加減
DWORD GetCommandLineEx(HANDLE hProcess, LPTSTR pszBuffer, UINT cchBuffer);
を用意すればいいのに
0535デフォルトの名無しさん
2008/03/22(土) 00:23:050536デフォルトの名無しさん
2008/03/22(土) 00:33:480537デフォルトの名無しさん
2008/03/22(土) 00:37:130538デフォルトの名無しさん
2008/03/22(土) 00:38:43冗談で言ってるなら面白くないよ
0539デフォルトの名無しさん
2008/03/22(土) 01:11:57今は寝る準備をしている
ttp://www.hsjp.net/upload/src/up14021.txt
0540デフォルトの名無しさん
2008/03/22(土) 01:13:35流し読みじゃ何のことかさっぱりわからん
0541デフォルトの名無しさん
2008/03/22(土) 01:14:48でもなんでこんなに読みにくいんだろ?
0542デフォルトの名無しさん
2008/03/22(土) 01:19:43とりあえず適当に突っ込んでみる。
・pszBufferにNULLを渡すと落ちる。
必要な文字長(終端の'\0'を含む)を返すべき。
・NtQueryInformationProcessに失敗したときにRtlNtStatusToDosError/SetLastErrorしてない気がする。
・というか所々SetLastErrorすべき所が抜けてる。
0543r
2008/03/22(土) 10:18:47はじめて VisualC++ 2005 Express Edition(無償配布なアレです) に手を出した者です。
デバッグ用に MessageBox使うのが嫌だったのでOutputDebugStringを使おうと思い
PSDKもいれinclude や lib などのパスの設定もし
#include <windows.h>として
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {
//this->button1->Text = "てすと"; /* これは今まで使ってた応急処置的な出力 */
OutputDebugString("test");
}
試しにこのように ボタンをクリックしたらデバッグ画面に出力するようにしたのですが、ボタンを押下しても何も表示されません。なぜでしょうか?(エラーもまったくでません 押しても反応なしといった状態です)
もしかしたらリアルタイムに対応していないのでは?とも思いましたが、×で閉じた後もやはり何も出力されていません。もしこの方法で意図通りのことができないのであれば他に何か方法はありますでしょうか?
イメージ的には#のConsole.WriteLine();のようなことがしたいです。よろしかったらご教授ください m(_ _)m
0544デフォルトの名無しさん
2008/03/22(土) 10:36:02EDITコントロールの背景透過表示はできないのでしょうか?
WM_CTLCOLOREDITで
SetBkMode(((HDC)wp), TRANSPARENT);
return (LRESULT)GetStockObject(NULL_BRUSH);
とすれば一応背景透過になりますが、スクロールした場合など、文字部分が再描画されません
0545デフォルトの名無しさん
2008/03/22(土) 10:50:17.Netで書いてるなら、.Netでデバッグ出力すればいいかと
System.Diagnostics.Debug.WriteLineじゃダメなのか?
0546デフォルトの名無しさん
2008/03/22(土) 11:00:44仰る通りSystem.Diagnostics.Debug.WriteLineで意図通りのことができました。
ありがとうございました^^
0547デフォルトの名無しさん
2008/03/22(土) 13:10:090548デフォルトの名無しさん
2008/03/22(土) 13:42:390549デフォルトの名無しさん
2008/03/22(土) 15:33:08すでにVC9が、もちろんタダで出ているというのに。
0550デフォルトの名無しさん
2008/03/22(土) 15:34:230551デフォルトの名無しさん
2008/03/22(土) 16:04:09エディットコントロールって言うんですか?あのテキストが入力できるやつにフォーカスが合ってるときに
システムキー以外の何かしらのキーが押されたら、そのコントロールに対応してるキーの値を
変更しようと思ってるんですが、WM_KEYDOWNみたいなメッセージは受け取れないんでしょうか?
それと他のコントロールにフォーカスを自動で切り替えるには何を使えばいけるでしょうか?
できればジョイパッドの入力も使いたいのですが、ダイアログボックスでメッセージ以外の
処理をする時は別スレッドでも作って何とかするしかないんでしょうか?
0552デフォルトの名無しさん
2008/03/22(土) 16:19:460553デフォルトの名無しさん
2008/03/22(土) 16:42:05むずい><!頑張る!
0554デフォルトの名無しさん
2008/03/22(土) 17:14:22ヒント等いただければ幸いです。
0555デフォルトの名無しさん
2008/03/22(土) 17:16:060556デフォルトの名無しさん
2008/03/22(土) 17:33:120557デフォルトの名無しさん
2008/03/22(土) 18:22:530558デフォルトの名無しさん
2008/03/22(土) 18:26:490559デフォルトの名無しさん
2008/03/22(土) 18:27:18お騒がせすみません。どうもありがとうございました。
0560デフォルトの名無しさん
2008/03/22(土) 19:48:20>pszBufferにNULLを渡すと落ちる。
Win32APIでもNULLを渡すと落ちる関数があるから別に関数側でやらなくてもよくね?
0561デフォルトの名無しさん
2008/03/22(土) 19:51:53やっぱWindowsを作った男たちでないと
作れないのかな。
FindWindowと同じの作れと言われても仕組みがわからんし
0562デフォルトの名無しさん
2008/03/22(土) 19:54:150563デフォルトの名無しさん
2008/03/22(土) 19:56:15たぶん途中でカーネルオブジェクトのハンドルテーブル見に行ってるんだろうけど
それと同じコード書けば良いだけ
単にAPI作りたいってんならDLL吐けばヨロシ
0564デフォルトの名無しさん
2008/03/22(土) 20:16:25バグがあって仕方なく、というなら分からなくはないが
0565デフォルトの名無しさん
2008/03/22(土) 20:19:320566デフォルトの名無しさん
2008/03/22(土) 20:20:320567デフォルトの名無しさん
2008/03/22(土) 20:50:19それとも同じDLLロードしたら同じ物理メモリを参照するのかな
0568デフォルトの名無しさん
2008/03/22(土) 20:52:590569デフォルトの名無しさん
2008/03/22(土) 20:54:310570デフォルトの名無しさん
2008/03/22(土) 20:56:25色々問題があったからプロセスごとに展開するように変更されたと記憶している。
0571デフォルトの名無しさん
2008/03/22(土) 20:56:480572デフォルトの名無しさん
2008/03/22(土) 20:59:390573デフォルトの名無しさん
2008/03/22(土) 21:13:17Meがどうだったかはしらんけど98SEは共有
0574デフォルトの名無しさん
2008/03/22(土) 21:17:130575デフォルトの名無しさん
2008/03/22(土) 21:24:02他にもWM_COPYDATA、グローバルアトム、レジストリなど
0576デフォルトの名無しさん
2008/03/22(土) 21:24:050577デフォルトの名無しさん
2008/03/22(土) 21:24:060578デフォルトの名無しさん
2008/03/22(土) 23:12:39DLL 内のデータをアプリケーションまたはほかの DLL と共有する方法
http://msdn2.microsoft.com/ja-jp/library/h90dkhs0(VS.80).aspx
0579デフォルトの名無しさん
2008/03/22(土) 23:50:49int i = 0;
char a[32]n = "hello world";
#pragma data_seg()
char a[32]n ←この n の意味がわからないんだけど
0580デフォルトの名無しさん
2008/03/23(日) 01:26:05試せば分かるが n を書かないと共有されない。
0581デフォルトの名無しさん
2008/03/23(日) 01:56:26C言語的にはどんな意味があんの?
0582デフォルトの名無しさん
2008/03/23(日) 02:24:000583デフォルトの名無しさん
2008/03/23(日) 02:32:500584デフォルトの名無しさん
2008/03/23(日) 02:43:270585デフォルトの名無しさん
2008/03/23(日) 02:46:030586デフォルトの名無しさん
2008/03/23(日) 09:25:47SDKでレジストリを監視する方法とディレクトリツリー、またはファイルを監視して変更(名前の変更や内容の変更)を禁止する方法の2つを探しています
後者は変更を通知するAPIならあったんだけど変更をさせないで通知する方法とかないんかなと
どなたかわかる方いましたらよろしくお願いします
0587デフォルトの名無しさん
2008/03/23(日) 09:28:26アクセス権つければ禁止できるんじゃないかな。
0588デフォルトの名無しさん
2008/03/23(日) 09:29:230589デフォルトの名無しさん
2008/03/23(日) 09:47:18読み取り専用にするって事??別に読み取り専用にして他のプロセスが属性変更したら再度読み取り専用にするって感じでもいいんだけど、ほぼ完全にアクセスを遮断してみたい
>>588
今調べてみたけどよくわからんから、ちょっと試してみます
ありがとうww
0590デフォルトの名無しさん
2008/03/23(日) 10:20:14ACLを書き換えてもExplorerやRegEditで弄れるし
0591デフォルトの名無しさん
2008/03/23(日) 10:25:110592デフォルトの名無しさん
2008/03/23(日) 10:43:050593デフォルトの名無しさん
2008/03/23(日) 11:35:300594デフォルトの名無しさん
2008/03/23(日) 11:57:50万が一質問者がマルウェアの類を作っているとしたら、この手の質問に回答すると共犯とか幇助って事になるのかな
0595デフォルトの名無しさん
2008/03/23(日) 12:52:07共犯関係は成り立たないはず。
0596デフォルトの名無しさん
2008/03/23(日) 14:48:040597デフォルトの名無しさん
2008/03/23(日) 15:17:580598デフォルトの名無しさん
2008/03/23(日) 15:25:550599デフォルトの名無しさん
2008/03/23(日) 15:31:00CLANNAD ウィルスも罪状は著作権法違反。
0600デフォルトの名無しさん
2008/03/23(日) 15:34:09どうするのでしょうか? 最初のメニューから関数呼んで新しいウィンドウくらすを
どんどん登録して処理するのですか? 全体的な流れとして??
0601デフォルトの名無しさん
2008/03/23(日) 15:37:30そうみたいだなぁ
仮に成立したとして、システムに介入するタイプのソフトがワクチンのヒューリスティック検知に引っかかるとか
シェアウェアのロジックボムとかもマズいのかな
0602デフォルトの名無しさん
2008/03/23(日) 16:05:59って書いたらタイホです
0603デフォルトの名無しさん
2008/03/23(日) 18:14:240604デフォルトの名無しさん
2008/03/23(日) 18:34:01悪意がないことを証明するために捜査を受ける必要があるかもしれないが。
0605デフォルトの名無しさん
2008/03/23(日) 19:22:39そして被告==犯罪者というのが日本の社会通念でして
0606デフォルトの名無しさん
2008/03/23(日) 19:41:360607デフォルトの名無しさん
2008/03/23(日) 20:24:400608デフォルトの名無しさん
2008/03/23(日) 20:40:330609デフォルトの名無しさん
2008/03/23(日) 20:41:050610デフォルトの名無しさん
2008/03/23(日) 20:41:54( ・ω・) now shibakaring ...
○={=}〇,
|:::::::::\, ', ´
、、、、し 、、、(((.@)WWWWWWWWWWWWWWWWWWWWWWW (26%)
0611デフォルトの名無しさん
2008/03/23(日) 21:10:44どちらか一方に当てはまる質問しか出てない気がするw
0612デフォルトの名無しさん
2008/03/23(日) 22:00:140613デフォルトの名無しさん
2008/03/23(日) 22:40:510614デフォルトの名無しさん
2008/03/23(日) 23:29:210615デフォルトの名無しさん
2008/03/23(日) 23:30:44ようなダイアログボックスを設計できます。
同じようにメインのウィンドウに対してリソーススクリプト
で標準のコントロールを配置することはできないのでしょうか?
0616デフォルトの名無しさん
2008/03/23(日) 23:32:51環境スレで
0617デフォルトの名無しさん
2008/03/23(日) 23:36:58IDEを使いたくないのです。
できないということでしょうか?
0618デフォルトの名無しさん
2008/03/23(日) 23:38:410619デフォルトの名無しさん
2008/03/23(日) 23:41:220620デフォルトの名無しさん
2008/03/23(日) 23:44:250621デフォルトの名無しさん
2008/03/23(日) 23:45:210622デフォルトの名無しさん
2008/03/24(月) 05:56:160623デフォルトの名無しさん
2008/03/24(月) 06:44:49ディスクキャッシュは、そもそもできるのか?
0624デフォルトの名無しさん
2008/03/24(月) 06:47:170625デフォルトの名無しさん
2008/03/24(月) 08:48:400626デフォルトの名無しさん
2008/03/24(月) 09:50:50CharUpper / CharUpperBuff
0627デフォルトの名無しさん
2008/03/24(月) 19:53:440628デフォルトの名無しさん
2008/03/24(月) 19:54:52駄目だよ手出しちゃ…
0629デフォルトの名無しさん
2008/03/24(月) 21:30:240630デフォルトの名無しさん
2008/03/24(月) 21:56:350631デフォルトの名無しさん
2008/03/24(月) 22:30:02LoadIconは小サイズのアイコンが読み込めない時点で明らかに機能不足。
だが、通常サイズのアイコンにわざわざLoadImage使うことも絶対にないな。
0632デフォルトの名無しさん
2008/03/24(月) 22:40:460633デフォルトの名無しさん
2008/03/24(月) 22:44:57キーロガー怖くなくて嬉しいかもしれない
0634デフォルトの名無しさん
2008/03/24(月) 22:53:070635デフォルトの名無しさん
2008/03/24(月) 22:55:53どっちかってーと概念実証のにおいがしたり、解説サイトがロシア語だったりするけど
0636デフォルトの名無しさん
2008/03/24(月) 22:56:530637デフォルトの名無しさん
2008/03/24(月) 22:58:540638デフォルトの名無しさん
2008/03/24(月) 23:54:20FILE_FLAG_SEQUENTIAL_SCANも必要かも?
0639デフォルトの名無しさん
2008/03/25(火) 00:12:53それはキャッシュマネージャ用のヒントなのでFILE_FLAG_NO_BUFFERING使ってるときは関係ないはず。
まあ単なるヒントなので付けておいて悪いということもないけれど。
今後最適化に利用される可能性がないとも言えないし。
0640デフォルトの名無しさん
2008/03/25(火) 00:33:47ライトスルー属性で書いてね。
0641デフォルトの名無しさん
2008/03/25(火) 03:23:26知りたかったからキーロガーで計ってやれとダウンロードしようとしたら
圧縮ファイルを落としてきた時点でNortonに削除された
0642デフォルトの名無しさん
2008/03/25(火) 06:13:39フォルダ除外とかできるんだろうけどさ
0643デフォルトの名無しさん
2008/03/25(火) 06:16:40自分自身が依存してるモジュールのリストを持っておけば
PSAPIで列挙してフック用のモジュールを検出できるかも
0644デフォルトの名無しさん
2008/03/25(火) 06:27:570645デフォルトの名無しさん
2008/03/25(火) 06:38:200646デフォルトの名無しさん
2008/03/25(火) 09:02:33Raw Inputを使えばSetWindowsHookExの影響を受けさせないことは可能?
0647デフォルトの名無しさん
2008/03/25(火) 12:38:5148ドットアイコンがロードできないんで最近は「通常サイズ」といっても微妙。
通常では32ドットアイコンを見かけないVistaでもいまだに32ドットだからなぁ。
0648デフォルトの名無しさん
2008/03/25(火) 13:21:02相当高速でループ回さないと取りこぼしちゃうよね
0649デフォルトの名無しさん
2008/03/25(火) 15:19:28ごくあたりまえのPCのCPUなら、キーボードをスキャンしてるチップが
マトリクスをスキャンするよりずっと速くループできると思う。
0650デフォルトの名無しさん
2008/03/25(火) 15:21:430651デフォルトの名無しさん
2008/03/25(火) 15:26:130652デフォルトの名無しさん
2008/03/25(火) 15:26:24マウスカーソルさえ動かないくらいにCPUタイムを奪い撮れる。
キーロガー作ろうとすると、どこでどううまくSleepしてユーザに気付かれないかが難しそうだけど。
0653デフォルトの名無しさん
2008/03/25(火) 16:30:00変なプロセスが起動してる時点でバレるだろ
0654デフォルトの名無しさん
2008/03/25(火) 16:35:590655デフォルトの名無しさん
2008/03/25(火) 16:43:36タスクマネージャを眺めていても気付かないかも
0656デフォルトの名無しさん
2008/03/25(火) 16:45:51そういう安易な考えで作った糞アプリが
キーマクロを取りこぼして迷惑をかけるんだよ。反省しろ。
0657デフォルトの名無しさん
2008/03/25(火) 16:46:23むしろ逝ってるか
0658デフォルトの名無しさん
2008/03/25(火) 17:47:10>>643
0659デフォルトの名無しさん
2008/03/25(火) 17:48:390660デフォルトの名無しさん
2008/03/25(火) 17:52:220661デフォルトの名無しさん
2008/03/25(火) 18:38:140662デフォルトの名無しさん
2008/03/25(火) 18:49:460663デフォルトの名無しさん
2008/03/25(火) 18:55:340664デフォルトの名無しさん
2008/03/25(火) 18:56:43って物騒だから。その辺にしとき
0665デフォルトの名無しさん
2008/03/25(火) 19:17:200666デフォルトの名無しさん
2008/03/25(火) 19:38:47取りこぼしはサンプリングが多けりゃカバーできる
0667デフォルトの名無しさん
2008/03/25(火) 20:23:09VirtualAlloc→WriteProcessMemoryで実行コード埋め込んじゃえばモジュールも残らないよ
0668デフォルトの名無しさん
2008/03/25(火) 21:19:53わざわざ監視されてる可能性の高いWriteProcessMemoryを使う必要ないだろ
0669デフォルトの名無しさん
2008/03/25(火) 21:29:32これ自体CreateRemoteThreadなんかで仕込んでたら普通にセキュリティソフトが警告してくるだろう
0670デフォルトの名無しさん
2008/03/25(火) 21:30:120671デフォルトの名無しさん
2008/03/26(水) 00:30:59ダメだよ手出しちゃ…
0672デフォルトの名無しさん
2008/03/26(水) 00:42:560673デフォルトの名無しさん
2008/03/26(水) 00:55:180674デフォルトの名無しさん
2008/03/26(水) 00:56:29そもそもホットプラグ対応じゃないだろ
0675デフォルトの名無しさん
2008/03/26(水) 08:45:160676デフォルトの名無しさん
2008/03/26(水) 17:00:43ファイル名につけるの以外で。
0677デフォルトの名無しさん
2008/03/26(水) 17:10:390678デフォルトの名無しさん
2008/03/26(水) 17:14:11エクスプローラのファイルのプロパティの概要。
ファイルが構造化ストレージならファイル内に、
そうでないけどNTFSドライブ上のファイルなら副ストレージに情報を保管する。
0679デフォルトの名無しさん
2008/03/26(水) 17:46:28代替データストリームとか副次ストリームじゃないの?
0680デフォルトの名無しさん
2008/03/26(水) 17:53:380681デフォルトの名無しさん
2008/03/26(水) 21:00:40表だけでもあると助かるんですが
0682682
2008/03/26(水) 21:08:480684デフォルトの名無しさん
2008/03/26(水) 21:50:500685デフォルトの名無しさん
2008/03/26(水) 21:53:39下記サイトのツリービューの例をコンパイルしましたが、
「未定義のシンボル item(関数 AddItem )」
とエラーが返ってきます・・・。
コモンコントロールの準備「comctl32.libをプロジェクトに加える」とありますが、
もしかしてilink32.cfgに「-L"C:\borland\bcc55\Lib\PSDK"」(←comctl32.libがあった場所)
を追加するのではなかったのでしょうか?
それ以外に間違ってそうな箇所はないきがするのですが。
どうすればコンパイルがとおるか教えてもらえないでしょうか。
環境:BCC
http://www.kumei.ne.jp/c_lang/sdk2/sdk_111.htm
0686デフォルトの名無しさん
2008/03/26(水) 22:02:330687デフォルトの名無しさん
2008/03/26(水) 22:07:46俺には
「AddItemという関数内でitemというシンボルが未定義のまま使われている」
という意味にしか取れないんだが。
少しでもエラーの意味を考えたか?
0688672
2008/03/26(水) 22:08:58アナログ接続ではWM_DEVICECHANGEは飛んできませんが、
デジタル接続の時だけは飛んできます。
これはホットプラグ対応ということなのでは?
>>675
全部スキャンし直す、ということですが
デバイスマネージャのツリーに表示されるような
接続機器情報を事前と事後に取得して比較する、という理解で合っていますか?
その情報を取得するためのAPIを見つけられませんでしたので
名前など手がかりを教えてもらえませんか?
0689デフォルトの名無しさん
2008/03/26(水) 23:14:38中身(当座は\Deviceディレクトリ)を列挙したいのですが、方法がわかりません。
ネイティブAPIを使うこと、ユーザモードで可能であるということは
winobjのドキュメントからわかるのですが、具体的なアプローチやサンプルなどご存知であれば教えてください
0690685
2008/03/26(水) 23:30:34itemってのが未定義って返ってきてるのですが・・・。
commctrl.hにはTV_INSERTSTRUCTとTVITEMのどちらも定義されていそうでした。
定義ってそういう意味じゃないのでしょうか?
0691デフォルトの名無しさん
2008/03/26(水) 23:35:20エラーメッセージをコピペしてください
肝心の部分が端折られてて訳分かりません
0692デフォルトの名無しさん
2008/03/26(水) 23:37:08固定長バッファで組むとバグる?
0693デフォルトの名無しさん
2008/03/26(水) 23:39:570694デフォルトの名無しさん
2008/03/26(水) 23:43:48第一エクスプローラもそれを超えるパスをまともに扱えない。
それに俺は大したものを作っているわけではないので、
だからGetOpenFileNameとかだとMAX_PATH固定で作っている。
GetSystemDirectoryみたいに予め必要なバッファの長さを問い合わせられるときには、
問い合わせて必要な分だけ確保するけど。
0695685
2008/03/27(木) 00:04:49何故か解決しました。
拡張子がcだったのを、cppに変えたらコンパイル出来ました。
C++じゃないとコンパイル出来ないってことだったのでしょうか。
とりあえずの、メッセージすべて
bcc32 -W treevw01.c
Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
treevw01.c:
警告 W8057 treevw01.c 29: パラメータ 'hPrevInst' は一度も使用されない(関数 WinMain )
警告 W8057 treevw01.c 29: パラメータ 'lpsCmdLine' は一度も使用されない(関数 WinMain )
エラー E2451 treevw01.c 132: 未定義のシンボル item(関数 AddItem )
エラー E2451 treevw01.c 134: 未定義のシンボル item(関数 AddItem )
エラー E2451 treevw01.c 137: 未定義のシンボル item(関数 AddItem )
エラー E2451 treevw01.c 140: 未定義のシンボル item(関数 AddItem )
エラー E2451 treevw01.c 144: 未定義のシンボル item(関数 AddItem )
エラー E2451 treevw01.c 146: 未定義のシンボル item(関数 AddItem )
エラー E2451 treevw01.c 149: 未定義のシンボル item(関数 AddItem )
警告 W8019 treevw01.c 150: コードは効果を持たない(関数 AddItem )
エラー E2451 treevw01.c 152: 未定義のシンボル item(関数 AddItem )
警告 W8019 treevw01.c 153: コードは効果を持たない(関数 AddItem )
エラー E2451 treevw01.c 155: 未定義のシンボル item(関数 AddItem )
警告 W8019 treevw01.c 156: コードは効果を持たない(関数 AddItem )
エラー E2451 treevw01.c 158: 未定義のシンボル item(関数 AddItem )
警告 W8019 treevw01.c 159: コードは効果を持たない(関数 AddItem )
警告 W8004 treevw01.c 161: 'hChild2' に代入した値は使われていない(関数 AddItem )
*** 10 errors in Compile ***
0696デフォルトの名無しさん
2008/03/27(木) 00:11:390698デフォルトの名無しさん
2008/03/27(木) 00:23:44なるほど。どっちみち相手のマシンも似たような制限がありそうなもんだけどマシン名含めるとぎりぎり超えそうだな。
とりあえず問題出るまでMAX_PATH固定にしとくか。サンクス。
0699デフォルトの名無しさん
2008/03/27(木) 00:26:06よくわかんないけど、dependsにかけたら関数のアタリついたりしないかな
0700デフォルトの名無しさん
2008/03/27(木) 00:43:38余裕
NTFSではパスは最長32767文字まで
0701デフォルトの名無しさん
2008/03/27(木) 01:01:37#define DUMMYUNIONNAME u
typedef struct tagTVINSERTSTRUCTA {
略
#if (_WIN32_IE >= 0x0400)
union
{
TVITEMEXA itemex;
TV_ITEMA item;
} DUMMYUNIONNAME;
略
になるとか。
0702デフォルトの名無しさん
2008/03/27(木) 05:05:55で、MSDNのLocalFreeの項見ると
>この関数は、16 ビット版 Windows との互換性のために提供されています。
と書いてあるんだけど、深く気にする必要ないの?
というか最近の窓プログラムに普通に利用しても無問題?
0703デフォルトの名無しさん
2008/03/27(木) 06:08:11使ってるAPIはごく知られたもので、
ntdll.dllからGetProcAddressしていると思われるAPI(バイナリに文字列として保存されてる関数)も
そのものずばりというのはないようです
それでも臭いのが2・3あるにはあるんですが(たとえばNtQueryObject)
調べても名前空間の調査に関する情報って全然ないので、
臭い関数をどう組み合わせるのか、とかで先に進めないという感じです
0704デフォルトの名無しさん
2008/03/27(木) 08:51:06Windowsには、Win16時代からあるAPIがたくさんあるんだよ。
既にそういう仕様にしてしまった以上、いまさら変更はできない。
そもそも、LPTSTR型の引数に、PVOID *型を渡すこと自体が、
おかしいと思わないか?
だから一番いい方法は、FORMAT_MESSAGE_ALLOCATE_BUFFER自体を使わないことだな。
0705デフォルトの名無しさん
2008/03/27(木) 09:10:08サンプルコード等ありましたら
教えて頂きたいです。
0706デフォルトの名無しさん
2008/03/27(木) 13:33:14>>705
ググれカス
0707デフォルトの名無しさん
2008/03/27(木) 13:36:31知らないならレスするなカス
0708デフォルトの名無しさん
2008/03/27(木) 14:07:17普通に探せばあるよ
昔使った覚えがある
0709デフォルトの名無しさん
2008/03/27(木) 14:46:55質問するならエラそーにするなカス
0710デフォルトの名無しさん
2008/03/27(木) 14:50:28知らないならレスするなカス
0711デフォルトの名無しさん
2008/03/27(木) 15:06:21知らないなら質問するなカス
0712デフォルトの名無しさん
2008/03/27(木) 15:09:55知らないなら質問するなカス
0713デフォルトの名無しさん
2008/03/27(木) 15:16:41知らないならレスするなカス
0714デフォルトの名無しさん
2008/03/27(木) 15:18:44知らないならレスするなカス
0715デフォルトの名無しさん
2008/03/27(木) 15:22:33知らないならレスするなカス
0716デフォルトの名無しさん
2008/03/27(木) 15:23:25その人は俺じゃないすよ
0717デフォルトの名無しさん
2008/03/27(木) 15:29:08ヒント:春休み
0718デフォルトの名無しさん
2008/03/27(木) 16:35:57だから何?
0719デフォルトの名無しさん
2008/03/27(木) 16:40:060720デフォルトの名無しさん
2008/03/27(木) 16:40:490721デフォルトの名無しさん
2008/03/27(木) 16:45:190722デフォルトの名無しさん
2008/03/27(木) 16:48:400723デフォルトの名無しさん
2008/03/27(木) 17:44:420724デフォルトの名無しさん
2008/03/27(木) 17:47:59俺は貧乏だ
>>723 は俺じゃないから貧乏じゃない
なんかいいもん奢ってくれ
0725デフォルトの名無しさん
2008/03/27(木) 18:31:260726デフォルトの名無しさん
2008/03/27(木) 18:34:070727デフォルトの名無しさん
2008/03/27(木) 18:59:57何か根本的に間違っているのでしょうか?
このソースではデスクトップの(0,0)-(100,100)までを自ウインドウに貼り付けようとしているつもりです
// 自ウインドウを非表示にする
rgn = CreateRectRgn(0, 0, 0, 0);
SetWindowRgn(wnd, rgn, true);
// 別ウインドウの内容をメモリにコピー
HDC hdc_src = GetDC(GetDesktopWindow());
HDC hmdc_src = CreateCompatibleDC(hdc_src);
BitBlt(hmdc_src, 0, 0, 100, 100, hdc_src, 0, 0, SRCCOPY);
// 自ウインドウを元に戻す
SetWindowRgn(wnd, NULL, true);
HDC hdc_dest = GetDC(wnd);
// メモリ→自ウインドウ
BitBlt(hdc_dest, 0, 0, 100, 100, hmdc_src, 0, 0, SRCCOPY);
0728デフォルトの名無しさん
2008/03/27(木) 19:02:39ビットマップを選択させないと使い物にならない。
0729デフォルトの名無しさん
2008/03/27(木) 19:04:04つくったばかりのCompatibleDCには、たしかモノクロ1x1ビットマップしか選択されてないので
そのままビットマップの転送バッファとして使うことはできない
CreateCompatibleBitmapかなんかで必要なバッファを作ってSelectObjectする必要がある
(当然、選択したものは後で選択解除して、作ったものは後で破棄するべき)
0730デフォルトの名無しさん
2008/03/27(木) 19:04:09メモリDCは、CreateCompatibleDCだけでは作れない。
CreateCompatibleBitmap で bitmap も作って SelectObject して
あげないといけない。
それから非表示にした直後にコレやっても、先方のウィンドウ等が
まだ再描画されていない可能性が高いよ。適当にSleepするとか
WM_PAINTをSendしてみるとか、何か対策が必要。
0731デフォルトの名無しさん
2008/03/27(木) 19:05:21即レスありがとうございます
0732デフォルトの名無しさん
2008/03/27(木) 19:06:35せめてInvaridateRectとかWM_PRINTとかにしようよ。
0733デフォルトの名無しさん
2008/03/27(木) 19:15:17SendしたりPostしたりするものではないのは確かなんだけど、
実用的にはこれで不自由しないというか・・・
UpdateWindow が無難かも知れない。
0734デフォルトの名無しさん
2008/03/27(木) 19:18:09なんとかできました
本当にありがとうございます
0735デフォルトの名無しさん
2008/03/27(木) 19:24:41ユーザがWM_PAINTを投げたことを検出して、
正規の再描画のプロセスが行われるようにしているなんてことをやっていそうだな。
0736デフォルトの名無しさん
2008/03/27(木) 19:28:070737デフォルトの名無しさん
2008/03/27(木) 19:30:53MSDNライブラリには「更新リージョンが空でなければ」という但し書きが付いている。
0738デフォルトの名無しさん
2008/03/27(木) 19:31:26流石に更新領域がなければ送信しないけど。
0739デフォルトの名無しさん
2008/03/28(金) 00:21:48DirectXのサンプルのバグで、VistaでIMEの変換ウィンドウが表示されない問題があったそうですが、
同じ症状で悩んでます。
case WM_IME_SETCONTEXT:
lParam &= ~ISC_SHOWUIALL;
return DefWindowProc(hWnd, msg, wParam, lParam);
WM_IME_SETCONTEXTメッセージが来たときに、ISC_SHOWUIALLフラグを
クリアしてDefWindowProcに渡せばいいと聞いたのですが、
間違いなのでしょうか。
どこかにVistaで独自変換ウィンドウが動くサンプルがあれば教えてください。
0740689
2008/03/28(金) 00:25:23NtQueryDirectoryObject がファイルシステムのディレクトリではなくて
オブジェクトマネージャのディレクトリ用だったみたい
解ればしょぼいけど報告まで
0741デフォルトの名無しさん
2008/03/28(金) 00:53:34http://d.hatena.ne.jp/NyaRuRu/20070308
0742デフォルトの名無しさん
2008/03/28(金) 00:56:56サンクスコ
型なんて突き詰めれば同じようなポインタや数値なんだから気にしません><
とか言ってるから進歩しないんだけども
使うときは気をつけます
0743デフォルトの名無しさん
2008/03/28(金) 04:12:02例えばRGB(0,0,0)以外の部分のリージョンを作成するなど
0744デフォルトの名無しさん
2008/03/28(金) 11:39:57イメージとしては、UpdateWindowはキューにあるWM_PAINTをつかんで直接投げるイメージ
InvalidateRectでWM_PAINTを発生させ、直後にUpdateWindowで描画させる、というのはよくやる。
0745デフォルトの名無しさん
2008/03/28(金) 12:02:01未解決の外部シンボルが参照されました、と出ます。
Mlang.hをインクルードするだけじゃ駄目なのでしょうか?
0746デフォルトの名無しさん
2008/03/28(金) 12:10:40キューが空で、かつウィンドウに更新領域があるときに GetMessage が
呼び出されると、おもむろに発生する。
自前で Post したり Send したり UpdateWidnow すれば、通常のウィンドウ
メッセージと同じように動作する。同一スレッド内からの Send に至っては
キューにも入らずWindow プロシージャへの呼び出しになる。
0747デフォルトの名無しさん
2008/03/28(金) 12:13:03mlang.lib がないなら、↓のように動的に解決するとか。
http://nsoft.blog60.fc2.com/blog-entry-646.html
0748デフォルトの名無しさん
2008/03/28(金) 12:13:12RedrawWindowを使えばいいじゃない
そんな事ぐらいにわざわざ2つもAPIを呼び出すなんて面倒で馬鹿げてる
0749デフォルトの名無しさん
2008/03/28(金) 12:53:26mlang.libをプロジェクトに追加しる
0750デフォルトの名無しさん
2008/03/28(金) 13:19:17mlang.libはVS2005にはありませんでした。
0751デフォルトの名無しさん
2008/03/28(金) 13:37:09そうですか
0752デフォルトの名無しさん
2008/03/28(金) 13:39:410753デフォルトの名無しさん
2008/03/28(金) 13:41:00VSでの作り方を今探しています。
0754デフォルトの名無しさん
2008/03/28(金) 13:51:210755デフォルトの名無しさん
2008/03/28(金) 13:53:300756デフォルトの名無しさん
2008/03/28(金) 14:00:210757デフォルトの名無しさん
2008/03/28(金) 14:05:460758デフォルトの名無しさん
2008/03/28(金) 14:07:340759デフォルトの名無しさん
2008/03/28(金) 14:09:280760759
2008/03/28(金) 14:10:12Dialogのプロシージャで処理しなくてもいいので気になったので書きました。
0761デフォルトの名無しさん
2008/03/28(金) 14:21:500762デフォルトの名無しさん
2008/03/28(金) 14:24:420763デフォルトの名無しさん
2008/03/28(金) 14:59:450764デフォルトの名無しさん
2008/03/28(金) 15:39:100765デフォルトの名無しさん
2008/03/28(金) 16:14:16#pragma comment(lib,"mlang.lib")
としても解決出来なかったのですが、
0766デフォルトの名無しさん
2008/03/28(金) 16:31:48解決できないというのは、何がどうなってできないとわかったの?
0767デフォルトの名無しさん
2008/03/28(金) 17:11:28エラー内容は
未解決の外部シンボル _ConvertINetStrimg@28が関数mainで参照されました。
error LNK1120 外部参照1が未解決です。
と出ます。
0768デフォルトの名無しさん
2008/03/28(金) 17:25:460769デフォルトの名無しさん
2008/03/28(金) 17:29:20お前がスペルミスしてるからだろ
0770デフォルトの名無しさん
2008/03/28(金) 17:37:41すみません。
0771デフォルトの名無しさん
2008/03/28(金) 17:40:080772デフォルトの名無しさん
2008/03/28(金) 17:53:34ところがMSDNライブラリでConvertINetStringを引くと、
Import library: Noneなんだな。
0773デフォルトの名無しさん
2008/03/28(金) 18:08:09#include <windows.h>
#define STDAPI extern __declspec(dllexport) HRESULT
STDAPI IsConvertINetStringAvailable(DWORD dwSrcEncoding, DWORD dwDstEncoding) { return 0; }
STDAPI ConvertINetString(LPDWORD lpdwMode, DWORD dwSrcEncoding, DWORD dwDstEncoding, LPCSTR lpSrcStr, LPINT lpnSrcSize, LPSTR lpDstStr, LPINT lpnDstSize) { return 0; }
STDAPI ConvertINetMultiByteToUnicode(LPDWORD lpdwMode, DWORD dwEncoding, LPCSTR lpSrcStr, LPINT lpnMultiCharCount, LPWSTR lpDstStr, LPINT lpnWideCharCount) { return 0; }
STDAPI ConvertINetUnicodeToMultiByte(LPDWORD lpdwMode, DWORD dwEncoding, LPCWSTR lpSrcStr, LPINT lpnWideCharCount, LPSTR lpDstStr, LPINT lpnMultiCharCount) { return 0; }
0774デフォルトの名無しさん
2008/03/28(金) 18:09:21#undef STDAPI
が必要だった
0775デフォルトの名無しさん
2008/03/28(金) 18:09:250776デフォルトの名無しさん
2008/03/28(金) 18:29:14すまん、Web系の方に付いてくるのかと思ったが最初から無いのか
それにしても、プロトタイプ宣言があるのにインポートライブラリが付いてないって謎だな
英語版Windowsとかでdllが入ってない環境があるのかな
0777デフォルトの名無しさん
2008/03/28(金) 19:13:04ひょっとして間違ってますか?
0778デフォルトの名無しさん
2008/03/28(金) 19:28:150779デフォルトの名無しさん
2008/03/28(金) 19:29:160780デフォルトの名無しさん
2008/03/28(金) 19:32:260781デフォルトの名無しさん
2008/03/28(金) 19:46:54ただ、中でIMultiLanguage::ConvertStringを呼んでいると書いてあり、
IMultiLanguageはIE 4以上となっている。
0782デフォルトの名無しさん
2008/03/28(金) 19:50:280783デフォルトの名無しさん
2008/03/28(金) 20:05:18条件をオーナーかつ非表示にすると余計なウィンドウが混ざりまくりでうまくいきません。
0784デフォルトの名無しさん
2008/03/28(金) 20:12:54間違ってますか?
0785デフォルトの名無しさん
2008/03/28(金) 20:16:420786デフォルトの名無しさん
2008/03/28(金) 20:27:14通知領域ってなんでタスクトレイって呼ばれるのだろう?
0787デフォルトの名無しさん
2008/03/28(金) 20:29:190788sage
2008/03/28(金) 20:32:19http://homepage2.nifty.com/c-labo/STL_Array2D.html
を実行したのですが、
「'vector' は 'std' のメンバーではない」とエラーメッセージが返ってきました。
他のサイトを見る限りは「標準C++ライブラリが提供」とあるので実行出来ない理由がわかりません。
わかる方がおられれば答えてもらえないでしょうか?
0789デフォルトの名無しさん
2008/03/28(金) 20:39:510791デフォルトの名無しさん
2008/03/28(金) 20:57:39どうやればLIBファイルを作成出来るのですか?
0792デフォルトの名無しさん
2008/03/28(金) 21:30:59まずはGoogleの使い方を覚えよう。話はそれからだ。
0793デフォルトの名無しさん
2008/03/28(金) 21:36:50まずはDEFファイルを生成すればいいんですかね?
(´・ω・`)
0794デフォルトの名無しさん
2008/03/28(金) 21:37:270795デフォルトの名無しさん
2008/03/28(金) 21:40:41LIB
0796デフォルトの名無しさん
2008/03/28(金) 21:40:42どこのスレッドなら大丈夫なのですか?
(´・ω・`)
0797デフォルトの名無しさん
2008/03/28(金) 21:45:080798デフォルトの名無しさん
2008/03/28(金) 21:48:57答えが出てるじゃないか >>795を穴があくほど見れ
0799デフォルトの名無しさん
2008/03/28(金) 22:39:17したんですが
『ステートメントはターゲット プラットフォームでサポートされていません。』
と出ます。
何でなのですか?
(´・ω・`)
0800デフォルトの名無しさん
2008/03/28(金) 22:42:45* * * * * * * * * **
* * * ** * ** * ** *
* * * * * *. ∧_∧ * ** * * *
* * * * * * (´・ω・`) * * * * * *
* * * * * *. (o o ) * * * * * *
* * * * * *. `u *u' * * ** * **
0801デフォルトの名無しさん
2008/03/28(金) 22:43:400802デフォルトの名無しさん
2008/03/28(金) 23:14:264行目、右から2番目の穴は俺のな
0803デフォルトの名無しさん
2008/03/28(金) 23:42:050804デフォルトの名無しさん
2008/03/28(金) 23:50:58何に?
(´・ω・`)
0805デフォルトの名無しさん
2008/03/29(土) 00:41:00750 名前:デフォルトの名無しさん[] 投稿日:2008/03/28(金) 13:19:17
753 名前:デフォルトの名無しさん[] 投稿日:2008/03/28(金) 13:41:00
765 名前:デフォルトの名無しさん[] 投稿日:2008/03/28(金) 16:14:16
767 名前:デフォルトの名無しさん[] 投稿日:2008/03/28(金) 17:11:28
770 名前:デフォルトの名無しさん[] 投稿日:2008/03/28(金) 17:37:41
777 名前:デフォルトの名無しさん[] 投稿日:2008/03/28(金) 19:13:04
782 名前:デフォルトの名無しさん[] 投稿日:2008/03/28(金) 19:50:28
784 名前:デフォルトの名無しさん[] 投稿日:2008/03/28(金) 20:12:54
791 名前:デフォルトの名無しさん[] 投稿日:2008/03/28(金) 20:57:39
793 名前:デフォルトの名無しさん[] 投稿日:2008/03/28(金) 21:36:50
796 名前:デフォルトの名無しさん[] 投稿日:2008/03/28(金) 21:40:42
799 名前:デフォルトの名無しさん[] 投稿日:2008/03/28(金) 22:39:17
804 名前:デフォルトの名無しさん[] 投稿日:2008/03/28(金) 23:50:58
春休み中の糞餓鬼ですよね
あなたにプログラミングは向いていないので諦めたらどうですか?
(´・ω・`)
0806デフォルトの名無しさん
2008/03/29(土) 00:41:540807デフォルトの名無しさん
2008/03/29(土) 00:45:05(´・ω・`)
0808デフォルトの名無しさん
2008/03/29(土) 00:49:02理由くらい言ってくれよ
(´・ω・`)
0809デフォルトの名無しさん
2008/03/29(土) 00:50:21お前の方がうざい
(´・ω・`)
0810デフォルトの名無しさん
2008/03/29(土) 00:51:34(´・ω・`)
0811デフォルトの名無しさん
2008/03/29(土) 00:54:17(´・ω・`)
0812デフォルトの名無しさん
2008/03/29(土) 00:55:160813デフォルトの名無しさん
2008/03/29(土) 00:58:40↓
DEFファイルからLIBファイル出力
↓
#pragma comment()使う。
mlang.libが2KBしかない…
自分が間違ってるっぽい。
(´・ω・`)
0814デフォルトの名無しさん
2008/03/29(土) 01:03:25いい加減スレ違いだからVisualStudioのスレにでも行け
(´・ω・`)
0815デフォルトの名無しさん
2008/03/29(土) 01:04:37わかった
(´・ω・`)ノシ
0816デフォルトの名無しさん
2008/03/29(土) 07:41:340817デフォルトの名無しさん
2008/03/29(土) 14:06:51カスが
0818デフォルトの名無しさん
2008/03/29(土) 15:36:280819デフォルトの名無しさん
2008/03/29(土) 16:12:54英語が出来ない日本人の典型例だな
0820デフォルトの名無しさん
2008/03/29(土) 16:18:390821デフォルトの名無しさん
2008/03/29(土) 16:56:390822デフォルトの名無しさん
2008/03/29(土) 17:07:030823デフォルトの名無しさん
2008/03/29(土) 17:09:280824デフォルトの名無しさん
2008/03/29(土) 17:11:100825デフォルトの名無しさん
2008/03/29(土) 17:42:29そういうことは一度LibralyをLibraryと書いたものとみなしてその後で「で、Libralyって何?(笑)」とか書いたほうがいいですよ
>>820-824
だからID無しの板で何を(ry
0827デフォルトの名無しさん
2008/03/29(土) 18:10:020828デフォルトの名無しさん
2008/03/29(土) 18:12:11http://www.nhk.or.jp/special/libraly/05/l0011/l1105.html
0829デフォルトの名無しさん
2008/03/29(土) 18:31:10ttp://www.nhk.or.jp/special/libraly/
0830デフォルトの名無しさん
2008/03/29(土) 19:06:500831デフォルトの名無しさん
2008/03/29(土) 19:55:170832デフォルトの名無しさん
2008/03/29(土) 20:02:56型名が必要 というエラーが出ます。
何故でしょうか?
0833デフォルトの名無しさん
2008/03/29(土) 20:14:01void CALLBACK TimerProc(void*,unsingned int,unsingned int,unsingned int)
0834デフォルトの名無しさん
2008/03/29(土) 20:20:14本の通りに書いてるのですが・・
0835デフォルトの名無しさん
2008/03/29(土) 20:23:430836デフォルトの名無しさん
2008/03/29(土) 20:29:33×unsingned
○unsigned
0837デフォルトの名無しさん
2008/03/29(土) 20:30:22{
//処理
}
case WM_CREATE:
SetTimer(hWnd, ATIMER, 100, TimerProc);
こんな感じなのですが、定義されてますよね?
0838デフォルトの名無しさん
2008/03/29(土) 20:33:140839デフォルトの名無しさん
2008/03/29(土) 20:36:53'void (__stdcall *)(HWND__ *,unsigned int,unsigned int,unsigned long)' 型に変換できない(関数 __stdcall WndProc(HWND__ *,unsigned int,unsigned int,long) )
パラメータ 'lpTimerFunc' は void (__stdcall *)(HWND__ *,unsigned int,unsigned int,unsigned long) 型として定義されているので
void (__stdcall *)(void *,unsigned int,unsigned int,unsigned int) は渡せない(関数 __stdcall WndProc(HWND__ *,unsigned int,unsigned int,long) )
unsignedに直して、>>833にしてみると、エラーが上記のものに変わったので、
void CALLBACK TimerProc(HWND__ *,unsigned int, unsigned int, unsigned long)
にするとコンパイルできました
ありがとうございました
>>838
Cは勉強したつもりなのですが、足りないみたいです
すみませんでした
0840デフォルトの名無しさん
2008/03/29(土) 20:40:270841デフォルトの名無しさん
2008/03/29(土) 20:56:14なんだと思ってたんだ
0842デフォルトの名無しさん
2008/03/29(土) 21:01:160843デフォルトの名無しさん
2008/03/29(土) 21:05:00スペルミスして遊ぶのが流行ってるのか?
0844デフォルトの名無しさん
2008/03/29(土) 21:06:44それってincludeするものが足りてないか、defineがおかしいってことでしょ?
本人がいいなら別にいいけど、正常な環境じゃないような。
0845デフォルトの名無しさん
2008/03/29(土) 21:08:040846デフォルトの名無しさん
2008/03/29(土) 21:11:36質問したものですが、>>843を見て>>832のUNITをUINTにするとコンパイルできました
unsigned int だからUINTなんですね・・・
これからは気をつけます・・
0847デフォルトの名無しさん
2008/03/29(土) 21:13:45そういうオチだったのか
0848デフォルトの名無しさん
2008/03/29(土) 21:17:12と言いたいがプログラミング始めた頃なんてそんなもんだわ
0849デフォルトの名無しさん
2008/03/29(土) 21:18:460850デフォルトの名無しさん
2008/03/29(土) 21:51:450851デフォルトの名無しさん
2008/03/29(土) 21:56:500852デフォルトの名無しさん
2008/03/29(土) 21:58:31想像したらペプシ吹いたwww
0853デフォルトの名無しさん
2008/03/29(土) 22:38:470854デフォルトの名無しさん
2008/03/29(土) 23:03:420855デフォルトの名無しさん
2008/03/29(土) 23:15:330856デフォルトの名無しさん
2008/03/30(日) 00:52:010857デフォルトの名無しさん
2008/03/30(日) 04:53:50頑張れば未定義のシンボルぐらい検出できる気がするがな
0858デフォルトの名無しさん
2008/03/30(日) 07:12:460859デフォルトの名無しさん
2008/03/30(日) 08:12:590860デフォルトの名無しさん
2008/03/30(日) 14:11:58typedef int itn;
typedef int nit;
typedef UINT IUNT;
typedef UINT UNIT;
typedef UINT UITN;
:
//test.c
#include <windows.h>
#include "typo.h"
VOID CALLBACK TimerProc(HWND hWnd, UNIT uMsg, UNIT idEvent, DWORD dwTime);
こうやってタイプミスしそうな別名を大量に定義しておけばいい
0861デフォルトの名無しさん
2008/03/30(日) 14:17:090862デフォルトの名無しさん
2008/03/30(日) 14:35:120863デフォルトの名無しさん
2008/03/30(日) 14:41:550864デフォルトの名無しさん
2008/03/30(日) 15:02:200865デフォルトの名無しさん
2008/03/30(日) 15:47:230866デフォルトの名無しさん
2008/03/30(日) 16:09:440867デフォルトの名無しさん
2008/03/30(日) 16:27:170868デフォルトの名無しさん
2008/03/30(日) 16:29:540869デフォルトの名無しさん
2008/03/30(日) 17:06:520870デフォルトの名無しさん
2008/03/30(日) 17:19:26どういうのを期待してるのか書けよ。
普通に呼び出すしかねーだろ。
0871デフォルトの名無しさん
2008/03/30(日) 18:23:26if (!LoadMultipleLibrary(4, &handles, "advapi32.dll", "comctl32.dll", "shell32.dll", "shlwapi.dll")) {
exit(-1);
}
こういうAPIが欲しいんじゃね?
0872デフォルトの名無しさん
2008/03/30(日) 18:30:200873デフォルトの名無しさん
2008/03/30(日) 18:47:23struct LoadMultipleLibraryA
{
HMODULE* modules;
LoadMultipleLibraryA(HMODULE* modules)
: modules(modules)
{}
LoadMultipleLibraryA<N-1> operator ()(const char* dllname)
{
if (!(this->modules[N-1] = ::LoadLibraryA(dllname)))
exit(N);
return LoadMultipleLibraryA<N-1>(this->modules);
}
};
template <>
struct LoadMultipleLibraryA<0>
{
LoadMultipleLibraryA(HMODULE*)
{}
};
int main()
{
HMODULE modules[4];
LoadMultipleLibraryA<RTL_NUMBER_OF(modules)>(modules)
("ntdll.dll")("kernel32.dll")("user32.dll")("gdi32.dll");
return 0;
}
練習
0874デフォルトの名無しさん
2008/03/30(日) 18:48:150875デフォルトの名無しさん
2008/03/30(日) 18:53:150876デフォルトの名無しさん
2008/03/30(日) 18:55:36#define _ILFree_Ordinal 155
FARPROC funcs[4];
if (!GetMultipleProcAddress(hShell, 4, funcs, "SHGetFileInfoA", "SHGetSpecialFolderPathA", "SHGetPathFromIDListA", _ILFree_Ordinal)) {
exit(-1);
}
さあ次はGetProcAddressも作るんだ
サンプルのような序数渡しにも対応すべし
0877デフォルトの名無しさん
2008/03/30(日) 19:59:030878818
2008/03/30(日) 20:10:08アウト
0879デフォルトの名無しさん
2008/03/30(日) 20:29:080880デフォルトの名無しさん
2008/03/30(日) 21:58:44右クリック->定義に移動
でWinDef.hに移動した後、WPARAMの定義にあるUINT_PTRで右クリックしたらVC++がハングアップする人いる?
UINT_PTR以外でもなるけど絶対ハングアップするから再インストールしたけど意味なかった。。。
それに普通に使ってても右クリックでハングする事もあるしww
これ、なんていう仕様?
0881デフォルトの名無しさん
2008/03/30(日) 22:01:450882デフォルトの名無しさん
2008/03/30(日) 22:30:42やってみたけどハングしなかった。ほかに条件があるみたいだな。
0883デフォルトの名無しさん
2008/03/30(日) 22:31:392008StdのC++/CLIプロジェクトにて現象は確認できず。
x64のXPとか使ってない? あれとVS2008の組み合わせは入力周りが鬼門らしいぜ。
0884デフォルトの名無しさん
2008/03/30(日) 22:32:41複雑にテンプレートを使っているほうが悪いと諦めている。
0885デフォルトの名無しさん
2008/03/30(日) 23:06:39"IntelliSenseを更新してます"って表示してる時だったらある
0886880
2008/03/30(日) 23:27:29情報ありがとう
俺もつい最近ハングが頻繁に起こるようになったから何か原因があると思うんだけど…ぐぐっても関連した情報とかないし
ちょっと調べてみたらハング時にタスクマネージャーで実行中のアプリケーションを見たらVC++が2つあってプロセスを確認すると1つはVCExpress.exeで1つはexplorer.exeなんだよな…
とりまexplorer.exeが怪しいからもうちょっと状態調べてみます
レスくださった人達ありがとうww
0887デフォルトの名無しさん
2008/03/30(日) 23:47:211000BASE-Tで接続したLAN上の別のPCに10MB送るのに5秒くらいかかっています。
これを1秒くらいに短縮したいのですが、名前付きパイプを使うのをやめる前に、
名前付きパイプの速度を調べたことのあるかたにお伺いします。
10MBを5秒というのは普通ですか? それとも遅いほうですか?
0888デフォルトの名無しさん
2008/03/30(日) 23:59:511000BASE-Tの規格に対してはすこぶる遅いが、
データをハードディスクから読み出す時間がかかってるんじゃないか?
ハードディスクから読み込まないでデタラメなデータを送信してみ?
0889デフォルトの名無しさん
2008/03/31(月) 00:34:46今時のHDDなんて80MB/s出るぜ
0890887
2008/03/31(月) 00:37:21メモリ→メモリです。
同一PC上でも
\\hostname\pipe\pipename
だと4秒くらいかかります。
\\.\pipe\pipename
だと一瞬です。
0891デフォルトの名無しさん
2008/03/31(月) 01:22:230892887
2008/03/31(月) 02:36:180.3秒に短縮できました。
ありがとうございました。
Windows Server付属のネットワークモニタで確認したところ、
Read要求への返答は即座に返ってきているが、次のRead要求を出すまでに妙な間がありました。
また、一回にRead要求するサイズが4292バイトと中途半端でした。
ふと思いついて、↓のコードのようにReadFileの第三引数の値を小さく制限してみたら、速くなりました。
*lpNumberOfBytesRead = 0 ;
DWORD dwRemainSize = nNumberOfBytesToRead ;
BYTE* p = (BYTE*)lpBuffer ;
while(dwRemainSize != 0) {
DWORD dwThisTimeReadDoneSize ;
// if (ReadFile(hFile, p, dwRemainSize, &dwThisTimeReadDoneSize, NULL)) { // 変更前
if (ReadFile(hFile, p, __min(dwRemainSize, 4096), &dwThisTimeReadDoneSize, NULL)) { // 変更後
dwRemainSize -= dwThisTimeReadDoneSize ;
p += dwThisTimeReadDoneSize ;
*lpNumberOfBytesRead += dwThisTimeReadDoneSize ;
} else {
return FALSE ;
}
}
0893デフォルトの名無しさん
2008/03/31(月) 02:59:550894デフォルトの名無しさん
2008/03/31(月) 04:07:230895デフォルトの名無しさん
2008/03/31(月) 05:33:12それだと特定のウインドウしか取得できませんよね?
0896デフォルトの名無しさん
2008/03/31(月) 05:42:350897デフォルトの名無しさん
2008/03/31(月) 05:51:37シラネ
0898デフォルトの名無しさん
2008/03/31(月) 06:21:37一瞬だけ自分のウィンドウを非表示にする、ってわけにはいかんの?
0899デフォルトの名無しさん
2008/03/31(月) 10:20:51それだと一瞬ちらつきますよね?
0900デフォルトの名無しさん
2008/03/31(月) 10:23:53↓
Vista以降のDWM有効になっている環境でしか使えない
0901デフォルトの名無しさん
2008/03/31(月) 11:09:13じゃできないのかな
0902デフォルトの名無しさん
2008/03/31(月) 11:23:27見本作ってよ
0903デフォルトの名無しさん
2008/03/31(月) 12:03:34MFCでもめんどくさいけど
0904デフォルトの名無しさん
2008/03/31(月) 12:18:40コード量が少ない分、生産性は上がるかもしれないが、融通が利かないプログラムになる。
俺ははAPIの方が好きだ。プログラム量は多くなるけど。
0905デフォルトの名無しさん
2008/03/31(月) 12:19:340906デフォルトの名無しさん
2008/03/31(月) 12:23:55EnumWindows+コールバックで目的のウィンドウ探して
コンパチブルDCとビットマップ作って
PrintWindowで描画する
これをC言語で書くだけ
0907デフォルトの名無しさん
2008/03/31(月) 12:33:390908デフォルトの名無しさん
2008/03/31(月) 13:10:35>>893じゃないけど、ちょっと興味を持ったので試してみたが、これ面白いな。
DirectXで描画されているゲームのウインドウを別のウインドウで隠してみても、問題なく表示できるし、
しかも、ゲームもサムネイルも、一切フレーム落ちしない。
いい時代になったもんだ。
でも、トップレベルウインドウじゃないとダメって制限はちょっと気に食わないな。
予想だけど、サムネイルの実装が、DWMの各ウインドウごとのサーフェイスに直接描画しているからなんだろうか。
0909デフォルトの名無しさん
2008/03/31(月) 13:14:200910デフォルトの名無しさん
2008/03/31(月) 13:15:420911デフォルトの名無しさん
2008/03/31(月) 13:20:01勝手にレイヤードウィンドウにすると動かないソフトなんてAeroGlassでもまともに動かないと思うが
0912デフォルトの名無しさん
2008/03/31(月) 13:23:000913デフォルトの名無しさん
2008/03/31(月) 13:23:480914デフォルトの名無しさん
2008/03/31(月) 14:32:050915デフォルトの名無しさん
2008/03/31(月) 14:38:050916デフォルトの名無しさん
2008/03/31(月) 14:40:59(プレーヤソフト等で描画内容だけ返すようにするとか)
から、ウィンドウ全体のキャプチャとして必ず使えるわけでもないんで注意
0917デフォルトの名無しさん
2008/03/31(月) 15:21:22どうもありがとうございました。
0918デフォルトの名無しさん
2008/03/31(月) 15:57:10"C:\\Program Files\\DevStudio\\MyProjects\\test\\test.bmp",
IMAGE_BITMAP,0,0,LR_LOADFROMFILE);
これだとOK ファイルから画像が読み込める。
だけど、
hBitmap=(HBITMAP)LoadImage(hInstance,
"IDB_BITMAP1",IMAGE_BITMAP,0,0,
LR_CREATEDIBSECTION);
これだとリソースから画像が読み込めない。
#include "resource.h" も入れてあるし
IDB_BITMAP1 というリソースも
入ってる。
LR_CREATEDIBSECTIONを 0 にしたり
"IDB_BITMAP1" の前に TEXTとか書いたりもしたが駄目。
何でだろう? (VC++ 5.0)
0919デフォルトの名無しさん
2008/03/31(月) 16:04:57こんな古いコンパイラ使ってる奴がそんな初歩的な事も知らないなんて
どういう訳なのか小一時間問い詰めたい
0920デフォルトの名無しさん
2008/03/31(月) 16:08:500921918
2008/03/31(月) 16:16:27MAKEINTRESOURCE(IDB_BITMAP1),
IMAGE_BITMAP,0,0,0);
って事でいいのかな?
ちなみに、エラーや警告は0です。
くだらん質問ですまん。
0922918
2008/03/31(月) 16:17:58やっぱり if(hBitmap==NULL)
で調べるとロード出来てないみたいだ
0923デフォルトの名無しさん
2008/03/31(月) 16:18:13> IDB_BITMAP1 というリソースも
>入ってる。
"IDB_BITMAP1" というリソースが入ってないのが原因です。
"IDB_BITMAP1"で作るか、IDB_BITMAP1のままなら >>920
ほんとに初歩的な質問
0924デフォルトの名無しさん
2008/03/31(月) 16:22:5210年前からタイムスリップしてきたのか?w
0925デフォルトの名無しさん
2008/03/31(月) 16:25:100926デフォルトの名無しさん
2008/03/31(月) 16:29:56モジュール化の際、何か注意すべき事はありますか?
0927デフォルトの名無しさん
2008/03/31(月) 16:31:07で実行してから>>922のレス、と。
その間2分足らず。もう少し考えてみろと言いたい。
0928デフォルトの名無しさん
2008/03/31(月) 16:31:13ネタにしてはくだらん
マジならスレ違い
0929デフォルトの名無しさん
2008/03/31(月) 17:35:37とかいう類いのタイトルの糞本を手にして、
がんばってVC++5.0をピーコしてきたんじゃね?
タイトルやサブタイトルに
特定のVCのバージョンを書いてるような
そういう本は十中八九、糞本だ。
0930デフォルトの名無しさん
2008/03/31(月) 17:37:090931デフォルトの名無しさん
2008/03/31(月) 17:44:150932デフォルトの名無しさん
2008/03/31(月) 18:00:08PEヘッダにコンソールって書いてあって、
与えられたコンソールを握ってるから。
0933デフォルトの名無しさん
2008/03/31(月) 18:09:42コンソールアプリの中でコンソールアプリを呼び出しても新しいウインドウは現れないじゃないですか、あれが不思議で・・・。
>>932
PEヘッダですか、調べてみます。
ありがとうございました。
0934デフォルトの名無しさん
2008/03/31(月) 18:56:050935デフォルトの名無しさん
2008/03/31(月) 19:02:22コンソールのウィンドウ=昔のパソコンのディスプレイ
他のプログラム起動するたびにディスプレイそのものがいくつも出ては来ないだろ
そういう挙動(って言うほどのもんじゃないが)をシミュレーションしてんだろ
0936デフォルトの名無しさん
2008/03/31(月) 19:30:35mainあるいはWinMainはエントリポイントではなく、
エントリポイントにはスタートアップルーチンがあり、
OSではなくアプリケーション側で、
様々な初期化を行った後に、
mainあるいはWinMainを呼び出している。
そのスタートアップルーチンで、
コンソールまわりの処理を少しやってる。
そのコードや、そこで使われているWin32APIを見れば、
少しは見えてくるかもしれん。
0937デフォルトの名無しさん
2008/03/31(月) 19:34:31コンソールプログラム自体にはウィンドウを開く処理は全く入ってない。
0938デフォルトの名無しさん
2008/03/31(月) 20:46:12CreateProcessあたりがそれを見て制御しているくらいのことは
容易に想像できるだろ?
0939デフォルトの名無しさん
2008/03/31(月) 20:50:05スタートアップルーチンではすでに遅いと思うがどうか。
0940デフォルトの名無しさん
2008/03/31(月) 20:55:450941デフォルトの名無しさん
2008/03/31(月) 21:10:21ていうかCreateProcessの使い方に、コンソールの継承の話があったような気がする。
>>939
すでに遅いけど、コンソールに関するAPIを呼んでる。
PEにWin32GUIと書いてあれば、
コンソールを持つプロセスから起動しても、既存のコンソールからは切り離される。(別のコンソールを開くことは可能)
PEにWin32CUIと書いてあれば、
コンソールを持つプロセスから起動すると、既存のコンソールに結びつけられる。(別のコンソールを開くことは可能)
コンソールを持たないプロセスから起動すると、新しいコンソールに結びつけられる。
コマンドライン引数によって、GUIとCUIが切り替わるような代物を作る場合、
PEはWin32CUIにしておき、コマンドライン引数を見てから、GUIならコンソールを切り離す。
CUIならコンソールを使い続ける。
コンソールを持たないプロセスから起動したときに、短時間だがコンソールが作られて画面に出るのが、かっこわるいが。
0942デフォルトの名無しさん
2008/03/31(月) 21:32:56,TEXT("ABOUT"),MB_OK);
でダイアログ出したら親フォームの後ろに隠れて
操作できなくなったりするのはなぜでしょう?
ALTキー押すと前面に出てくるんですけど
自分で作ったDialogをDialogBoxマクロで表示させれば
ちゃんとModalで前に出るんですけど……
VS2008@Vista64です
0943デフォルトの名無しさん
2008/03/31(月) 21:44:25NULLとか渡していると孤児になるから、
Zオーダーが後ろになってしまってもおかしくない。
0944デフォルトの名無しさん
2008/03/31(月) 21:55:35はあ。そーゆーのはmsdev.com方式でやるもんだとばっかり思ってたけど。
msdev.comはSubsystem:consoleにしておき、msdev.exeはsubsystem:windowsにする。
cmd.exeからパス経由で"msdev"で起動なら、comがexeより優先されるので問題ない。
関連づけとか、ショートカットとか、そのあたりにはフルでmsdev.exeを登録しとけば
コンソールが一瞬出てくるとか云う話もない。
0945デフォルトの名無しさん
2008/03/31(月) 21:55:52> すでに遅いけど、コンソールに関するAPIを呼んでる。
スタートアップルーチンでの初期化処理はstderrとかの実体にデータをセットしてるだけで
コンソール云々は関係ないと思われ
Cランタイムライブラリを一切リンクしないなら↓がコンソールアプリの最小コードになる
#include <windows.h>
#pragma comment(linker, "/subsystem:console /entry:EntryPoint")
int __cdecl EntryPoint()
{
DWORD d;
WriteFile(GetStdHandle(STD_OUTPUT_HANDLE), "TEST\n", 5, &d, NULL);
return 0;
}
0946デフォルトの名無しさん
2008/03/31(月) 22:10:46hWndはウォッチで確認してみてもNULLじゃないんですね
ウインドウプロシージャの中で表示してるんですけど
プロシージャ内でも
DestroyWindow(hWnd);とかは普通に動いてます
0947デフォルトの名無しさん
2008/03/31(月) 22:46:21msdev.comってそういう用途のためにあったのか
長い間VC6使ってるけど知らなかった
0948デフォルトの名無しさん
2008/03/31(月) 23:34:57Windowsの中の人がプログラムがディスプレイだと思ってるどこかへの標準入出力をcmd.exeにリダイレクト?するわけですか・・・
DOS用スタブプログラムというので未だにDOSとの互換性残してるんですね
0949デフォルトの名無しさん
2008/03/31(月) 23:40:300950デフォルトの名無しさん
2008/04/01(火) 00:44:500951デフォルトの名無しさん
2008/04/01(火) 03:19:04BGMを流しつつ効果音を鳴らしたいのですが、
リソース内のwavを重ねて再生するには、
一度ファイルに吐いてmciSendStringするしかないですか?
sndPlaySoundでは重ねられないし、
mciSendStringはリソースが直に使えないし…。
DirectSoundを使えばよいようですが、
DirectXに頼らない方向で行きたいので。
0952デフォルトの名無しさん
2008/04/01(火) 03:49:21素直にDirectSoundを使おうぜ。
0953デフォルトの名無しさん
2008/04/01(火) 03:53:21複数の音を同時に鳴らすこと自体ができないかも。
結局、多くの環境で安定して動作するためには、
自前でwaveをmixして1つの音として出すしかなく、
そうなれば、waveOutWriteとかの出番でしょう。
0954デフォルトの名無しさん
2008/04/01(火) 04:06:26レスどうもです。。
やっぱりDirectSound使えってことなんですね。
わざわざ音を加算してやる…のも楽しそうだけど。
DirectXを使うと、作ったものを配布するときに
「DirectXn.nが必要です」ってなるのが嫌なので避けてたんですが、
どうやらある程度は標準で乗ってるんですね。なんという無知。
DirectSoundくらいならいまどきのwindowsであれば、
特に落とす必要もなく動くってことですよね。
素直に使います。
0955デフォルトの名無しさん
2008/04/01(火) 04:11:41インターネットのページをダウンロードしてファイルに保存する便利な関数があったと思うんですが、関数名を教えてください
0956デフォルトの名無しさん
2008/04/01(火) 04:29:450957デフォルトの名無しさん
2008/04/01(火) 04:45:320958デフォルトの名無しさん
2008/04/01(火) 04:58:00おお
ありがとうございました。
何度見ても覚えられない関数の一つ
0959デフォルトの名無しさん
2008/04/01(火) 05:01:05このスレで時々そうやって茶化してるのは、お前か。
0960デフォルトの名無しさん
2008/04/01(火) 06:09:140961デフォルトの名無しさん
2008/04/01(火) 09:14:380962デフォルトの名無しさん
2008/04/01(火) 10:09:220963デフォルトの名無しさん
2008/04/01(火) 10:13:03EDITコントロールでは使えないとおもふ
0964デフォルトの名無しさん
2008/04/01(火) 10:47:38回答ありがとうございます
できないことがわかっただけでも収穫です
0965デフォルトの名無しさん
2008/04/01(火) 10:49:25その昔WAVEMIX.DLLとかいうのが存在したのを思い出した
0966デフォルトの名無しさん
2008/04/01(火) 11:07:580967デフォルトの名無しさん
2008/04/01(火) 12:37:31old = (HBITMAP)SelectObject(...)でオリジナルを退避させて、開放前に元に戻す必要ありますか?
0968デフォルトの名無しさん
2008/04/01(火) 12:45:21またはSaveDC/RestoreDC
0969デフォルトの名無しさん
2008/04/01(火) 12:46:010970デフォルトの名無しさん
2008/04/01(火) 13:52:060971デフォルトの名無しさん
2008/04/01(火) 14:19:27Windows NT 3.xあたりの頃のSelectObjectの日本語版の説明には描画完了後に必ず元に戻せという指示があった
0972デフォルトの名無しさん
2008/04/01(火) 14:36:26選択外してDCだけ削除するとリソースリークしない?
0973デフォルトの名無しさん
2008/04/01(火) 14:57:11余計な事をしてもバグの元凶になるだけだろうが
0974デフォルトの名無しさん
2008/04/01(火) 15:03:46初期選択されている1x1 モノクロビットマップはGetStockObjectでは取得できないもののストックオブジェクトの一種である事のソース
ttp://msdn2.microsoft.com/en-us/library/ms969928.aspx
自分はWindows3.1からの癖でこまめにSelectObjectで戻してDeleteObjectしているが
0975デフォルトの名無しさん
2008/04/01(火) 15:25:49こんな古い記事が残っているのがビックリ
0976デフォルトの名無しさん
2008/04/01(火) 15:39:322000で適当に試してみたら GetStockObject(21) で返ってくるハンドルと同じだった
0977デフォルトの名無しさん
2008/04/01(火) 16:00:160978デフォルトの名無しさん
2008/04/01(火) 16:19:240979デフォルトの名無しさん
2008/04/01(火) 16:53:44探し辛ええええええ
0980デフォルトの名無しさん
2008/04/01(火) 18:54:28site:msdn2.microsoft.com付けてググるといいよ。
0981デフォルトの名無しさん
2008/04/01(火) 21:50:200982デフォルトの名無しさん
2008/04/01(火) 21:53:080983デフォルトの名無しさん
2008/04/01(火) 21:53:450984デフォルトの名無しさん
2008/04/01(火) 22:29:470985デフォルトの名無しさん
2008/04/01(火) 22:31:20つうかWin標準のメニューもIEのメニューもどきみたいに右端に >> が出ればいいのに
0986デフォルトの名無しさん
2008/04/01(火) 23:27:440987デフォルトの名無しさん
2008/04/02(水) 00:00:340988デフォルトの名無しさん
2008/04/02(水) 01:01:19あれはシェブロンっていうコントロールだよ。
機能的に単純にメニューバーと置き換えることが出来ないので、
標準にできないんだと思う。
0989デフォルトの名無しさん
2008/04/02(水) 01:32:17それは知ってるよ。っていうかシェブロンはRebarの機能の一つ
メニューが二段以上になるのが気に食わないからWTLのコマンドバーをRebarに乗せて使ってるけどこれもバグ多いしなぁ
0990デフォルトの名無しさん
2008/04/02(水) 05:30:16日本語版ならWin95から確実に存在する
0991デフォルトの名無しさん
2008/04/02(水) 10:07:02日本語版 Windows しか考慮していないソフトは糞である。
例えば InitCommonControls(Ex) していないソフトなど。
(日本語環境では大抵 IME がロード時に呼んでいるのでプログラムから呼ばなくても問題なく動作してしまう)
0992デフォルトの名無しさん
2008/04/02(水) 10:24:49http://pc11.2ch.net/test/read.cgi/tech/1207099291/
0993デフォルトの名無しさん
2008/04/02(水) 13:36:14それは日本語版だけ考慮してるのとは違うだろw
0994デフォルトの名無しさん
2008/04/02(水) 14:05:580995デフォルトの名無しさん
2008/04/02(水) 14:55:130996デフォルトの名無しさん
2008/04/02(水) 15:00:200997デフォルトの名無しさん
2008/04/02(水) 15:07:180998デフォルトの名無しさん
2008/04/02(水) 15:31:180999デフォルトの名無しさん
2008/04/02(水) 15:36:08(._.) < クックックッ
c(_uuノ
1000デフォルトの名無しさん
2008/04/02(水) 15:41:4010011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。