07/04/27 18:27:18
>>363
IsDialogMessageは、ダイアログでない普通のウィンドウも対象にできる。
375:デフォルトの名無しさん
07/04/27 20:10:24
>>370
>PCのメモリを1ギガにしたら解決しました。
その場しのぎとしてはセーフだが、
調査したほうが良いよ。
ドライバのver upで能力差とか、
ソースのメモリDC解放してないとか、
どっかで使いまわしているとか、
BitBltを使った初期化(WHITENESS、BLACKNESS)とか
ビットマップをダンプしてみるとか・・・
376:371
07/04/27 21:54:30
377:デフォルトの名無しさん
07/04/27 23:30:08
WH_KEYBOARD_LLはコマンドプロンプトに通用するですか?
378:デフォルトの名無しさん
07/04/28 00:40:51
>>377
cmd.exeでDOS窓を開いたときの動作の話なら、通用した(今試した)
379:デフォルトの名無しさん
07/04/28 08:10:27
とん
380:デフォルトの名無しさん
07/04/28 08:26:04
こつ
381:デフォルトの名無しさん
07/04/28 11:09:22
フォルダのデフォルトのアイコンって取得できますか?
382:デフォルトの名無しさん
07/04/28 11:10:15
はい
383:デフォルトの名無しさん
07/04/28 11:23:52
>>382
教えてくれよん
384:デフォルトの名無しさん
07/04/28 11:30:47
>>381みたいな聞き方をするからBOOLで返されちゃうんだよ
385:デフォルトの名無しさん
07/04/28 11:44:05
>>381に対する一番正確な答えになっているしな。
386:デフォルトの名無しさん
07/04/28 12:14:18
自己解決したような気がします
SHGetFileInfo と SHGFI_SYSICONINDEXあたりすか
387:デフォルトの名無しさん
07/04/28 12:43:05
>>372
CreateWindowはCreateWindowExのマクロに過ぎないので
CreateWindowExAにする必要がある
388:デフォルトの名無しさん
07/04/28 13:06:45
>>381に便乗質問だけど
SHGetFileInfo に空文字渡すとフォルダのアイコンが返ってくるけど、
これでいいんですか?
389:デフォルトの名無しさん
07/04/28 16:07:46
おまえらほんと捻くれてるよな
390:デフォルトの名無しさん
07/04/28 16:16:36
必要な戻り値の型推論ができないだけ
391:デフォルトの名無しさん
07/04/28 16:25:28
GetMessageの戻り値みたいに融通効かせてください><
392:デフォルトの名無しさん
07/04/28 18:08:30
キャストしろ
393:デフォルトの名無しさん
07/04/28 18:34:01
僕を神にしてください
394:デフォルトの名無しさん
07/04/28 19:57:54
キャストしろ
395:デフォルトの名無しさん
07/04/28 20:02:55
delete[]すればいんじゃね?
396:デフォルトの名無しさん
07/04/28 20:06:27
洞窟の出口で秘宝を奪うべく待ってればいいと思うよ
397:デフォルトの名無しさん
07/04/28 20:18:21
APIもせめて同じような定数は列挙型に纏めるとかしたらすっきりするんじゃないの?
398:デフォルトの名無しさん
07/04/28 20:25:50
SDKとAPIを混同するな
399:デフォルトの名無しさん
07/04/28 20:41:09
397の文脈ではAPIでもいいと俺は思う。
関数なんかだけではなく、それを呼び出すために必要な定数や型もひっくるめてAPIと言うのだと思う。
400:デフォルトの名無しさん
07/04/28 20:47:12
勝手な定義を脳内で作って知ったかするのはやめておけ。
401:デフォルトの名無しさん
07/04/28 20:51:55
ApplicationPrigramInterfaceと
SoftwareDevelopmentKit
の違いがわかりません先生
402:デフォルトの名無しさん
07/04/28 20:54:31
ヘッダファイル自体やライブラリや関連ツールなどがSDK
ヘッダファイルやタイプライブラリなどで定義されている内容がAPI
だと思っていたが実際のところ正しい定義なんて考えたこともなかったな
403:デフォルトの名無しさん
07/04/28 21:04:06
そもそもどこまでがAPIなんて誰もそんなことを定義していない。
C/C++以外からAPIを利用する場合は列挙型も何も存在しないし、
変なところで勝手に決めてしまうと他の言語から使うときに、
API以外の何か謎な物を使っていることになってしまう。
404:デフォルトの名無しさん
07/04/28 21:06:31
他の言語であらかじめされている定義が無いということね。
405:デフォルトの名無しさん
07/04/28 21:24:56
あれだ、web系のアホが紛れ込んでるのかもしれん。
「APIと言えばwebサービスのインタフェースを指すようになった」
らしいぞ。
406:デフォルトの名無しさん
07/04/28 21:42:36
整数も渡せるだろ
407:デフォルトの名無しさん
07/04/28 21:52:13
JAVAのinterfaceには定数(もどき)を定義できるし、定数を含めて問題あるまい。
というか既に定数無いか?
408:デフォルトの名無しさん
07/04/28 21:57:42
>>401
Prigram
409:デフォルトの名無しさん
07/04/28 22:14:08
何か美味そう
410:デフォルトの名無しさん
07/04/28 23:19:52
画面に表示しないプログラムを作りたいのですが
時計の横にアイコンを登録することは出来ますか?
411:デフォルトの名無しさん
07/04/28 23:26:49
>>410
できる。
412:デフォルトの名無しさん
07/04/28 23:27:08
タスクバー?
可能です。
413:デフォルトの名無しさん
07/04/28 23:33:31
GT-Rは5台持ってますよ
R32がVspecIIのガンメタとNISMOの白
R33がVspecのシルバー
R34がMspecのホワイトとVspecII Nurのベイサイドブルー
414:デフォルトの名無しさん
07/04/28 23:39:56
ま、俺のGTOには敵わないだろうけどな。
415:デフォルトの名無しさん
07/04/29 01:51:20
NAだけどな。
416:デフォルトの名無しさん
07/04/29 13:28:15
>>411
だからなんでみんな戻り値がboolなんだよw
417:デフォルトの名無しさん
07/04/29 13:31:21
出来るって分かれば自分で調べるだろ
418:デフォルトの名無しさん
07/04/29 13:55:07
S_OKだけなら猿でも返せる
419:デフォルトの名無しさん
07/04/29 14:00:51
>>410
メインウィンドウを非表示で作ればいい。
あとはタスクトレイ アイコンとかでググれ。
420:デフォルトの名無しさん
07/04/29 14:02:41
なんかこの質問・回答にデジャヴを感じる
421:デフォルトの名無しさん
07/04/29 14:06:05
間欠泉のようなもんだから
422:デフォルトの名無しさん
07/04/29 16:00:03
Shell_NotifyIconだったっけか
423:422
07/04/29 16:02:09
かすかな記憶を頼りに書いてみて調べてみたらビンゴだった
俺の記憶力もまだ捨てたもんじゃないな
424:デフォルトの名無しさん
07/04/29 19:47:52
ワレのドタマカチ割って脳みそストローでチューチュー吸うたろか!
425:デフォルトの名無しさん
07/04/29 19:53:13
自分の頭を割るというのもなかなか豪儀だな
426:デフォルトの名無しさん
07/04/29 19:55:41
なめとんかいわれ
427:デフォルトの名無しさん
07/04/29 19:58:29
貝割れ大根を嘗めているのか。あれは舌にピリッと来るよな。
しかし倒置法とはなかなか巧みじゃないか。
428:デフォルトの名無しさん
07/04/29 20:15:36
じょんだらりん
429:デフォルトの名無しさん
07/04/29 20:18:33
これをUNICODEビルドしたときにメッセージボックスに化けないで表示するには
どうしたらいいでしょうか?
XP, VC6です。
HANDLE hFile;
TCHAR buf[10];
DWORD dwSize;
hFile = CreateFile(
_T("C:\\aaa.txt"),
GENERIC_READ,
FILE_SHARE_READ,
NULL,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
NULL);
ReadFile(hFile, buf, 3, &dwSize, NULL);
CloseHandle(hFile);
buf[3] = _T('\0');
MessageBox(NULL, buf, _T(""), MB_OK);
430:デフォルトの名無しさん
07/04/29 20:21:13
MultiByteToWideChar
431:429
07/04/29 20:21:39
テキストファイルはSJISで中身は abc と入っているだけです。
432:デフォルトの名無しさん
07/04/29 20:31:04
"abc"のバイナリ表現はShift_JISやUS-ASCIIと、UTF-16とでは異なる。
433:429
07/04/29 20:42:04
読み込むファイルはSJIS固定
MultiByteToWideChar
変換元がPCSTR
変換後がPWSTR
これはひょっとしてUNICODE版でビルドしてる場合だけ
MultiByteToWideCharを使って変換をかけるって事ですか?
434:デフォルトの名無しさん
07/04/29 20:44:56
いいえ
435:デフォルトの名無しさん
07/04/29 20:45:04
ファイルをダウンロードしたときなど、完了すると「チロン!」という音が鳴りますが、
この音を鳴らすapiがあれば教えてください。
436:デフォルトの名無しさん
07/04/29 20:45:40
MCI
437:435
07/04/29 20:48:57
>>436
ありがとうございました!
438:デフォルトの名無しさん
07/04/29 20:51:59
URLリンク(www.int21.co.jp)
URLリンク(www.ne.jp)
URLリンク(wisdom.sakura.ne.jp)
URLリンク(www13.plala.or.jp)
439:デフォルトの名無しさん
07/04/29 20:52:42
>>433
はい
440:439
07/04/29 21:15:28
ありがとうございました。
441:429
07/04/29 21:16:01
ちがう。429でした。
442:デフォルトの名無しさん
07/04/29 23:13:32
>>426
はい
443:デフォルトの名無しさん
07/04/30 00:13:19
ウモンドウ作らずにWM_~受取れますか?
444:デフォルトの名無しさん
07/04/30 00:14:58
はい。ウィンドウをお作りいただけば可能です。
445:デフォルトの名無しさん
07/04/30 00:19:52
ウィンドウ要らないなら非表示にしとけばいい。
446:デフォルトの名無しさん
07/04/30 00:34:00
WM_~ = window message
447:デフォルトの名無しさん
07/04/30 00:40:02
一瞬普通に読んでしまったが、ウモンドウってwww
448:デフォルトの名無しさん
07/04/30 01:05:23
umondou?
umondow?
449:デフォルトの名無しさん
07/04/30 04:46:30
タスクトレイのアイコンの画像を取得する方法ってありませんか?
もしくは特定のアプリのトレイにあるアイコン描画をフックしたいのですが。
450:デフォルトの名無しさん
07/04/30 08:22:59
SetWindowsHookExのWH_KEYBOARD_LLはAltとかミ田キーも弄れますか?
451:デフォルトの名無しさん
07/04/30 08:25:50
>>450
可能。つか、自分でやってみれ。
想像以上に簡単だから
452:デフォルトの名無しさん
07/04/30 08:57:32
ミ田キーワロタ
453:デフォルトの名無しさん
07/04/30 09:54:19
Runasで起動したIEのウェブページのハンドルの入手の仕方おしえてください。
454:デフォルトの名無しさん
07/04/30 10:17:54
少しでも画面を有効に使うためにメニューバーの高さを極限まで細く
したいのですが、win32apiで可能でしょうか?
高さの取得はGetSystemMetricsで出来るのはわかったのですが、
設定がどうやっったらよいものか分かりません。どなたかやり方を教えて頂けませんでしょうか。
455:デフォルトの名無しさん
07/04/30 10:29:34
0じゃいかんの?
456:デフォルトの名無しさん
07/04/30 10:31:29
>>452
「ウェブページのハンドル」とは何ぞや?
>>454
レジストリに書いてWM_SETTINGCHANGEをブロードキャスト?
457:452
07/04/30 10:34:23
>>456
IEで表示したサイトのページをFindWindowAでゲットした値のことです。
458:デフォルトの名無しさん
07/04/30 10:37:24
>>454
SystemParametersInfo で SPI_SETNONCLIENTMETRICS
他のアプリケーションにも影響を与える操作なんだが、自アプリケーションで制御するような代物なんかな?
# デスクトップ - プロパティ で設定するのを自動化したいのか?
# それはそれで、迷惑な造りかもしれんが…
459:デフォルトの名無しさん
07/04/30 11:08:25
>>454
オーナードロー
460:デフォルトの名無しさん
07/04/30 12:06:48
bccでDLLを作成してそのDLLを
LoadLibrary(TEXT("HOOKTEST.dll"));で読み出したら
DLLエントリーポイントが実行されたみたいなのだが
暗黙的に読み出したらDLLエントリーポイントが実行されないんだが
これは普通なのか?それとも何か設定が間違っているのか?
461:デフォルトの名無しさん
07/04/30 12:11:24
あと
HINSTANCE hInstDLL;
#pragma data_seg(".sharedata")
HWND hWndtgt=NULL;
HHOOK hhook;
#pragma data_seg()
BOOL WINAPI DllEntryPoint(HINSTANCE hInstance,DWORD dwNotification,LPVOID lpReserved){
MessageBox(NULL,"DLL START","START",NULL);
hInstDLL=hInstance;
return TRUE;
}
int makehook(void){
hhook=SetWindowsHookEx(WH_MOUSE,(HOOKPROC)mousehookproc,hInstDLL,0);
if(hhook==NULL){
MessageBox(NULL,"MAKE HOOK ERROR","ERORR",MB_OK);
return 0;
}
return 1;
}
makehookを実行側で読み出すとhhookが絶対にNULLになるらしくフックがうまくいかない
LoadLibraryで明示的に呼び出してもうまくいかない
デバッカで見てみるとhInstDLLがnullになってるみたいなのだが何故?
462:デフォルトの名無しさん
07/04/30 12:12:13
その、「実行されない」ってのはどこから解ったんだ?
463:デフォルトの名無しさん
07/04/30 12:12:46
>>462
MessageBoxを入れてみました
464:デフォルトの名無しさん
07/04/30 12:15:28
どうしてボーランドの言語仕様ってあそこまで見苦しいの?
クラスや関数名なんて汚らしいしIDEも不細工極まりない
C++にしろパスカルにしろ目障りで読む気すらしないね。
465:デフォルトの名無しさん
07/04/30 12:17:41
ボーランド見苦しい
スレリンク(tech板)
466:デフォルトの名無しさん
07/04/30 12:21:43
bccの#pragmaにdata_segなんてないぞ。
467:デフォルトの名無しさん
07/04/30 12:25:11
>>466
WINDOWSプログラミングスパイスって本にのってたからそのまま使ってみたんだが、だめだったか・・・
468:デフォルトの名無しさん
07/04/30 12:33:59
URLリンク(msdn.microsoft.com)
をみて、DllMain内で複雑な処理はできいないと理解しよう。
469:デフォルトの名無しさん
07/04/30 12:37:36
_tDllMainな
470:デフォルトの名無しさん
07/04/30 12:38:38
>>443
PeekMessageをスレッドの最初に呼んでおけば
そのスレッドにメッセージキューが作られるから
あとはスレッドメッセージで処理すればいい。
送信はPostThreadMessageで
受信はGetMessageのMSG構造体のHWNDが0のやつが
スレッド宛のメッセージ。
471:デフォルトの名無しさん
07/04/30 12:43:44
BOOL WINAPI _tDllMain(HINSTANCE hInstance,DWORD dwNotification,LPVOID lpReserved){
hInstDLL=hInstance;
return TRUE;
}
修正
472:デフォルトの名無しさん
07/04/30 12:49:24
ドラえもーん、これガソリンはレギュラーでも走るの?
いやガソリンでは無理だよ。もっとパワーのあるやつじゃないと。
プルトニウムだよのび太君。
473:デフォルトの名無しさん
07/04/30 13:27:45
BOOL WINAPI _DllMain(HINSTANCE hInstance,DWORD dwNotification,LPVOID lpReserved){
hInstDLL=hInstance;
makehook(hInstance);
return TRUE;
}
intmakehook(HINSTANCE hInst){
hhook=SetWindowsHookEx(WH_MOUSE,(HOOKPROC)mousehookproc,hInst,0);
if(hhook==NULL){
MessageBox(NULL,"MAKE HOOK ERROR","ERORR",MB_OK);
return 0;
}
return 1;
}
にすると問題ないみたいなんだけど・・・
グローバル変数にコピーできない
なぜだ?
474:デフォルトの名無しさん
07/04/30 13:45:13
WinAPIの質問じゃないような気がしてきた
475:デフォルトの名無しさん
07/04/30 13:47:07
とりあえずフック抜いてインスタンスハンドルだけコピーするDLLでも作ってろ
476:デフォルトの名無しさん
07/04/30 13:51:36
窓は作らずに(非表示ではなく)
DLLの関数からShell_NotifyIconで登録してGetMessageでメッセージを受取れますか?
477:デフォルトの名無しさん
07/04/30 13:53:06
不可能
478:デフォルトの名無しさん
07/04/30 13:54:27
Shell_NotifyIcon から タスクトレイアクションを invoke できるようにするために窓が必要
479:デフォルトの名無しさん
07/04/30 14:00:08
なんか最近この質問多いな
480:デフォルトの名無しさん
07/04/30 14:05:29
間欠泉のようなもんだから(2回目)
481:デフォルトの名無しさん
07/04/30 14:09:08
タスクトレイ と フック は源泉なのでしょう
482:デフォルトの名無しさん
07/04/30 14:24:49
フックは多少ややこしいから分からんでもないけど…
トレイアイコンの方は潔癖症に近くねぇ?
いいじゃねーかウィンドウ一つくらい
483:デフォルトの名無しさん
07/04/30 14:30:09
メッセージ通知用ウィンドウなんてたくさん使われているよ。DDEとかシステム周りでもね。
484:デフォルトの名無しさん
07/04/30 14:30:28
そもそも「窓作らずメッセージ受け取れますか?」ってやってみればすぐわかるじゃねーか
485:デフォルトの名無しさん
07/04/30 14:40:48
それよりもまずテンプレに沿ってMSDN読んで来い
URLリンク(msdn.microsoft.com)
486:デフォルトの名無しさん
07/04/30 14:52:16
EnumWindowとかで窓一覧を取得するとあきれるほど非表示ウィンドウだらけだからな。
いまさら一つ増えたところで・・
487:デフォルトの名無しさん
07/04/30 14:55:10
Winsock の Async の面倒見るのも見えない Window でやりくりしてるな
488:デフォルトの名無しさん
07/04/30 14:57:17
まあ落ち着けよ
489:デフォルトの名無しさん
07/04/30 15:06:42
WindowがなくてもHWNDもらう方法はないの?
490:デフォルトの名無しさん
07/04/30 15:08:13
>>475
やってみた
MainDllないではグローバルインスタンスハンドルにコピーできてるみたいだけど
makehookを呼び出すとNULLになってるみたい
491:デフォルトの名無しさん
07/04/30 15:09:38
逆に考えるんだ
makehook内で参照してるのがグローバル変数ではないのではないかと考えるんだ
492:デフォルトの名無しさん
07/04/30 15:13:20
>>476
HWND_DESKTOP名義で登録してHOOK
493:477
07/04/30 15:13:39
>>489
メッセージ送信先のウィンドウをデスクトップにでもしておいて
グローバルフックで定義したメッセージを引っ掛ければできなくはない
ウィンドウ作らない分フックにリソース消費するけどねw
494:デフォルトの名無しさん
07/04/30 15:15:07
久々に綺麗なケコ-ン
495:デフォルトの名無しさん
07/04/30 15:28:18
ウィンドウズ自体の欠陥ですか
496:デフォルトの名無しさん
07/04/30 15:35:31
いいえ
497:デフォルトの名無しさん
07/04/30 16:50:13
/ / . : ヘ/! \
// / . /: : ∠、ム| . ヽ
/ ィ . / :/|: |: :/ ノ: 人: ハ
i/ . : . | .|{‐ |=ヘ{‐'! ` =ナ左、 V:|: .ハ
/ | :|: : |: :八 | o ヽ| ´ o ∨/: i |
|:i: : . 、 |{ ヘ! .彡 , ミ、 /メ| . ハ|
ヽ|ヽ: : .`| .三´ _____ ̄彡'/ . ://リ
> .\ |ニ. 二、,二.ヽ| /: //
/ : : ハ`` V: : : : :ン∠イ : : ヽ ァハハ八八ノヽノヽノヽノ \ノ \ / \ / \
/ . : :/ : \ \―/ /: :|: : : . :ヽ
/ . : : : :ィ: > ` ̄ イ: : 、 、、: : : : .ハ
/ . :/i/ "´ |  ̄ | `^``゙^\:、 : . ハ
i/ . :/ へ ノ __ Vニ、 ヽi、:、: i
ハ i:/ ∠.... iく__ 彡⌒ソ > ‐ 、 ヽi、!
V / ̄、 ̄\\ ∠ニ -‐_厂 ヽ. `
/ |: レ  ̄ ̄` 厂| ̄,r ̄- 、: |. i
/ .|/ 厂 | '´ V: 丶
「 ̄ ̄`ヽ/. : : : . . / ハ . : : : : : . V/ ̄`ヽ
,ノ二二.ヽ {. : : : : : :∧ヽ/∧: : : : : : : : :} . ニニヽ
< ̄ィ―- 、ヽV: : : : : :\//: : : : : : : : ノ//. --t、ヽ
`7 ヽ.ハ: : : : : : : :`´|: : : : : : : : : {彡''´ |/
498:デフォルトの名無しさん
07/04/30 17:14:45
>>473
そもそもDllMainでuser32.dllの関数を呼び出してはいけない(もちろんMessageBoxも)
499:デフォルトの名無しさん
07/04/30 17:15:45
>>492-493
そっちのほうがよっぽど気持ち悪いんだが潔癖症の方々はウィンドウを作らないこと自体
が目的化してるんですかね。健康のためなら死んでもいいみたいな。
>>489とか見てると釣りのようにも思えるけど
500:デフォルトの名無しさん
07/04/30 18:02:07
やってみることに意味があるんだろう
無いけど
501:デフォルトの名無しさん
07/04/30 18:07:31
ShellExecuteでファイルを開くと新しいウィンドウで開かれますが、
既存のウィンドウ内に表示させることは可能でしょうか?
具体的にはswfなどのファイルを、BMPをペタペタ貼るような感じで使いたいのですが・・・
502:デフォルトの名無しさん
07/04/30 18:29:52
ActiveXでFlashコントロールをホストすればー
503:デフォルトの名無しさん
07/04/30 19:22:13
っていうかWindow作るのダサいし
504:デフォルトの名無しさん
07/04/30 20:09:44
MSXML6.0でXMLをロードするときに関数にIXMLDOMDocumentをポインタで引き渡すと値が返ってきません。
関数の内部での値はとれているのですが。
こういう仕様なのでしょうか?
OKの場合
CComPtr<IXMLDOMDocument> xmldom;
if(CoCreateInstance(CLSID_DOMDocument, NULL, CLSCTX_INPROC_SERVER, IID_IXMLDOMDocument, (void**)&xmldom) != S_OK){
return;
}
xmldom->put_async(VARIANT_FALSE);
xmldom->load(_variant_t(FileName), &result);
if(result != VARIANT_TRUE){
return;
}
505:デフォルトの名無しさん
07/04/30 20:11:04
NGの場合
if(LoadXML(FileName,xmldom) == false){
return;
}
bool LoadXML(const char* FileName,IXMLDOMDocument *xmldom)
{
VARIANT_BOOL result;
if(CoCreateInstance(CLSID_DOMDocument, NULL, CLSCTX_INPROC_SERVER, IID_IXMLDOMDocument, (void**)&xmldom) != S_OK){
return false;
}
xmldom->put_async(VARIANT_FALSE);
xmldom->load(_variant_t(FileName), &result);
if(result != VARIANT_TRUE){
return false;
}
return true;
}
506:デフォルトの名無しさん
07/04/30 20:18:34
引数でポインタを返したければ、その引数はポインタのポインタである必要がある、って
いうCの基本のお話なのかな?
507:デフォルトの名無しさん
07/04/30 21:09:37
×bool LoadXML(const char* FileName,IXMLDOMDocument *xmldom)
○bool LoadXML(const char* FileName,IXMLDOMDocument **xmldom)
508:デフォルトの名無しさん
07/04/30 21:16:44
まあ、ポインタ参照にしてもいいけどネ
509:デフォルトの名無しさん
07/04/30 22:21:03
>>491
その可能性もあるけど
そうするともうどうしようもなくないか?
>>498
へー
510:デフォルトの名無しさん
07/04/30 22:46:27
#define STRICT
#include <windows.h>
#include <windowsx.h>
#include "ResHOOKTEST.h"
#include "HOOKTEST.H"
static HWND hWndmain;
static HINSTANCE hInst;
LRESULT CALLBACK mainDlgProc(HWND hDlg,UINT message,WPARAM wparam,LPARAM lparam){
switch(message){
case WM_COMMAND:
if(wparam==HOOKON){
makehook();
return TRUE;
}
if(wparam==HOOKOFF){
unhook();
EndDialog(hDlg,TRUE);
}
default: return FALSE;
}
return TRUE;
}
int PASCAL WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow){
UNREFERENCED_PARAMETER(hPrevInstance);
UNREFERENCED_PARAMETER(lpCmdLine);
UNREFERENCED_PARAMETER(nCmdShow);
hInst=hInstance;
LoadLibrary(TEXT("HOOKTEST.dll"));
DialogBox(hInstance,"MYDLG",NULL,(DLGPROC)mainDlgProc);
return 0;
}
511:デフォルトの名無しさん
07/04/30 22:48:04
あああああああもうだれかたすけてえええええええええええええ
512:デフォルトの名無しさん
07/04/30 22:48:21
URLリンク(page11.auctions.yahoo.co.jp)
513:504
07/04/30 23:08:00
>>506
ポインタで引き渡しているのに、ポインタのポインタで渡さなければならないのですか?
すみません。この辺理解がよくできてないです。
>>507
変更してみたのですが、
xmldom->put_async(VARIANT_FALSE);
の箇所のメンバ指定の方法がよくわかりません。
こういう感じで変更してみたのですが、コンパイルエラーが無くなりませんでした。
*(xmldom)->put_async(VARIANT_FALSE);
APIよりC言語の基本のほうを勉強したほうがよさそうですね・・・
514:デフォルトの名無しさん
07/05/01 00:38:58
>>513
(*xmldom)->put_async(VARIANT_FALSE);
'->'の方が優先順位が高い。
もちろん、CoCreateInstanceの方も (void**)xmldom に直してあるよな。
後CLSID_DOMDocumentだと、MSXML3以前のインスタンスが返されていると思う。
MSXML4以降の機能を使いたければ、個別のCLSIDを指定する必要がある。
MSXML6なら、CLSID_DOMDocument60って感じで。詳細は英語版MSDN。
515:491
07/05/01 02:07:50
>>510-511
今思ったんだけどさー
別にhInstanceをグローバル変数にコピーしなくても
GetModuleHandle(”dll名”)に置き換えれば良いんじゃないの
516:デフォルトの名無しさん
07/05/01 02:16:32
さすがジョースター卿w
発想の転換だなw
517:デフォルトの名無しさん
07/05/01 04:02:47
>>515
だめです
518:デフォルトの名無しさん
07/05/01 08:58:43
>>473 DLL側本体は int makehook(HINSTANCE)
>>510 利用側は makehook();
根本から間違ってねーか?
519:デフォルトの名無しさん
07/05/01 09:36:11
UrlDownloadToCacheFileでWeb上の頻繁に更新されるファイルを取得した場合、
キャッシュ済みのデータが戻ってきたりで必ずしも最新のファイルでない場合がよくあるのですが、
強制的に更新させる方法はないのでしょうか?
自分でソケット使って書くのマンドクセ('A`)
520:デフォルトの名無しさん
07/05/01 09:42:18
ファイルを一度削除してから再度実行すれば?
521:デフォルトの名無しさん
07/05/01 10:05:39
#include <windows.h>
#define EXPORT extern "C" __declspec(dllexport)
HINSTANCE hinst;
BOOL WINAPI DllMain(HINSTANCE hinstDLL,DWORD dwDllMainEvent,LPVOID lpvReserved){
if(dwDllMainEvent==DLL_PROCESS_ATTACH)
hinst = hinstDLL;
return TRUE;
}
EXPORT int func(void){
char buf[15];
wsprintf(buf,"%d",hinst);
MessageBox(NULL,NULL,buf,MB_OK);
}
dllにして外部から呼び出すとインスタンスハンドルはコピーされている
460=461がコード内で妙なことしてるとしか思えない
522:デフォルトの名無しさん
07/05/01 10:07:34
VC買え
523:デフォルトの名無しさん
07/05/01 10:14:31
Windowsの窓ありきな設計思想に問題があるんじゃないかな。
524:デフォルトの名無しさん
07/05/01 10:19:36
static HMODULE g_hModule = NULL;
BOOL APIENTRY DllMain(HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved)
{
switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
g_hModule = hModule;
break;
case DLL_THREAD_ATTACH:
case DLL_THREAD_DETACH:
case DLL_PROCESS_DETACH:
break;
}
return TRUE;
}
525:デフォルトの名無しさん
07/05/01 10:20:46
>>523
非表示の窓を作れないorやたら面倒なら確かに問題があるかもな
526:デフォルトの名無しさん
07/05/01 10:21:02
>>510
どこでGetProcAddressしてるの?
527:デフォルトの名無しさん
07/05/01 11:21:16
GUIを必要としないのに非表示の窓を作るのは倫理的に間違っている。
528:デフォルトの名無しさん
07/05/01 11:22:50
知らないならレスするな
529:デフォルトの名無しさん
07/05/01 11:26:22
GUIが必要だからタスクトレイに表示するのでは( ̄ー ̄)
530:デフォルトの名無しさん
07/05/01 11:39:23
>>527
ネットワークサービスだけ立ち上がればいいのに、GUIでしか起動できないWindowsは間違っている。
だからCUIのみでも使えるLinuxでも使えば?
531:デフォルトの名無しさん
07/05/01 11:53:53
クッキー焼いてみたの、ちょっと味見してくれない?
勘違いしないでね、別にあんたの為に作ったんじゃないんだからね。
532:デフォルトの名無しさん
07/05/01 12:15:12
Longhorn ServerはついにGUIレスモードが
533:デフォルトの名無しさん
07/05/01 12:22:11
そもそもサービスは・・・
534:デフォルトの名無しさん
07/05/01 12:39:43
>>531
わっふるわっふる
535:デフォルトの名無しさん
07/05/01 13:33:10
>>532
当然タスクトレイも使えないわけだが
ウィンドウはいらないけどタスクトレイは必要なんて頭のおかしい要求する奴以外は
問題ないわな
536:デフォルトの名無しさん
07/05/01 14:28:36
タスクトレイのアイコンでクリック連打するとクリックした回数に応じて
他アプリを立ち上げるランチャーなんてどうだろう
537:デフォルトの名無しさん
07/05/01 14:33:31
つクイック起動
538:デフォルトの名無しさん
07/05/01 15:17:38
ppmフォーマットの画像を読み込ませてウィンドウに表示したいのですが
どうしたらいいですか?
LoadImageだとppmは読めないので困ってます
539:デフォルトの名無しさん
07/05/01 15:20:20
ppmをDIBに変換すればいいんじゃね
540:デフォルトの名無しさん
07/05/01 15:23:14
ppmはグレイスケールの画像で、fscanfで独自に読み込んで
るんですけど、そのDIBには頑張れば変換出来そうですか?
541:デフォルトの名無しさん
07/05/01 15:27:33
できるけど、そもそもLoadImage使おうとしたのは何なんだ
542:デフォルトの名無しさん
07/05/01 15:28:31
CreateDIBSection → BitBlt のコース
WM_PAINT で SetPixel ぐるぐる回すコース
543:デフォルトの名無しさん
07/05/01 15:40:40
LoadImageで読み込めたら表示も楽に出来ると
思ってました・・・
CreateDIBSectionってやつで頑張ってみようと思います
544:デフォルトの名無しさん
07/05/01 15:46:10
Susie Plugin とか使うとか
// 懐かしい響きだな
545:デフォルトの名無しさん
07/05/01 18:30:14
SQLConfigDataSourceでMySQLをODBCに登録する方法を教えてください
546:デフォルトの名無しさん
07/05/01 18:36:53
OOの話でよく、
「OOはデータと操作とカプセル化しちゃって、その部品を使うこと」
みたいなこと書いてあるの見ることあるけど、
これって構造化の話だよな?
547:デフォルトの名無しさん
07/05/01 18:49:47
>>546
構造化と言うと、普通はDijkstraの「gotoやめれ」でしょ。OOよりだいぶ前。
548:デフォルトの名無しさん
07/05/01 19:00:35
OO はカプセル化が基本ではあるが、
ポリモーフィズムが一番の肝だと思うんだぜ。
549:デフォルトの名無しさん
07/05/01 19:22:09
>>518
>>473はためしに書き直してみただけ
550:デフォルトの名無しさん
07/05/01 19:32:46
>>527
不合理ではあるが、HWND_MESSAGE なんてのもあるな。
551:デフォルトの名無しさん
07/05/01 19:53:39
ネ申
552:デフォルトの名無しさん
07/05/01 21:24:43
>547
構造化は、TopDownとBottomUpと複合設計って事だよ。
553:デフォルトの名無しさん
07/05/01 21:32:30
>>545
SQLConfigDataSourceでODBCにMySQLを登録する方法を教えてください
の間違いじゃね?
これ、C:\Program Files\Common Files\ODBC\Data Sourcesフォルダ下に
ファイル置くだけじゃなかった?
554:デフォルトの名無しさん
07/05/01 21:42:39
>>519
亀レス気味だが、
IBindStatusCallback::GetBindInfoが呼び出された時に、
BINDF_GETNEWESTVERSIONフラグ返せばいいんじゃね?
使ったことないから保証はしないが。
555:553
07/05/01 21:46:58
>補足
それでも、素でDSNファイルを作るんなら、
以下のサイトで接続文字列をチェックし、
(URLリンク(msdn2.microsoft.com))
lpszAttributesを作成する。
各パラメータはNULLでつなぎ、最後だけNULLを2つ繋ぐ。
(参考:URLリンク(msdn.microsoft.com))
lpszDriver は、"MySQL ODBC 3.51 Driver"かな?
んで、
SQLConfigDataSource(NULL, ODBC_ADD_SYS_DSN, lpszDriver, lpszAttributes);
ではだめか?
556:デフォルトの名無しさん
07/05/01 22:09:45
>>521
#include <windows.h>
#include "ResHOOKTEST.h"
#include "HOOKTEST.h"
LRESULT CALLBACK mainDlgProc(HWND hDlg,UINT message,WPARAM wparam,LPARAM lparam){
switch(message){
case WM_COMMAND:
if(wparam==HOOKON){
func();
return TRUE;
}
if(wparam==HOOKOFF){
EndDialog(hDlg,TRUE);
}
default: return FALSE;
}
return TRUE;
}
int PASCAL WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow){
UNREFERENCED_PARAMETER(hPrevInstance);
UNREFERENCED_PARAMETER(lpCmdLine);
UNREFERENCED_PARAMETER(nCmdShow);
/*LoadLibrary(TEXT("HOOKTEST.dll"));*/
DialogBox(hInstance,"MYDLG",NULL,(DLGPROC)mainDlgProc);
return 0;
}
でよみだしたけどやっぱり無理だお
557:デフォルトの名無しさん
07/05/01 22:55:40
VK_KANAが立っているのに
558:デフォルトの名無しさん
07/05/01 23:01:15
しかし飽きもせず、おまえらフック大好きだよなー
559:デフォルトの名無しさん
07/05/01 23:09:41
しかしフック以前の段階で詰まってる罠
560:デフォルトの名無しさん
07/05/01 23:26:28
僕ハッカー!
561:デフォルトの名無しさん
07/05/01 23:27:36
僕バッカー
562:デフォルトの名無しさん
07/05/01 23:28:14
俺チンコ
563:デフォルトの名無しさん
07/05/01 23:47:57
フックはひとつのDLLで二つとかセット出来ますか?
564:デフォルトの名無しさん
07/05/02 00:26:04
『日本初・民営刑務所 囚人が「ソフト開発」』だってよw
ある意味俺らは囚人だww
565:デフォルトの名無しさん
07/05/02 00:31:03
>>563
聞く前にまずやってみろ
SetWindowsHookExのパラメータ見ればわかりそうなもんだが
>>556
もうめんどくせーから
URLリンク(www.uploda.net)
でDLL作れ
566:デフォルトの名無しさん
07/05/02 08:02:53
初心者ですみません。
gdi+のライブラリの中身を解析したいのですが、可能でしょうか?
それともうひとつ、図々しいですが
jpgファイルの構造を教えてくれるところはないですか?
DIBのピクセルビットを操作するようにjpgのピクセルを操作したいのです。
お願いします。
567:デフォルトの名無しさん
07/05/02 08:13:28
>>566
スレ違いだと思うが・・・
jpeg header formatでググる
Code Projectを漁る
URLリンク(www.codeproject.com)
などなど
OleLoadPictureFileでDCに乗せるとかいろいろ
568:デフォルトの名無しさん
07/05/02 08:29:10
アタッマきた
569:567
07/05/02 08:49:01
俺が先に云うね
567にカチンときたので教えません。 バーカ!
>>568
これでいい?
570:566
07/05/02 10:07:04
>>567
ありがとうございます。
試してみます。
571:デフォルトの名無しさん
07/05/02 10:39:54
>>566
GDI+は、ソース公開されていないよ。
逆アセンブルするんだとか言うなら誰も止めはしないが、せいぜいライセンスは気にかけておけ。
JPEGは、画像を圧縮して記録していて、解凍しないと画像は取り出せない。
仮に編集するとしたら、編集終了後にJPEGとして保存するために再び圧縮することになる。
572:デフォルトの名無しさん
07/05/02 10:42:05
不可逆の圧縮に対して解凍というのは違和感有りまくり
573:デフォルトの名無しさん
07/05/02 10:55:00
>>572
同意。
今の時代は質よりも、
聞こえればいい、見えればいいの時代なのね
574:デフォルトの名無しさん
07/05/02 10:55:19
JPEGはハフマンの強さを見せ付けられる圧縮技術。
575:デフォルトの名無しさん
07/05/02 10:59:50
フーリエ先生も自分の考えてたことが数百年後に役に立つと予想出来たであろうか
576:デフォルトの名無しさん
07/05/02 11:17:38
>>572
冷凍食品は不可逆でないのか?
577:デフォルトの名無しさん
07/05/02 11:36:04
それは屁理屈
展開でいいじゃん
578:デフォルトの名無しさん
07/05/02 11:51:53
素材そのものではないのに
素材の名前をつけた料理には違和感ありまくり
579:デフォルトの名無しさん
07/05/02 11:53:06
タイヤキ
580:デフォルトの名無しさん
07/05/02 11:56:26
ミスタードーナツのメニュー
581:デフォルトの名無しさん
07/05/02 12:06:29
可逆だろうが不可逆だろうが圧縮に対して解凍は違和感あり
展開・復元でいいでしょ
不可逆に対して復元は語弊あるけど
582:デフォルトの名無しさん
07/05/02 12:12:55
解凍って言い回しはアーカイブファイルでないとしっくり来ない
まあ意味は伝わるからどうでもいいけどね
583:デフォルトの名無しさん
07/05/02 12:21:52
まあな。文脈さえ読めればおk
宮廷に仕えてるわけでもないしねw
584:デフォルトの名無しさん
07/05/02 12:38:11
解凍って言い回しはLHarc(現LHAの前身)の頃に作者の吉田さんが使い始めたんだよね。
当時のパソ通コミュで(それこそvoidも含めてw)多くのエンジニアからやめろと言われたにも関わらず。
吉田さんが自粛してくれていればこんなことには……
585:デフォルトの名無しさん
07/05/02 12:46:48
>>578
Jリーグカレーとか?
586:デフォルトの名無しさん
07/05/02 14:14:38
おかわり
587:デフォルトの名無しさん
07/05/02 15:06:28
どうでもいい
588:デフォルトの名無しさん
07/05/02 15:44:05
>>555
ありがとうございます。
こんな感じでやってみたのですがダメでした・・・・
どこが悪いでしょうか
BYTE *drv = "MySQL ODBC 3.51 Driver";
BYTE att[512];
::wsprintf( &att[0], "DSN=%s\0", "test1" );
::wsprintf( &att[::lstrlen(att)+1], "Server=%s\0", "testserver" );
::wsprintf( &att[::lstrlen(att)+1], "UID=%s\0", "root" );
::wsprintf( &att[::lstrlen(att)+1], "PWD=%s\0", "1234" );
::wsprintf( &att[::lstrlen(att)+1], "DATABASE=%s\0\0", "testdb" );
::SQLConfigDataSource( NULL, ODBC_ADD_SYS_DSN, drv, att );
589:デフォルトの名無しさん
07/05/02 15:52:35
文字列を文字列として渡す関数に \0 をつけるのは無意味
よって、\0 も \0\0 も意味がない。
それ全部はずした上で、配列に直接\0入れてやれ
590:デフォルトの名無しさん
07/05/02 15:58:53
>>589
意味はないけど間違いでもない。
wsprintfで入れてくれるから後から入れるのはもっと無意味
591:デフォルトの名無しさん
07/05/02 16:01:34
>>590
あのさ、直接入れるのは\0\0と2つ重ねる話なんだけど
592:デフォルトの名無しさん
07/05/02 16:04:11
あと、strlenだと、最初の\0 間でしか数えないから、sprintfの戻り値を足してやれ
593:デフォルトの名無しさん
07/05/02 16:04:22
HINSTANCE hLib = LoadLibrary("xxx.dll");
を実行すると、下記のエラーが出力されます。
error C2664: 'LoadLibraryW' : 1 番目の引数を 'const char [12]' から 'LPCWSTR' に変換できません。(新しい機能 ; ヘルプを参照)
1> 指示された型は関連がありません。変換には reinterpret_cast、C スタイル キャストまたは関数スタイルのキャストが必要です。
解決方法を教えてください。
参考ページ:URLリンク(homepage2.nifty.com)
環境:WindowsXP, Visual C++ EE 2005
594:デフォルトの名無しさん
07/05/02 16:09:52
>>588
最初のstrlen(att)+1以外のstrlen(att)+1が全て間違っている。
それでは長さが全部同じになるから、先頭アドレスは足していかないと
595:デフォルトの名無しさん
07/05/02 16:09:59
>>593
HINSTANCE hLib = LoadLibrary(_T("xxx.dll"));
で、どうか?
596:デフォルトの名無しさん
07/05/02 16:17:18
>>595
ありがとうございます。
読み込めました。
597:デフォルトの名無しさん
07/05/02 16:48:27
初歩的な質問で申し訳ありません。
VC++でダイアログベースのプログラムの作成中です。
プロシージャ内でクラスを宣言して使用したいのですが、エラーになります。
たとえば以下のようなプログラムのがあるとします(Fooクラスが別途存在します)
LRESULT CALLBACK DlgProc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp)
{
switch (msg) {
case WM_INITDIALOG:
Foo foo;
return FALSE;
case WM_HOGE:
foo.hoge();
default:
return FALSE;
}
return TRUE;
}
この場合、以下のエラーが出力されます
'foo' の初期化が 'case' ラベルによって行われませんでした。
調べた結果、WM_HOGE内でFooクラスの宣言がなされてない(初期化がされていない)のでエラーになっている、ということはわかりました。
ここで質問なのですが、Fooクラスの宣言というのは一般的にどこで行うべきなのでしょうか?
プロシージャの最初のswitchの外で宣言してしまってもいいものなのでしょうか。
598:デフォルトの名無しさん
07/05/02 16:51:41
>>588
DriverとAttributesは以下で判断
①.ODBCドライバを落とし、インストールする。
URLリンク(dev.mysql.com)
②.コンパネから“管理ツール”の“データソース(ODBC)”を開く。
③.ファイルDNSタブから[追加]ボタンを押す・
④.データソースMySQL ODBC 3.51 Driverを選択し、[次へ]を押す。
⑤.データソース名に"MAROYUKI"と入力し、[次へ]を押す。
⑥.とりあえず完了させる。
⑦.次にConnecter/ODBCダイアログが開くので、必要情報を代入し[OK]を押す。
⑧.\Program Files\Common Files\ODBC\Data SourcesフォルダにMAROYUKI.dsnができる。
⑨.MAROYUKI.dsnをテキストエディタで開き、lpszDriverとlpszAttributesに一致するか確認。
599:デフォルトの名無しさん
07/05/02 16:52:15
LRESULT CALLBACK DlgProc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp)
{
switch (msg) {
case WM_INITDIALOG:
{
Foo foo;
}
return FALSE;
case WM_HOGE:
foo.hoge();
default:
return FALSE;
}
return TRUE;
}
こうすればいいがー
600:デフォルトの名無しさん
07/05/02 16:54:30
>>594
こんなのSQLConfigDataSource()を呼ぶ所でattの512バイトがどうなってるのか見ればすぐわかるのにね。
601:デフォルトの名無しさん
07/05/02 16:54:37
しまった!
↓のcaseでfooつかっとるかこれ!
んじゃ、外に定義でいいんじゃね?
602:デフォルトの名無しさん
07/05/02 16:55:07
>>599
それは、case WM_HOGE でfooが使えないべ
>>597
switchの外でいいよ。
case WM_HOGE の時に Foo foo を通過してないまま foo を使うことになるべ。
603:デフォルトの名無しさん
07/05/02 17:00:29
フォールスルー考えてのことならいいんだが
期待しているのは static のような気がする
604:デフォルトの名無しさん
07/05/02 17:06:56
要は、そのfooをどこでどう使いたいか、どういう仕様か、によりけりだな。
605:597
07/05/02 17:07:02
レスありがとうございます。
LRESULT CALLBACK DlgProc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp)
{
Foo foo; // ←switchの外で宣言
switch (msg) {
case WM_INITDIALOG:
return FALSE;
case WM_HOGE:
foo.hoge();
default:
return FALSE;
}
return TRUE;
}
というプログラムで期待通りの動作を確認しました。
ありがとうございました。
606:デフォルトの名無しさん
07/05/02 17:07:48
うーむ、INIT_DIALOGはなんだったんだろうw
607:デフォルトの名無しさん
07/05/02 17:44:03
レンジのアイコンだから解凍で良いだろ
608:デフォルトの名無しさん
07/05/02 17:54:55
蒸し返すなw
609:デフォルトの名無しさん
07/05/02 18:02:20
>>607
アホかい。
解凍と言う用語があったから、電子レンジのアイコンが作られたに決まっておろうが。
>>584
吉田じゃなくて吉崎だな。
610:デフォルトの名無しさん
07/05/02 18:11:15
石化なんて表現もあったからなw
611:デフォルトの名無しさん
07/05/02 18:18:52
俺:「ファイルの圧縮で、反対の言葉が解凍ってのはどうかと話題がでてるが、
姉ちゃんならどういう言葉が妥当だと思う?
姉:「うーん、レンジでチンして解凍みたいだから、解チンってのはどう?」
俺:( ゚д゚)ポカーン
612:デフォルトの名無しさん
07/05/02 18:21:16
つまらん
613:デフォルトの名無しさん
07/05/02 18:22:28
圧縮の対義語は伸張やろが!
614:デフォルトの名無しさん
07/05/02 18:59:27
圧縮解凍って言葉が昔から対になってんだから小さい事気にすんな
日本語して意味がおかしくて気に食わないならpack、unpackって言え
615:デフォルトの名無しさん
07/05/02 19:12:26
圧縮/伸張、compress/decompressでFA。
616:デフォルトの名無しさん
07/05/02 19:39:26
>>614
おいおい、昔って言ったって、吉崎某が使い始めてから未だ20年経ってないぞ。
#あ、充分昔かw
617:デフォルトの名無しさん
07/05/02 19:45:45
DB関係の作った事ないし詳しくないからとんでもなく見当違いな事言ってるかもしれないけど教えてくれ。
APIでDB触れるのってODBCだけ?oo4oとかADOとかDAOとかAPIとして持ってないのか?
618:デフォルトの名無しさん
07/05/02 20:04:43
符号化の結果縮むのが圧縮。
符号化の結果伸びるのが伸長。
復号化が解凍。
じゃないのか?
619:デフォルトの名無しさん
07/05/02 20:38:55
>>617
何を聞きたいのかよくわからん
それらは最終的にODBC使うんじゃなかったっけ
620:デフォルトの名無しさん
07/05/02 21:04:09
エンコード/デコードで
621:デフォルトの名無しさん
07/05/02 21:39:49
>>616
実際にはもっと昔から使われていた。
それ以前にはスタンダードと言えるほど広まっているツールが
なかったからLHA発祥という誤解が定着してしまっただけだ。
622:デフォルトの名無しさん
07/05/02 21:57:53
っYZ1
623:デフォルトの名無しさん
07/05/02 22:09:52
LHA は圧縮だけじゃなくて書庫の機能も持っているから、展開が妥当だと
624:デフォルトの名無しさん
07/05/02 22:37:24
>>619
そうだったのか。いや俺も実際何を聞きたいのかよくわからないんだがw
つまりODBCAPI以外にDBを触れるAPIがあったら知りたかった
625:デフォルトの名無しさん
07/05/02 22:52:48
oo4oもADOもDAOも、みな関数と言う形ではAPIを持っていないと思う。
626:デフォルトの名無しさん
07/05/02 23:02:01
oo4oなつかしいなw
627:デフォルトの名無しさん
07/05/02 23:11:18
>>611
俺が「それはカユイちんこみたいだな」って言ってたって言っておけ
あと「俺のチンコが痒いです」とも言っておけ
628:デフォルトの名無しさん
07/05/02 23:32:08
>>585
うぐいすパンとか?
629:デフォルトの名無しさん
07/05/02 23:35:39
うぐいすパンはうぐいす入ってるだろ
630:デフォルトの名無しさん
07/05/02 23:51:47
東京ばな奈とか?
631:デフォルトの名無しさん
07/05/02 23:58:26
JETはどうした
632:デフォルトの名無しさん
07/05/03 00:04:46
だからコンパイルエラーはWin32APIとはなんも関係ないっつーの
633:デフォルトの名無しさん
07/05/03 04:08:24
>605
static つけないと呼び出されるたびに初期化されるんじゃないの
まあ動くならいいけど今後のこともあるし
634:デフォルトの名無しさん
07/05/03 04:19:50
static 必要っぽい気はするな。
WM_INITDIALOG で new してユーザ領域にそのポインタを置いて
それを使うともっといいんじゃないかとは思うけど。
同時に複数起動する必要がないならいいけど。
635:デフォルトの名無しさん
07/05/03 04:28:26
WM_PAINT内で
BeginPaint~EndPaintを二回以上やると
2回目からの描画内容が画面に出ないんですけど
どうしてですか?
636:デフォルトの名無しさん
07/05/03 04:35:46
EndPaint で更新すべき領域をクリアしてしまうんじゃない?
637:デフォルトの名無しさん
07/05/03 08:17:23
フォアグラウンドのIMEの状態を調べてIME_CMODE_ROMANがない場合VK_KANAを有効にしたいのですが。
チェックするタイミングはキーフックとタイマーのどちらが良いでしょうか?
638:デフォルトの名無しさん
07/05/03 08:46:24
>>637
その解法は、両方どつぼりそうな予感。
639:デフォルトの名無しさん
07/05/03 08:49:04
入力対象が確定していれば、
そいつのWM_SETFOCUSメッセージ時じゃだめか?
640:デフォルトの名無しさん
07/05/03 11:48:30
状態が変化する前に、処理すればいいのに
641:デフォルトの名無しさん
07/05/03 11:53:57
WM_PAINTのタイミングで描画しています
ウィンドウを大きくするときは再描画されるのですが小さくするときはされません
どちらでも再描画されるようにするにはどうすればよいでしょうか?
642:デフォルトの名無しさん
07/05/03 12:08:16
>>641
もう少しくやしく。
もしかしたら、違う要因かも知れないから。
643:デフォルトの名無しさん
07/05/03 12:09:51
WS_HREDRAW/WS_VREDRAWとか?
644:641
07/05/03 12:28:08
>>642
最大化ボタンを押したりウィンドウの右下をドラッグしてウィンドウを大きくした場合、
それに連動してウィンドウ内の画像が書き換えられます。
そのときにcase WM_PAINT:を通過していることをMESSAGEBOXを表示させて確認しました
最大化から元に戻す場合やウィンドウの右下をドラッグしてウィンドウを小さくした場合、
ウィンドウ内は再描画されません
(同様にMESSAGEBOXで確認しました)
645:デフォルトの名無しさん
07/05/03 12:28:47
>>643
MSDNやGoogleを検索しましたがなかなか情報がでてきません
関連資料あればお願いします
646:デフォルトの名無しさん
07/05/03 13:03:47
>>645
CS_HREDRAW CS_VREDRAW
647:デフォルトの名無しさん
07/05/03 13:08:19
>>644
WM_PAINT描画部さらせる?
648:デフォルトの名無しさん
07/05/03 13:14:26
>>647
LRESULT WINAPI MsgProc( HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam )
{
switch( msg )
{
case WM_DESTROY:
Cleanup();
PostQuitMessage( 0 );
return 0;
case WM_PAINT:
MessageBox(hWnd, "ok", "check", 0);
Render();
ValidateRect( hWnd, NULL );
return 0;
}
return DefWindowProc( hWnd, msg, wParam, lParam );
}
649:デフォルトの名無しさん
07/05/03 13:26:03
エクスプローラの縮小版表示で独自の画像形式を表示させたいんだけど、
どうやったら出来ますか?
650:デフォルトの名無しさん
07/05/03 13:27:39
>>649
独自の画像形式とは?
自分が考えたオリジナルフォーマット?
651:デフォルトの名無しさん
07/05/03 13:32:41
>>648
ソースあげ
652:649
07/05/03 13:33:52
>>650
自分が考えたフォーマットもありますし、RLAなどの標準で表示されないフォーマットもあります。
653:デフォルトの名無しさん
07/05/03 13:34:55
>>649
IExtractImage を実装してレジストリに登録
654:デフォルトの名無しさん
07/05/03 13:41:28
>>649
>>653の補足
URLリンク(msdn.microsoft.com)
655:デフォルトの名無しさん
07/05/03 13:52:42
>>641
WM_SIZE で InvalidateRect すれば?
656:デフォルトの名無しさん
07/05/03 13:57:26
>>655
WM_PAINTをWM_SIZEに書き換えたところうまくいきました
相談にのっていただいた皆様本当にありがとうございました
657:デフォルトの名無しさん
07/05/03 14:03:31
WM_SIZE でレンダリングしたのか。
それっていいのか?
というか、WM_PAINT は処理しないのか?
658:デフォルトの名無しさん
07/05/03 14:03:42
>>656
乙。
連休を楽しめ。
659:デフォルトの名無しさん
07/05/03 14:06:00
>>657
WM_SIZEでInvalidateRectをコールし、
WM_SIZE時の範囲を更新範囲に追加したんお
660:デフォルトの名無しさん
07/05/03 14:09:06
レンダリング?
661:デフォルトの名無しさん
07/05/03 14:14:02
>>659
おk。
>>660
>>648
662:デフォルトの名無しさん
07/05/03 14:18:35
レスどうも
>>639
入力中の英和混在入力のモード切替に対応したいので
WM_SETFOCUSじゃ無理なんです。
663:デフォルトの名無しさん
07/05/03 14:44:44
>>637
>フォアグラウンドのIMEの状態を調べてIME_CMODE_ROMANがない場合
>VK_KANAを有効にしたいのですが。
>チェックするタイミングはキーフックとタイマーのどちらが良いでしょうか?
>>662
>入力中の英和混在入力のモード切替に対応したいので
>WM_SETFOCUSじゃ無理なんです。
エスパーじゃないんで要点を詳しく。
現状の具体的な問題点と、その解法にIMEをもってきた理由を特に。
(難解が平易に変わるかも)
664:デフォルトの名無しさん
07/05/03 15:00:16
>>661
どこがレンダリング?w
665:デフォルトの名無しさん
07/05/03 15:20:42
つ[辞書]
666:デフォルトの名無しさん
07/05/03 15:29:50
>>664
Render ってのが見えないのだろうか。
667:デフォルトの名無しさん
07/05/03 15:31:24
【他動-14】 《コ》
~をレンダリングする、
〔画像{がぞう}などのデータを〕実際{じっさい}に描画{びょうが}する、
〔三次元{さんじげん}のオブジェクトを〕二次元{にじげん}の画像{がぞう}にする
◆データを解釈・計算して視覚的に表示すること。
・ Different browsers render HTML differently. ブラウザによって HTML のレンダリングは異なります。
668:デフォルトの名無しさん
07/05/03 15:37:01
話の流れを読まずに、文字の綴りだけをあげつらった揚げ足取りなんだから
そんなに反応することないのに・・
ちょっと前にも、こういう質問とは本来関係ないことで脱線しなかったか?
669:デフォルトの名無しさん
07/05/03 15:38:32
おや、本当だ
Render()見落としてたわ・・・・
670:デフォルトの名無しさん
07/05/03 15:40:20
>>667
広義には与えられたデータを元に視覚表示すること全てレンダリングだけど
広く一般にレンダリングと言ったら3Dモデルのレンダリングのことを指すのが言葉の難しいところだ
671:デフォルトの名無しさん
07/05/03 15:44:47
HTML レンダリングもよく使うと思うけど。
672:デフォルトの名無しさん
07/05/03 15:45:57
>>663
簡単に言えば、
「窓使いの憂鬱」と言うソフトにカナロックON/OFFで
キーマップを切り替える機能があるんですけど。
IMEの英和混在入力を使うとずれるんですねこれが。
原因は、IME_CMODE_ROMANとVK_KANAがシンクロしないからなんで、
グローバルフックかけて外部から梃入れしようかなと。
673:デフォルトの名無しさん
07/05/03 15:53:07
>>671
表示全てをレンダリングと言うよりは使うとは思うけど
それも結局ソッチの道の人がほとんどだしさ
まぁ、どうでもいいことだと思うけどw
674:デフォルトの名無しさん
07/05/03 16:30:38
アタシのことでけんかしないで!
675:649
07/05/03 16:31:19
>>653-654
サンクス
これからやってみます
676:デフォルトの名無しさん
07/05/03 16:37:13
>>672
開発は終わってるんだな・・・
これソース公開してないかい?
677:デフォルトの名無しさん
07/05/03 16:42:37
>>672
URLリンク(sourceforge.net)
ソースはここみたい。
ある程度処理を読んで解析した上で、対処した方がいいかもね。
678:デフォルトの名無しさん
07/05/03 17:00:08
hook.cpp
n.m_isKanaLockToggled = !!(GetKeyState(VK_KANA) & 1);
これを
HWND hWnd = GetForeGroundWindow();
ImmGetContext(hWnd);
ImmGetConversionStatus(hImc, &dwc, &dws)
n.m_isKanaLockToggled = (dwc & IME_CMODE_JAPANESE) && (dwc ^ IME_CMODE_ROMAN);
ImmReleaseContext(hWnd, hImc);
VS2003でないから試せないけど。
679:デフォルトの名無しさん
07/05/03 17:07:34
おーいXOR…
680:デフォルトの名無しさん
07/05/03 17:50:06
n.m_isKanaLockToggled = (dwc & IME_CMODE_JAPANESE) && (dwc & ~IME_CMODE_ROMAN);
681:デフォルトの名無しさん
07/05/03 17:54:23
&~でも^でもどっちでもよくね?
ダメな理由があるなら別だけど
682:デフォルトの名無しさん
07/05/03 18:27:44
っ どっちもだめ
683:デフォルトの名無しさん
07/05/03 18:54:37
>>681
XORとNOT&ANDが同じ動作とでも思ってるの?
684:デフォルトの名無しさん
07/05/03 18:55:51
CPUの中身は全部XORの組み合わせ
685:デフォルトの名無しさん
07/05/03 19:16:48
>>683
もちろんです
686:デフォルトの名無しさん
07/05/03 19:19:09
00001000 ^ 11111111 = 11110111 TRUE
00001000 ^ 11110111 = 11111111 TRUE
687:デフォルトの名無しさん
07/05/03 19:20:14
>>685
これは すごい ゆとり
688:デフォルトの名無しさん
07/05/03 19:23:27
10以外の位取りはゆとりで教育課程から消えたけど
ビット演算も学校で教えてたっけ?
689:デフォルトの名無しさん
07/05/03 19:29:01
ビット演算まではなかったと思う。
690:デフォルトの名無しさん
07/05/03 19:29:24
学校で習ったかどうかなんて関係ない。
691:デフォルトの名無しさん
07/05/03 19:32:11
工業乙
692:デフォルトの名無しさん
07/05/03 19:34:31
どっちかのbitが立ってることを確認するために
if(hoge & 0x000000C0)
みたいな書き方出来ると思うのですが
両方のbitが立ってることを確認したければ
if(hoge & 0x000000C0 == 0x000000C0)
って書くしか方法ないですか?
693:デフォルトの名無しさん
07/05/03 19:42:07
hoge & 0x000000C0 & 0x000000C0がある
694:デフォルトの名無しさん
07/05/03 19:43:01
if((hoge & 0x000000C0) & 0x000000C0)
695:デフォルトの名無しさん
07/05/03 19:43:38
全部不正解
696:デフォルトの名無しさん
07/05/03 19:44:36
00001000 ^ 11111111 = 11110111 TRUE
00001000 ^ 11110111 = 11111111 TRUE
を
00001000 &^ 11111111 =
00001000 &^ 11110111 =
にするとどうなるの?
697:デフォルトの名無しさん
07/05/03 19:46:55
>>690
ゆとり教育なんか学力の低下に関係ないと言いたいわけですね。
698:デフォルトの名無しさん
07/05/03 19:50:50
マスクすれ
699:デフォルトの名無しさん
07/05/03 19:52:41
プログラムの勉強の前に情報技術基礎から勉強する事を勧めたいね
700:デフォルトの名無しさん
07/05/03 19:54:48
>>691
高専の専攻卒で悪かったな
701:デフォルトの名無しさん
07/05/03 19:54:54
こうするんだよ
if(!((hoge & 0x000000C0) ^ 0x000000C0))
702:デフォルトの名無しさん
07/05/03 19:58:01
if((hoge & 0x00000080) && (hoge & 0x00000040))
703:デフォルトの名無しさん
07/05/03 19:59:30
>>680
これだろ
n.m_isKanaLockToggled = (dwc & IME_CMODE_JAPANESE) && ~(dwc & IME_CMODE_ROMAN);
704:デフォルトの名無しさん
07/05/03 20:00:44
何で皆向きになってるんだwwwwwwwwwww血だなwwwwwwwwwそんな俺もwwwwwwwwwwww
705:デフォルトの名無しさん
07/05/03 20:01:03
↑
~→!
706:デフォルトの名無しさん
07/05/03 20:01:52
>>678-704
バカが!!!
if(1)
これだろ
707:デフォルトの名無しさん
07/05/03 20:02:39
>>685
久々に開いた口が塞がらないぜ
708:デフォルトの名無しさん
07/05/03 20:02:54
定数が複数あるのが美しくないな。
if(~(hoge | ~0x000000C0))
こうだろ。
709:デフォルトの名無しさん
07/05/03 20:03:30
【高速化】ビット演算 0x02
スレリンク(tech板)
710:デフォルトの名無しさん
07/05/03 20:04:35
>>708
お前の美しいという言葉に全米が泣いた
だがそのコードはとても美しいとは思わない
これが美しいコードの見本だ
if(0)
711:デフォルトの名無しさん
07/05/03 20:04:47
ここは Win32API スレだっつーの!
712:デフォルトの名無しさん
07/05/03 20:07:41
そして皆我にかえるわけだが
チェックボタンやラジオボタンでBS_ICONなどでアイコンにする事はできるんですが、
そのアイコンにマウスをあわせたら文字が浮き出るようにするやり方がわからないです。
713:デフォルトの名無しさん
07/05/03 20:09:12
>>708
間違ってない?
714:デフォルトの名無しさん
07/05/03 20:10:58
>>712
マウスメッセージ拾って、コモンコントロールのToolTipでガンバレ
715:デフォルトの名無しさん
07/05/03 20:11:03
>>708
おまえ勘違いしてるだろ
716:デフォルトの名無しさん
07/05/03 20:11:53
>>714
あー、やっぱマウスメッセージ拾うしかないのか
サンクス
717:デフォルトの名無しさん
07/05/03 20:13:44
>>693 >>694 >>708
久々に馬鹿三匹発見
718:デフォルトの名無しさん
07/05/03 20:14:03
連休的優しさ乙。
719:デフォルトの名無しさん
07/05/03 20:14:52
【高速化】ビット演算 0x02
スレリンク(tech板)
720:708
07/05/03 20:24:11
ちょっと間違えただけじゃないか。
指摘ついでに訂正しておいてくれよw
if(!~(hoge | ~0x000000C0))
721:デフォルトの名無しさん
07/05/03 20:49:47
ウィンドウを作らずに音量とかハードウェアの安全な取出しがあるところにインジケータを追加出来ますか?
722:デフォルトの名無しさん
07/05/03 20:55:27
非表示のウィンドウを作れ
723:デフォルトの名無しさん
07/05/03 20:59:36
いい加減あからさまな釣りに反応するのやめろよ
724:デフォルトの名無しさん
07/05/03 21:02:56
考え方を変えれば良いんだ。
表示されるまではウインドウじゃない、ただのハンドルなんだと。
725:デフォルトの名無しさん
07/05/03 21:05:26
僕ハッカー
726:デフォルトの名無しさん
07/05/03 21:05:45
僕バッカー
727:デフォルトの名無しさん
07/05/03 21:08:05
>>721
そのようなことはできません
728:デフォルトの名無しさん
07/05/03 21:08:19
WM_CREATEを華麗にスルーだ!
729:デフォルトの名無しさん
07/05/03 21:23:20
バカバッカー
730:デフォルトの名無しさん
07/05/03 21:42:08
残り3日
731:デフォルトの名無しさん
07/05/03 21:58:42
俺チンコ
732:デフォルトの名無しさん
07/05/03 22:29:21
if(!(~hoge & 0x000000C0))
733:デフォルトの名無しさん
07/05/03 22:48:15
なんでZARDが入ってないんだよ
734:デフォルトの名無しさん
07/05/03 23:41:09
WANDSじゃダメか?
735:デフォルトの名無しさん
07/05/04 12:40:33
>>721
最近3日に1回はその質問見てるような気がする
736:デフォルトの名無しさん
07/05/04 13:22:41
間欠泉のようなもんだから(3回目)
737:デフォルトの名無しさん
07/05/04 14:07:54
DLLから窓へデータを送るにはどうすればいいの?
738:デフォルトの名無しさん
07/05/04 14:09:48
WM_COPYDATA
739:デフォルトの名無しさん
07/05/04 14:30:08
>>737
パケでも取得するのかい?
740:デフォルトの名無しさん
07/05/04 14:35:20
WORDとハンドルがひとつなんですけど
741:デフォルトの名無しさん
07/05/04 14:37:05
自分でメモり割り当ててlpDataにポインタ入れるんだよ
742:デフォルトの名無しさん
07/05/04 14:39:26
構造体使えばいいだろ
743:デフォルトの名無しさん
07/05/04 14:42:53
>>740
それくらいだったらSendまたはPostMessageで直接独自のメッセージを送りつければいいと思う
744:デフォルトの名無しさん
07/05/04 15:42:37
MMF
745:デフォルトの名無しさん
07/05/04 17:51:38
映画見に行った?海賊のやつ。
ああコナンね。
( ゚д゚)ポカーン
746:デフォルトの名無しさん
07/05/04 17:57:23
(´・ω・`)知らんがな
747:デフォルトの名無しさん
07/05/04 18:02:51
コナン・ザ・グレードよりコマンドーだろ
748:デフォルトの名無しさん
07/05/04 18:05:46
た゛っちゅーの
749:デフォルトの名無しさん
07/05/05 00:46:15
SetWindowsHookExのコールバックをクラスのメンバ関数にする場合
どう書けばいいの?
(HOOKPROC)CMainDlg::KeyboardProcとすると
error C2440: '型キャスト' : 'overloaded-function' から 'HOOKPROC' に変換できません。
と怒られます。
750:デフォルトの名無しさん
07/05/05 00:49:23
staticなメンバ関数から呼び出す
751:デフォルトの名無しさん
07/05/05 00:54:29
行方不明じゃん
752:デフォルトの名無しさん
07/05/05 01:00:55
え?
753:デフォルトの名無しさん
07/05/05 01:03:29
そもそも静的にしないと住所不定
754:デフォルトの名無しさん
07/05/05 01:50:25
この処理は既に実行されています。
みたいな感じの時はHRESULTはどれを使えばいいんでしょうか?
755:デフォルトの名無しさん
07/05/05 02:01:47
E_KONOSHORIHA(略
756:デフォルトの名無しさん
07/05/05 02:06:27
E_ABORT
757:デフォルトの名無しさん
07/05/05 02:11:27
HRESULT hr = AtlHresultFromWin32(ERROR_ALREADY_INITIALIZED);
758:デフォルトの名無しさん
07/05/05 02:14:16
それがエラーではないというのならS_FALSEという手もある。
勿論その場合S_KONOSHORIHA(略も可。
759:デフォルトの名無しさん
07/05/05 02:39:44
AtlHresultFromWin32(ERROR_BUSY); でいいんじゃ。
760:デフォルトの名無しさん
07/05/05 08:34:39
その文章だと二つの意味に取れるな。
1.現在処理中なので、受け付けることができない。
2.この呼び出しを二回以上する必要は無い。
761:デフォルトの名無しさん
07/05/05 08:41:09
この呼び出しを二回以上する必要は無い。
なんですけど。FACILITY_ITFで自分で定義できるみたいですね。
どうもありがとう。
762:デフォルトの名無しさん
07/05/05 09:09:06
FORMAT_MESSAGE_FROM_SYSTEMは最大で何文字まで返ってくる可能性があるの?
763:デフォルトの名無しさん
07/05/05 09:19:32
∞
764:デフォルトの名無しさん
07/05/05 09:27:04
64KB。Unicodeで32K文字ってとこか。
765:デフォルトの名無しさん
07/05/05 09:29:25
実メモリが許す限りじゃね?
各エラーコードに対応するメッセージが全部わかれば最大どれくらいか解ると思うけど
つか、FORMAT_MESSAGE_FROM_SYSTEMはFORMAT_MESSAGE_ALLOCATE_BUFFERと一緒に使うもんだと思ってたんだけどw
766:デフォルトの名無しさん
07/05/05 09:31:27
>>764
詳しく
余談だけど、Unicode=2バイトじゃ無い
767:デフォルトの名無しさん
07/05/05 09:32:33
へぇ~
768:デフォルトの名無しさん
07/05/05 10:09:56
>>766
内部的に使ってるUNICODE_STRING構造体の制限。
あとWin32のW系APIで文字と言ったら暗黙にUTF-16符号単位のことを指してると思っていい。
769:デフォルトの名無しさん
07/05/05 10:52:47
FormatMessageへ渡すバッファってLPWSTRになってるけど
実際渡すのはLPWSTRへのポインタでは?
770:デフォルトの名無しさん
07/05/05 10:55:00
>>769
それは、FORMAT_MESSAGE_ALLOCATE_BUFFERの時ね
771:デフォルトの名無しさん
07/05/05 10:55:57
この事実に気付いた者は抹殺さr
772:デフォルトの名無しさん
07/05/05 11:31:01
自動的にメモリ確保してくれるんだろ
後LocalFreeしないとダメなんだよな使い終わったら。
773:デフォルトの名無しさん
07/05/05 11:35:05
あらかじめ確保したものを渡す関数と
勝手に確保して返してくれる関数の違いは
関数の仕様見て確認するしかないんですよね
ネーミングのルールとかありますか?
774:デフォルトの名無しさん
07/05/05 12:07:26
呼び出し側でバッファを用意して渡す場合、
バッファサイズも渡さないとイケナイから、わかる。
775:デフォルトの名無しさん
07/05/05 16:49:46
CopyMemoryの成否の判断ってどうするんでしょう
776:デフォルトの名無しさん
07/05/05 16:51:35
CopyMemory が失敗する状況って、メモリが壊れてる時とかか?
777:デフォルトの名無しさん
07/05/05 16:54:24
CopyMemoryってmemcpyの#defineじゃなかったっけか。
778:デフォルトの名無しさん
07/05/05 16:59:06
しかもmemcpyはコンパイラによってはインラインに展開される。
そんなものが失敗するような状況じゃエラーチェックの判定だって正しく行われるかどうか
分からんぞ。つまり考えるだけ無駄
779:デフォルトの名無しさん
07/05/05 17:20:52
memcpyはこういうときにエラーを返すということが定められていなかったと思う。
エラーになりそうな状況を考えると、思い付くのはヌルポインタなどメモリにアクセスできないとき。
それならWindowsが例外を投げてくるだろう。SEHで処理しろ。
780:デフォルトの名無しさん
07/05/05 17:45:48
IMAGE_IMPORT_DESCRIPTOR についての質問です。
Advanced Windows のAPIフックに関するソースコードを読むと、
モジュールのベースアドレス(modBaseAddr)と、
モジュールのハンドル(hModule)は "常に同じ" として
扱われているみたいですが、
これは保証されている事なのですか?
781:デフォルトの名無しさん
07/05/05 17:48:31
パケット取得でもするのかい?
782:デフォルトの名無しさん
07/05/05 17:55:03
特に用途はないです。
ただの興味本位ということで・・・
783:デフォルトの名無しさん
07/05/05 18:20:23
コンボボックスでドロップダウンリストが1行しか表示されません。
複数行を表示するにはどこを設定すればよいのでしょうか?
OS:WinXP
環境:Visual Studio 2005
言語:C++
784:デフォルトの名無しさん
07/05/05 18:21:32
下に広げる
785:デフォルトの名無しさん
07/05/05 18:26:46
コントロールのデザインのとこで、コンボボックスのドロップダウンボタンをクリックすると
コントロールの大きさを変えるのとドロップダウンリストの大きさを変えるのが切り替わる
786:783
07/05/05 18:28:22
>>784
エディット画面で選択項目表示部分を選択すると
縦方向に伸ばすことができなかったのですが
矢印ボタンのところをクリックすると縦方向に伸ばせました。
ありがとうございました。
787:デフォルトの名無しさん
07/05/05 18:42:21
ファイルマップオブジェクトにthisポインタの値を書き込むにはどうすれば良いですか?
788:デフォルトの名無しさん
07/05/05 19:06:57
>>787
thisポインタの値を書き込めばいいと思います
789:デフォルトの名無しさん
07/05/05 19:43:57
thisポインタの値とは?
790:デフォルトの名無しさん
07/05/05 19:44:11
thisポインタの値のことだろ
791:デフォルトの名無しさん
07/05/05 21:18:42
メニューバーのオーナードローをするにはどうすれば良いでしょうか?
Adobe Reader(8.0)のメニューバーのような感じにしたいです。
792:デフォルトの名無しさん
07/05/05 22:08:50
メニューバー?
Reader8のメニューは普通だと思うが?
ツールバーか?
793:デフォルトの名無しさん
07/05/05 22:17:27
どうしてnCodeがマイナスだとすぐにCallNextHookExを返すの?
794:デフォルトの名無しさん
07/05/05 22:44:28
そういう決まりだから
795:791
07/05/06 00:18:21
>>792
URLリンク(kjm.kir.jp)
赤線で囲ってあるところなんですけど、なんて言うんでしょうか?
796:デフォルトの名無しさん
07/05/06 00:23:10
メニューバー
797:デフォルトの名無しさん
07/05/06 00:24:11
メニューにアイコンをつけたいとかそういう話?
798:デフォルトの名無しさん
07/05/06 01:04:42
質問です、以下のようなプログラムを現在制作しています。
コンソールアプリケーション
テキストをドラッグ&ドロップすることで、一定の処理をテキストファイルに対して行う。
「一定の処理」は、このアプリケーション用に書かれたDLLのによって変化する。
それで、DLLの検索&ロードをFindFirstFileとFindNextFile、LoadLibraryを用いて行っています。
そのプログラムなのですが、IDE(VC7)からでは設計通りに動作するのですが、それ以外では動作せず…。
どうやらFindFirstFileなどで、DLLが検索に引っ掛からないようなのです。
(おそらくはカレントディレクトリの問題なのでしょうが)、何故このようなことが起こるのでしょうか?
また、対策を教えてください。よろしくおねがいします。
799:791
07/05/06 01:11:24
アイコンは別にいらないのですが、Adobe Readerみたいにメニューバーの通常状態の色や、選択状態の色を変えたいのです。
あと、右上端にあるバツ印もどうやっているでしょうか?
800:デフォルトの名無しさん
07/05/06 01:11:40
GetModuleFileName
801:デフォルトの名無しさん
07/05/06 01:12:45
>>798
>(おそらくはカレントディレクトリの問題なのでしょうが)
そう思うなら、まずはGetCurrentDirectory()で調べるべきでは?
802:デフォルトの名無しさん
07/05/06 01:56:35
DLLを実行ファイルに含めて、一つの実行ファイルにすることって可能でしょうか?
803:デフォルトの名無しさん
07/05/06 02:05:33
>>802
無理やりリソースとして埋め込んで、実行時に復元すれば?
804:デフォルトの名無しさん
07/05/06 02:08:48
hIconでアイコンを指定しました。
けど
URLリンク(kjm.kir.jp)
みたいにタスクバー上でしかアイコンが変わってません。
どうしたらプログラム上でもアイコンを変えれますか?
805:デフォルトの名無しさん
07/05/06 02:12:05
hIconSm を放置してるとか?
806:798
07/05/06 02:17:35
>801
ありがとうございます、さっそく調べてみました。
すると、カレントディレクトリがC:\Document and Settings\(ユーザー名)となっているようです。
これは何故なのでしょうか、理由をどなたか知っていれば教えていただければと。
807:デフォルトの名無しさん
07/05/06 02:19:44
>>805
素早いレスありがとうございます。
hIconSmの存在も調べました。
でもwindows95以外はWNDCLASSEXを使えないらしく、だからhIconSmも使えないそうなんです。
実際hIconSmも指定してビルドするとWNDCLASSにはhIconSmは存在しないってエラーがでました。
808:デフォルトの名無しさん
07/05/06 02:19:51
理由を考えるよりカレントディレクトリに依存しないようにプログラムを変えろ
809:デフォルトの名無しさん
07/05/06 02:23:44
>>807
Windows 95 以降全部で使えるぞ。
810:デフォルトの名無しさん
07/05/06 02:24:58
むしろどこに Win95 以外使えないって書いてるのか教えてくれ
811:デフォルトの名無しさん
07/05/06 02:28:52
Windows 95のころのSDKじゃね?
当然「Windows 95以外」が意味してるのはNT 3.5とかWindows 3.1とか
812:デフォルトの名無しさん
07/05/06 02:31:49
>>809-811
あれ、つかえるんですか。じゃあそれでやってみます。
813:デフォルトの名無しさん
07/05/06 02:32:14
>>811
VC++ 5.0 あたりか。
814:デフォルトの名無しさん
07/05/06 02:42:04
hIconSmで指定しても駄目でした。
ちなみにVC++ 6.0をつかってます
815:デフォルトの名無しさん
07/05/06 02:45:57
あ、16 ビット版のアイコンをエディットしてないとかはどうか?
確か VC++ 6.0 あたりは、アイコンを新たに作成したときは
32 ビット版と 16 ビット版が両方作られてたはず。
どっかでエディット対象を選択できるんで、
それで 16 ビット版の方もエディットすればいいはず。
816:デフォルトの名無しさん
07/05/06 02:47:11
ちゃんと WNDCLASSEX 使ってるか? WNDCLASS じゃないぞ
817:デフォルトの名無しさん
07/05/06 02:53:25
>>815
一つしか作られてないと思うのですが、どこに作成されるのでしょうか?
>>816
WNDCLASSEXに変えても駄目でした。
818:デフォルトの名無しさん
07/05/06 02:54:32
>>817
1つのファイルに2つのアイコンが入ってるはず。
819:デフォルトの名無しさん
07/05/06 02:55:45
ビットじゃないやw ドットだ。
820:デフォルトの名無しさん
07/05/06 02:58:26
>>818
一つしかアイコンはありませんでした・・・
もちろん32のほうだけしかありません・・・
821:デフォルトの名無しさん
07/05/06 02:59:02
>>820
どういう風に確認した?
822:デフォルトの名無しさん
07/05/06 03:01:58
>>821
アイコンの保存場所がワークスペースがあるフォルダなのでそこを確認しました
823:デフォルトの名無しさん
07/05/06 03:04:56
>>822
アイコンの中身は見たのか?
824:デフォルトの名無しさん
07/05/06 03:07:30
WNDCLASSEXでhIconSmを指定してる箇所のソースを
ここに張り付けた方が解決が早い予感
825:デフォルトの名無しさん
07/05/06 03:11:51
>>823
アイコンの中身は見ました。
プロパティも確認しました。
826:デフォルトの名無しさん
07/05/06 03:13:43
メインのとこだけ貼り付けます
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpszCmdLine, int nCmdShow) {
MSG msg; //メッセージ情報格納用構造体
WNDCLASSEX wc; //ウィンドウクラス
HWND hWnd; //ウィンドウハンドル
//*****ウィンドウクラスの設定*****//
wc.cbSize = sizeof(WNDCLASSEX); //構造体サイズ
wc.hInstance = hInstance; //インスタンスハンドル
wc.lpszClassName = szClassName; //ウィンドウクラス名
wc.lpfnWndProc = WindowProc; //ウィンドウプロシージャ名
wc.style = CS_HREDRAW|CS_VREDRAW; //ウィンドウスタイル
wc.hIcon = LoadIcon(hInstance,"IDI_ICON1"); //アイコンハンドル
wc.hIconSm = LoadIcon(hInstance,"IDI_ICON1");
wc.hCursor = LoadCursor(NULL,IDC_ARROW); //カーソルハンドル
wc.lpszMenuName = "saisei"; //メニュー
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
wc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH); //ウィンドウの背景色セット
//*****ウィンドウクラス登録*****//
if(!RegisterClassEx(&wc)) return FALSE; //登録失敗
//*****ウィンドウの作成*****//
hWnd = CreateWindow(szClassName,"再生プログラムだべ",WS_OVERLAPPEDWINDOW,440/*CW_USEDEFAULT*/,650/*CW_USEDEFAULT*/,400,100,NULL,NULL,hInstance,NULL);
/*hWnd = CreateWindow(ウィンドウクラス名,ウィンドウタイトル,ウィンドウスタイル,ウィンドウの水平座標位置,ウィンドウの垂直座標位置,ウィンドウの幅,ウィンドウの高さ,親ウィンドウのハンドル,メニューのハンドル,インスタンスハンドル)*/
//*****ウィンドウの表示*****//
ShowWindow(hWnd,nCmdShow); //ウィンドウの表示状態設定
UpdateWindow(hWnd); //ウィンドウの表示領域更新
//**********メッセージループ***************
while(GetMessage(&msg,NULL,0,0)){TranslateMessage(&msg);DispatchMessage(&msg);
}
/*while(メッセージの取得){メッセージの変換,メッセージをプロシージャへ送信}*/
return msg.wParam;
}
827:デフォルトの名無しさん
07/05/06 03:14:16
>>806
IDEから実行したらおそらくカレントディレクトリはプロジェクトファイルのあるディレクトリになってるはず。
ファイルをドラッグ&ドロップして起動した場合は、ファイルのあるところがカレントディレクトリになってるはず。
理由?知らね。そのほうが都合がいいからだろ。
DLLをEXEと同じディレクトリに置くことにしてるのなら>>800とか。
828:デフォルトの名無しさん
07/05/06 03:14:36
アイコンファイルをうpってみたら?
829:デフォルトの名無しさん
07/05/06 03:20:49
アイコンをアップしました
URLリンク(vipup.sakura.ne.jp)
830:デフォルトの名無しさん
07/05/06 03:31:28
確かに 32 ドットのしか入ってないね・・・。
>>826 も別に変には思えないし。
じゃ、16 ドットのも作ってみたらどうかな。
831:デフォルトの名無しさん
07/05/06 03:40:40
>>826
"IDI_ICON1"
を
MAKEINTRESOURCE(IDI_ICON1)
に置換すれ
ウチの環境では、それでうまくいった
832:デフォルトの名無しさん
07/05/06 03:54:18
MSDNより
>LoadIcon 関数がロードできるのは、GetSystemMetrics 関数の SM_CXCURSOR と SM_CYCURSOR
> の各フラグに相当するサイズのアイコンだけです。それ以外のサイズのアイコンをロードするには、
>LoadImage 関数を使ってください。
wc.hIconSm = LoadImage(hInstance,"IDI_ICON1", IMAGE_ICON, 16, 16, LR_DEFAULTCOLOR);
でどお?
>SM_CXCURSOR と SM_CYCURSOR
これ誤植っぽい、SM_CXICON が正しい。
833:デフォルトの名無しさん
07/05/06 03:56:50
32 ドットのアイコンを hIconSm にセットしたら、
自動的に縮小された(もちろん画像は粗い)なったはずなんだがなあ・・・。
834:デフォルトの名無しさん
07/05/06 07:51:11
>>833
リソースの作り方によるよ
835:デフォルトの名無しさん
07/05/06 11:45:27
WindowsMediaInfomationをVCで使ってPCの情報を抜きたいです。
VBのサンプルを見つけたのですが、VC6.0への置き換え方法がよくわかりません。
URLリンク(www.wmifun.net)
VCではどうやってCOM呼び出しを実装すればよいのでしょうか?
APIの質問ではなくて、VCの質問になるかもしれませんが、ご教授お願い致します。
836:デフォルトの名無しさん
07/05/06 11:47:11
WTL
837:デフォルトの名無しさん
07/05/06 11:51:42
URLリンク(zatsugaku.info)
838:デフォルトの名無しさん
07/05/06 11:52:51
驚異的に改行されてねえ
とか思ったけどIEだとOKなのか
839:デフォルトの名無しさん
07/05/06 11:59:46
>>831
うまくいけました。
ありがとうございます!
>>832
なんか
error C2440: '=' : 'void *' から 'struct HICON__ *' に変換することはできません。
っていわれました。
みなさま数々のご教授ありがとうございました。
またなにかエラーのときはよろしくおねがいします。
840:デフォルトの名無しさん
07/05/06 12:33:32
Wininetに関して質問なんですが、InternetOpenはアプリの起動時に実行すべきでしょうか?
それとも通信の必要がある場合にその都度の方がいいですかね?
841:デフォルトの名無しさん
07/05/06 13:22:32
ダイアルアップの人もいるし、、、ノートで出先とか
842:デフォルトの名無しさん
07/05/06 13:54:59
>>840
アプリの起動時、ネットにつながっていなくてもInternetOpen
は成功する。
実際にネットに接続するAPIが呼ばれるまでにネット接続
が確立すればOK。
843:デフォルトの名無しさん
07/05/06 14:10:42
ということはどちらでも良いって事でしょうか。
タイムアウトもその都度設定するのはアレなんで起動時に呼ぼうと思います。
ありがとうございました!
844:デフォルトの名無しさん
07/05/06 14:14:08
>>843
URLリンク(msdn2.microsoft.com)
この辺りを一読しとけ
845:デフォルトの名無しさん
07/05/06 14:54:04
タイムアウトは効いたっけ?効果なかった気がする
846:デフォルトの名無しさん
07/05/06 16:09:17
へ ヘ │ /∧ヽ__/∧ヽ_ ~∞
/ハ \_/ 八 │ ∞~ /ノ ヽ;;;;;;;;;丿/ ヽ\\ ~∞
/_______) │ (;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;)
{_____愛●国_| │ [_愛●國______] .
|ミ/ ー―◎-◎-). │ (__ (__ ミミミミミミミミ|
(6 (_ _) ) │ ) ミミミミミミミ)
ノ/| .∴ ノ 3 ノ イエーイ.. │ ( ノ(。。 ) ι∵)リ||σ)ミミ)
ノ/ _\_____ノ__ │ 丶 ε U j ノミミ)
ノ/ / ) 嫌 ≡ ;;;; ) `__ノフ. │ イエーイ ヽ ,,_ U ___,,ノ /
U |__|. 韓 ≡ ;;; )_/ ∈) │ \,,______,ノ 〈
| | .流 ≡ ) ̄ ̄ ̄´ │ _∩ 厶_______ノ⌒丶.
ヽ \ ) │(S 〉 / ANTI KOREA
847:840
07/05/06 17:10:49
すいません、>>844さんのリンク先でサンプル見つけました。
タイムアウトも効かないみたいなので非同期で実装しようと思います。
ありがとうございました。
848:デフォルトの名無しさん
07/05/06 17:48:51
これはどういう意味ですか?
イベント ID (0) (ソース testsrv 内) に関する説明が見つかりませんでした。
リモート コンピュータからメッセージを表示するために必要なレジストリ情報またはメッセージ DLL ファイルがローカル コンピュータにない可能性があります。
この説明を取得するために /AUXSOURCE= フラグを使用することができる可能性があります。詳細については、ヘルプとサポートを参照してください。
次の情報はイベントの一部です: Service started.
849:デフォルトの名無しさん
07/05/06 18:15:18
>>837 参考になりました。ありがとうございます。
850:デフォルトの名無しさん
07/05/06 18:26:12
>>848
>詳細については、ヘルプとサポートを参照してください。
851:デフォルトの名無しさん
07/05/06 19:57:31
どうしても行き詰まってしまい質問させて頂きます。
現在、HICONのキャッシュを作成し、次回からはキャッシュを元にHICONを復元させるプログラムを組んでおります。
GetDibsを使いHICONのカラーとマスクをそれぞれ、32bit, 16bitで取得し吐き出せています
吐き出させる直前の内容をCreateIconIndirectでHICONにし描画すると問題はありません
しかし、キャッシュから得た内容でHICONを作成し描画すると、アイコンによって透明可に失敗しています
皆様お知恵をお貸しくださいorz
852:デフォルトの名無しさん
07/05/06 20:09:27
吐き出す前と後で何か情報が変わってんだろ
853:デフォルトの名無しさん
07/05/06 20:24:47
そのキャッシュは正しく作れてんの?
854:デフォルトの名無しさん
07/05/06 21:33:05
レスありがとうございます。
吐き出すデータとキャッシュに格納したデータのチェックサムを取ってみました所一致しました。
キャッシュ側のテストもかなり行っておりますので、キャッシュ側の問題とはやはり考えにくいですorz
現在、何故かWinrarのアイコンだけが不透明にならないという摩訶不思議な状態です;
もう一度、アイコンの取得全体を作り直して見たいと思います
855:デフォルトの名無しさん
07/05/06 22:02:40
まず、
①キャッシュなしで、想定する動作になるか確認。
②数キャッシュ(2個ぐらい)で、想定する動作になるか確認。
③>>851で失敗したキャッシュ数の半分のキャッシュ数で、想定する動作になるか確認。
んで結果は?
856:デフォルトの名無しさん
07/05/06 22:34:29
>>855さん
①現在はテスト中ですので、キャッシュから取得に失敗した場合は何もしないようにしています
②確認済みです。
③確認済みです。特定のアイコンのみが意図した通りの描画がされず、また、チェックサムを見る限りキャッシュデータ自体は問題ありませんでした。
857:デフォルトの名無しさん
07/05/06 22:36:34
>>856
②は成功?③は失敗?
858:デフォルトの名無しさん
07/05/06 22:46:47
いまいち>>851の流れが見えん。
問1.HICONのキャッシュとは何?
独自フォーマットのデータ?
問2.吐き出させる直前の内容とは?
exe.dlなどのモジュールに入ってるリソースそのものの事?
問3.キャッシュから得た内容でHICONを作成し描画する関数は何?
CreateIconIndirectの事?
問4.
>アイコンによって透明可に失敗しています
>Winrarのアイコンだけが不透明にならない
ここを詳しく
859:デフォルトの名無しさん
07/05/06 23:14:35
Alpha付き32ビットアイコンの予感
860:デフォルトの名無しさん
07/05/07 00:11:01
レス有り難うございます。
意見を頂けて大変恐縮です。
>>857さん
こちらでは動作上は成功と見ています
>>858さん
問1: 保存したいHICONをGetIconInfoで詳しい情報を取得した後に、カラーとマスクのビットをGetDIBBitsで取得します
そして、取得した情報をキャッシュとして保存するようにしております。
問2: 直前の内容はカラー、マスクのピクセル情報です。ビットマップの画像ビットと同じですね(^^;
問3: その通りです。キャッシュから、カラー、マスクのピクセル情報を得た後、CreateIconIndirectでHICONを作成し、DrawIconで描画するようにしております
問4: Winrarのアイコンだけは本来透過される所が黒くなっていますorz
カラーとマスクをそれぞれ別に描画させてみると、
カラーではきちんとWinrarの本が束ねられている所以外は黒く
マスクでは、本が束ねられている所は黒く、それ以外は白くなっている事は確認済みです
BitBltを用いるとうまく透過されるのですが、今度はBitBltでは別の問題が発生するという状態に・・・
長文申し訳ありません
861:デフォルトの名無しさん
07/05/07 00:29:56
WinRARのアイコンは32bitカラーだったりしない?
862:851
07/05/07 01:55:06
>>861さん
確認してみた所、32bitではありませんでした;
それと、何とか解決することができましたorz
GetDIBBitsを使わず、別の方法でビットを取得した所うまく行きました…
原因が全く分かりませんが、このまま作っていきたいと思います
こんな質問に付き合って下さった皆様本当に有り難うございました。
863:デフォルトの名無しさん
07/05/07 02:35:08
>>862
CreateIconIndirectで使うマスクは2bitビットマップのはず。
16bitでなく2bitでキャッシュしてみたら?
なんか解決しちゃったみたいだけど。
864:デフォルトの名無しさん
07/05/07 08:12:30
>>862
そうやね、可能性あるね。
使う色が違う他のアイコンにしたら、また問題が出るんではないかと
865:デフォルトの名無しさん
07/05/07 11:24:07
>>863
アイコンのマスクビットマップは2bitじゃなくて高さ2倍の1bitじゃないか?
866:デフォルトの名無しさん
07/05/07 21:14:42
URLリンク(support.microsoft.com)
ここを参考にExcelを操作するプログラムを作っているのですが
Worksheets(2).Delete
に相当することをやるにはどうしたらいいんでしょうか?
867:デフォルトの名無しさん
07/05/07 21:54:18
WM_PAINTについて、OSによってはメッセージループに来ず、
直接コールバックに来るとかなどの、
詳しい挙動が載っているサイトとかありましたら教えてください。
868:866
07/05/07 21:55:47
環境
Win2000, Excel2000, VC++6, SDK
869:デフォルトの名無しさん
07/05/07 22:04:57
>>866
>>868
CLSIDFromProgID(L"Excel.Application", &clsid);
こいつは、ProgIDからCLSIDを求めている。
んで、そのCLSIDからExcel.ApplicationインターフェイスのpXlAppを取得してる。
pXlAppからWorkbook伝いにWorksheetsを求めればいいんじゃない?
870:869
07/05/07 22:07:39
メソッドとかのノードがわからんだったら
oleviewとかで調べてみてわ?
871:デフォルトの名無しさん
07/05/07 22:08:18
>>867
来ないから安心しろ
来るといったらせいぜいSendMessageした時くらいだろ
872:デフォルトの名無しさん
07/05/07 22:08:34
×てわ
○ては
873:デフォルトの名無しさん
07/05/07 22:09:16
>>871
SendMessageはメッセージループから来るだろ・・・
874:デフォルトの名無しさん
07/05/07 22:09:59
>>873
MSDN嫁
875:867
07/05/07 22:13:59
>>871
自分が実験した感じでは、9xでは起動時に、
XPでは通常時でも半々ぐらいで直接コールバックに来るみたいです。
また、XPで直接コールバックに来た場合、
DefWindowProcをしない場合に、メッセージループにも来てくれるみたいです。
876:866
07/05/07 22:15:49
// Call Workbooks.Add() to get a new workbook...
IDispatch *pXlBook;
{
VARIANT result;
VariantInit(&result);
AutoWrap(DISPATCH_PROPERTYGET, &result, pXlBooks, L"Add", 0);
pXlBook = result.pdispVal;
}
この後です。pXlBook を使ってどうAutoWrapを使えばいいのかが分かりません。
ブック.Worksheets(xxx).xxxxxxxx
877:デフォルトの名無しさん
07/05/07 22:19:35
>>875
同一スレッド内で UpdateWindow の類が発生したときには直接コールバックに来る。
他スレッド(プロセス)からの場合はどうだったか覚えてない。
ウィンドウが Activate/Deactivate されたときの再描画の挙動も普段の WM_PAINT とは
違っていたような記憶もある。
878:867
07/05/07 22:33:47
>>877
>Activate/Deactivate
自分も違うような感じがしていました。
もう一度実験してみます。