■過去ログ置き場に戻る■
1-
前250
次250
最新50
[memo]
"9999999999_00.html#R20"
という感じで、URLの最後に "#R
レスNo
" を追加すると幸せになれます。
Win32API 質問箱 Build8
501
名前:
デフォルトの名無しさん
:03/01/21 12:31
>>500
インクルードファイルのほうも新しいものを参照するようにしてあるのか?
502
名前:
デフォルトの名無しさん
:03/01/21 12:45
IEでも対応できていないことを無理やりやろうとすると、
逆に互換性が失われるのでは?
これからMSはなにやるかわからんぞ。
503
名前:
602
:03/01/21 12:58
>>601
しています。
というより、自分でインクルードファイルを置き換えたんですけどね(コピペで)
VisualC++6内の「include」フォルダ内を新しいもの(PlatformSDKのinclude)に変えた。
504
名前:
デフォルトの名無しさん
:03/01/21 13:55
カード・ワーズのゲームエディターのようなTABをメニューの下に
つけるしかたを教えてください。
505
名前:
デフォルトの名無しさん
:03/01/21 15:44
DLできるPlatformSDKとVC++のincludeのディレクトリ構成ってちがくない?
そのまま上書きはまずいんちゃう?
506
名前:
デフォルトの名無しさん
:03/01/21 16:04
普通はIDEのインクルードパスの設定でPlatform SDKのほうを優先するように変えたり、
環境変数いじったりで対応するよな。
あとWINVERその他のマクロが適切に設定されていない可能性もあるか。
507
名前:
デフォルトの名無しさん
:03/01/21 16:21
バウンダリ文字列を作るAPIなんて公開されているのでしょうか?
↓こんなの
boundary="=_NextPart_000_001A_01C016CF.64AA5620"
IE も Outlook も同じフォーマットなので API であるのかな?と
508
名前:
デフォルトの名無しさん
:03/01/21 16:56
後ろ8byteは Uuidっぽいが。
509
名前:
デフォルトの名無しさん
:03/01/21 17:11
マシンに一意なIDを取るAPIってありますか?
510
名前:
デフォルトの名無しさん
:03/01/21 17:14
吹き出しみたいな形のツールチップを作る方法を教えてください。
511
名前:
デフォルトの名無しさん
:03/01/21 17:26
>>509
完全ではないが、MACアドレス。
512
名前:
デフォルトの名無しさん
:03/01/21 17:45
>>509
どの範囲で?
時間とか?
513
名前:
デフォルトの名無しさん
:03/01/21 17:58
リストビューのフォーカスの点線を実線にしたり色をつけたりしたいのですが、
どうしたらできるでしょうか。
514
名前:
デフォルトの名無しさん
:03/01/21 18:06
>>511
できれば NIC非装備のマシンでも使用したいんですが
>>512
イメージ的には、UNIXのhostid的なものです。
コントロールパネル→システムに出てくる、ごちゃごちゃした
IDっぽいのは、それとして使えるのかな?
515
名前:
デフォルトの名無しさん
:03/01/21 18:10
>>514
cpuidとか?
516
名前:
デフォルトの名無しさん
:03/01/21 18:48
>>514
GetCurrentHwProfile() の HW_PROFILE_INFO.szHwProfileGuid なんかは?
>コントロールパネル→システムに出てくる、ごちゃごちゃしたID
は違法コピーが無い世の中なら使用可
517
名前:
デフォルトの名無しさん
:03/01/21 19:20
>>476
アリガト!(´▽`)
518
名前:
497
:03/01/21 20:08
あのぉ・・・
>>497
ですけど放置ですか・・・
519
名前:
デフォルトの名無しさん
:03/01/21 20:45
>>509
初回だけCoCreateGuid()した値をレジストリにとっといて
2回目以後はそれを再使用ってのは却下か?
520
名前:
デフォルトの名無しさん
:03/01/21 20:58
>>516
いいかもしれないですね。
>>519
hostidの代替としては、ユーザが任意に変更しにくい値がいいんですが...
521
名前:
デフォルトの名無しさん
:03/01/21 21:49
>>520
任意に変更ってregeditで変更できてはまずいってことか?
522
名前:
デフォルトの名無しさん
:03/01/21 23:25
特定のアプリケーションが送受信しているパケットデータを
横取りして閲覧と改竄をしたいのですが、
Winsockを使いこめばそのようなことはできますか?
それともDDKを手に入れてガシガシガシやらないとできないですか?
523
名前:
デフォルトの名無しさん
:03/01/21 23:37
はっきりとRagnarokOnlineといいなさい
524
名前:
デフォルトの名無しさん
:03/01/21 23:41
>>522
libpcap
525
名前:
デフォルトの名無しさん
:03/01/21 23:47
>>522
改組するなら filter driver あたりを書くのが良いと思うけど>WDM詳しい人フォローしちくり
WDM 以前の環境ならカーネルレベルで TDI Hook ね。
閲覧するだけなら libpcap でも良いかもね。
一時的な hack で良いなら、通信先を hosts ファイルで 127.0.0.1 に
変更しちゃって、本来の接続先との間で proxy として動作するプログラム
書くのが簡単だと思う。
526
名前:
デフォルトの名無しさん
:03/01/22 00:05
その手のネットワーク系のプログラムを書くなら、Windows 捨てて UNIX に行った
方が早いと思うぞ。
FreeBSD で作ったルータを挟んで、そこで divert (4) 噛ますとか。
527
名前:
デフォルトの名無しさん
:03/01/22 00:36
BSD厨ここにも発見(・∀・)
528
名前:
522
:03/01/22 00:48
ttttttttttttttttttttttttthx!
明日(今日か)、本屋に行き詳しく調べます。
>>523
自分と他人を重ねないでね☆
529
名前:
デフォルトの名無しさん
:03/01/22 01:21
図星のようだな
530
名前:
デフォルトの名無しさん
:03/01/22 01:47
厨です。質問していい?
531
名前:
名無し@沢村
:03/01/22 01:49
>>526
ヌヒよ、そういうレスのことを一般的に「的はずれ」って言うんだよ。
532
名前:
デフォルトの名無しさん
:03/01/22 01:51
CreateCompatibleDCで作ったメモリーDCが
不要になったとき、元々あったBITMAPをメモリーDC戻さないで
DeleteDCしても動くのですがやっぱり悪いですか?
533
名前:
デフォルトの名無しさん
:03/01/22 01:55
>>532
Win98 や Me などで、使うたびにだんだんリソースが減っていっても
構わないなら、それでも別に良い(めったに使わないツールとか)。
534
名前:
デフォルトの名無しさん
:03/01/22 02:00
>>533
厨です。すばやいレスありがとう。
535
名前:
デフォルトの名無しさん
:03/01/22 02:03
>>527
どうした、何か BSD に恨みでもあるのか?
Win32 で IP パケットを低いレイヤーでいじろうとすると、どうしても kernel mode で
動くトコロに手を入れる必要があって難しい。開発中は、自分の書いたコードのバグ
で OS ごと落ちるしな。
divert (4) は、そのあたりの処理をユーザ層に切り出してるから開発は楽だぞ。
536
名前:
デフォルトの名無しさん
:03/01/22 02:05
ま、熱くなる前にスレタイ見ろってこった
537
名前:
デフォルトの名無しさん
:03/01/22 02:11
それを言ったら、標準 API だと無理、で終わりだろう。
538
名前:
522
:03/01/22 02:23
糸口さえつかめればなんでもいいけど。
ただ、いまBSDに手をつける気力は無いので、
今回はスルーしつつ、記憶にはとどめます。
539
名前:
デフォルトの名無しさん
:03/01/22 02:39
BSDなんかやるくらいならLinuxやるよ(藁
540
名前:
デフォルトの名無しさん
:03/01/22 03:10
>>539
BSDにはどういったイメージをお持ちで?
541
名前:
デフォルトの名無しさん
:03/01/22 03:12
>>540
OS X みたいなもの
542
名前:
デフォルトの名無しさん
:03/01/22 08:09
>>541
ネタレスカコイイ!
543
名前:
デフォルトの名無しさん
:03/01/22 10:31
Windowsで親プロセスの環境変数を変更する方法ってありましたっけ?
544
名前:
デフォルトの名無しさん
:03/01/22 14:42
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment
に環境変数書いて、 WM_SETTINGCHANGE を投げれば、
親プロセスの環境変数「も」変更できるだろう。
545
名前:
デフォルトの名無しさん
:03/01/22 14:50
>>543
SetWindowsHookExでDLLを侵入させてSetEnvironmentVariable
546
名前:
デフォルトの名無しさん
:03/01/22 15:23
>543
親がウインドウもってなかったら?
547
名前:
デフォルトの名無しさん
:03/01/22 15:29
>>546
ハァ?
548
名前:
デフォルトの名無しさん
:03/01/22 15:37
>>545
544?
PostThreadMessage
549
名前:
デフォルトの名無しさん
:03/01/22 15:38
って自分も間違っているし
x
>>545
o
>>547
550
名前:
デフォルトの名無しさん
:03/01/22 17:06
>>548
相手がメッセージループ回してくれなきゃ
Postしてもキューにたまるだけで意味ない。
551
名前:
デフォルトの名無しさん
:03/01/22 17:48
WM_SETTINGCHANGE 投げても既に起動しているプロセスの環境変数は変わらんよ。
552
名前:
デフォルトの名無しさん
:03/01/22 17:53
つーかUSER32.DLLの関数を一度も呼び出していないスレッドは
そもそもキューが存在しないのでPostできない。
553
名前:
デフォルトの名無しさん
:03/01/22 21:30
レスくれた人ありがと。返事送れてすんまそん。
>>544
残念それ知ってた。今回やりたいのは親プロセスだけでシステム全体じゃないんだよね。
システム全体の設定を変えるわけだから権限の問題も出てきそうだし、
それに既に起動しているプロセスが変更されるかという疑問もあったし。
でその疑問を先に答えてくれた
>>551
さんありがと。
>>545
ほう。そんな方法があるのか? でも
>>548
になんか修正するようなこと書いてあるし、
しかも
>>550
>>552
でさらに修正するようなこと書いてあるし。
えと、結局
>>545
の方法で出来るのでしょうか?
それともPostThreadMessage単独で出来るのでしょうか、
SetWindowsHookExとPostThreadMessageを組み合わせるのでしょうか。
DLLを侵入させるってのがやったこと無いからよく分からない。
どっかにサンプルないかな〜。
554
名前:
デフォルトの名無しさん
:03/01/23 03:43
552 のような状態では、フックも通用しないのでは?
555
名前:
602
:03/01/23 06:39
原因がわからないので、ソース・画像をUPします。
↓ソース(
http://www.kumei.ne.jp/c_lang/sdk/sdk_57.htm
)
http://www.geocities.co.jp/SiliconValley-Oakland/6260/statusbar.rtf
↓ビルドした直後
http://www.geocities.co.jp/SiliconValley-Oakland/6260/pict1.JPG
↓コンパネの画面内「デザインの配色をアイスカラーに変更」した直後
http://www.geocities.co.jp/SiliconValley-Oakland/6260/pict2.JPG
ちなみに、VC++6内の設定は、リンクで「Comctl32.lib」を追加しただけです。
ビルド環境は、WinXP・PRO、VC++6(共に何もいじっていないインストールしたままの状態です)
PlatformSDKはインストールしていません。
なぜStatusbarの色が「アイスカラー」に変わらないのでしょうか?
556
名前:
602
:03/01/23 06:40
実験用として今、猫さんのHPのソースを参考しています。
557
名前:
デフォルトの名無しさん
:03/01/23 08:57
>>555
CreateMyStatus関数の(HMENU)ID_STATUSをNULLにする
558
名前:
デフォルトの名無しさん
:03/01/23 10:49
> DLLを侵入させるってのがやったこと無いからよく分からない。
> どっかにサンプルないかな〜。
kageのソース
559
名前:
デフォルトの名無しさん
:03/01/23 18:17
タブコントロールで、右クリックでタブを選択できるようにするには
どうしたらいいですか?
560
名前:
デフォルトの名無しさん
:03/01/23 18:19
>>559
左ボタンが壊れた?
561
名前:
デフォルトの名無しさん
:03/01/23 18:38
>>559
右クリックした時にその下のタブを選択させる。
562
名前:
デフォルトの名無しさん
:03/01/23 18:48
>>560
いえ、違いますけど・・・。
>>561
カーソルの下にあるタブを判定するにはどうしたら良いですか?
TabCtrl_GetCurSelだと、右クリック時のカーソルの下にあるタブじゃなくて
選択されてるタブしか判別できないのですが・・・。
563
名前:
デフォルトの名無しさん
:03/01/23 19:10
>>562
TCM_HITTESTを送る
564
名前:
山崎渉
:03/01/23 20:00
(^^)
565
名前:
602
:03/01/23 20:57
やはり、誰も原因がわからないようだ。
私がプログラムミスでないことは確かなようだ。
566
名前:
デフォルトの名無しさん
:03/01/23 21:25
>>565
>>557
でも駄目なのですか?
567
名前:
602
:03/01/23 21:27
>>566
ええ、だめです。
きちんと初期化はしているので、こんなおかしい不具合がでるはずはないのだが・・・。
ic.dwSize = sizeof(INITCOMMONCONTROLSEX);
ic.dwICC = ICC_COOL_CLASSES|ICC_BAR_CLASSES;
InitCommonControlsEx(&ic);
私だけの問題ではなさそうだ。
568
名前:
602
:03/01/23 21:34
ちくしょう・・・ドットネット買うしかないのか・・・。
569
名前:
デフォルトの名無しさん
:03/01/23 21:45
んー、それがXP以外では問題がでないようならmanifest.xmlかなんかで解決するかもな。
XP持ってないんでどうとも言えんが。
570
名前:
602
:03/01/23 22:01
>>569
マニフェストはすでに確かめてあり、だめでした。
・・・わからん。。。
ほかの人で同じような不具合はないのかな?
571
名前:
デフォルトの名無しさん
:03/01/23 23:23
> 私がプログラムミスでないことは確かなようだ。
割るれるな?
572
名前:
デフォルトの名無しさん
:03/01/23 23:58
Windows NT4.0/2000以降でASPIを使わずに
SCSIのディスクデバイスを列挙したいのですが、
どうすればいいのでしょうか。
キーワードは「SPTI」らしいのですが、
どんなAPIを使うのか、どんな資料がどこにあるのか、
さっぱり分かりません。
要はこういうソフトの非ASPI版が作りたいのですが。。
http://www.vector.co.jp/soft/win95/hardware/se084939.html
よろしくお願いします。
// SHIORI-0 //
573
名前:
デフォルトの名無しさん
:03/01/24 00:12
WinampのPlug-inはClassで成り立っているのですよね?
あのように、動的にクラスを読み込んで利用するにはどうすればいいのでしょうか?
574
名前:
デフォルトの名無しさん
:03/01/24 00:15
>>572
ASPIしか使ったことがないから知りませんが、検索したらでてきました
ttp://www.geocities.co.jp/Hollywood/4205/doc/spti.html
DDKが必要らしいです
575
名前:
デフォルトの名無しさん
:03/01/24 00:17
>>573
どの言語で作るつもりか知らんけど
C++なら仮想クラスを自分のプログラムで定義して、
DLLはそれの派生クラスを作成する
あとはDLL側にそのクラスのインスタンスを作成する関数を作って
LoadLibrary/GetProcAddressでその関数を呼び出す
返って来たインスタンスを通して全ての処理を行えばいい
576
名前:
572
:03/01/24 00:41
>>574
さんありがとうございます。
ふと思いついて「wnaspi32.dll spti」でグーゴゥしてみました。
WinASPI32 to SPTI wrapper for WinNT3/4/5
http://f-ts.bias.ne.jp/~azuco/apj/apjf.htm
> SPTIを使ってASPIのファンクションをエミュレート
DLL 関連回答
http://www.snark.co.jp/soft/faq/dll_a.htm
> 単純にNTでSCSIコマンドを発行するだけなら DeviceIoControlでできます。
> DDK の src\storagej\class\spti にサンプルがありますが
> \\.\scsi1: といったデバイスファイルを開いて CDB を送れます。
・・・てか、SPTI以前にASPIのことも分からないので、
むしろ
>>572
みたいなツール、どこかに転がってないですか?
577
名前:
デフォルトの名無しさん
:03/01/24 00:53
>>576
その質問はスレ違いですが
>>576
のwrapperDLLのファイル名をwnsapi32.dllにすれば
>>572
等に既存のASPIソフトが使えるのでは?
578
名前:
572
:03/01/24 01:00
>>577
なるほど! 明日やってみます。
ついでに「wnaspi32.dll spti」に引っかかった英語ページ。
読めないので関係あるのかないのか分からない。。
http://www.experts-exchange.com/Programming/Programming_Platforms/Win_Prog/Q_10351574.html
http://akrip.sourceforge.net/
http://www.onlinepcfix.com/ASPI2.htm
579
名前:
デフォルトの名無しさん
:03/01/24 01:19
>>567
>>555
のソースをビルドして試してみたけど確かに色が変わらないねえ。
でも自作のアプリではちゃんと色が変わった。よって
> 私がプログラムミス
であることは
> 確かなようだ。
申し訳ないが自作アプリとどこが違うのかまではわからない。
580
名前:
デフォルトの名無しさん
:03/01/24 01:24
となると、あやしいのは
SendMessage(hStatus, SB_SIMPLE, TRUE, 0L);
のあたりでしょうか?
いずれにしろ.NETでは解決しないでしょうね
581
名前:
デフォルトの名無しさん
:03/01/24 01:46
>>580
自作アプリではCreateWindowEx+SB_SIMPLEの代わりに
CreateStatusWindowを使ってたんでそうしてみたが変わらなかった。
いったい何が違うんだ。まじでわからん…
582
名前:
602
:03/01/24 03:33
>>579
早起きしました。
変わらないですよね(涙)
ステータスバーに関してはいろいろな方法で試したのですが、変わりません。
これでも駄目でした。
switch (msg) {
case WM_CREATE:
INITCOMMONCONTROLSEX sex;
sex.dwICC=ICC_BAR_CLASSES;
sex.dwSize=8;
InitCommonControlsEx(&sex);
CreateMyStatus(hWnd, hInst);
・・・・・
これはREBARでも同じ現象(配色が変わらない)が起こるので、何に問題があるのかがいまだに不明・・。
583
名前:
デフォルトの名無しさん
:03/01/24 03:49
XPのバグ(というか仕様変更)だったら泣くな.…
584
名前:
デフォルトの名無しさん
:03/01/24 04:31
WM_KEYDOWNでは、キーを押されたときのshiftキーの状態はわからないですよね。
キーが押されたときのshiftキーの状態を知るにはどうしたらいいんでしょうか。
585
名前:
デフォルトの名無しさん
:03/01/24 04:49
>>584
WM_KEYDOWN処理中に GetKeyboardState で全仮想キーの状態を取得するとか……
586
名前:
デフォルトの名無しさん
:03/01/24 05:20
>>584
::GetKeyState
587
名前:
デフォルトの名無しさん
:03/01/24 08:21
>>585-586
それってWM_KEYDOWNを受け取ったタイミングの状態であって、
WM_KEYDOWNが発生する原因となったキーが押されたときの状態じゃないですよね。
588
名前:
デフォルトの名無しさん
:03/01/24 09:08
>>587
> This function retrieves the state of the key
> when the input message was generated.
と書いてるが。でも
> The key status returned from this function
> changes as a thread reads key messages
> from its message queue.
とも書いてるなあ。どっちが本当だよおい
589
名前:
デフォルトの名無しさん
:03/01/24 09:13
あー入力メッセージが生成されたときの状態を読み取るから
メッセージを読み出すたびに状態が変化すると考えれば
とくに矛盾しないか。
つーわけでGetKeyStateで問題ないと思うが
590
名前:
デフォルトの名無しさん
:03/01/24 13:57
>>587
キーが押されたときのだよ。ヘルプぐらい読んでくれ。
あとトレースするとかすればわかる。
ハードウエア的な現在の状態を知る方法はまた別の方法だから。
591
名前:
デフォルトの名無しさん
:03/01/24 14:17
キーボードが2つ以上接続されている環境があったとして、
どちらのキーボードのキーが押されたのか判断する方法はあるのでしょうか?
592
名前:
デフォルトの名無しさん
:03/01/24 14:59
スプリットウィンドウの右上とかにバッテンで閉じるのを作りたいんですが、
簡単な方法がありましたら是非教えて下さい。お願いします。
593
名前:
デフォルトの名無しさん
:03/01/24 15:06
>>592
bitblt
594
名前:
デフォルトの名無しさん
:03/01/24 15:35
印刷関係でちょっと不可解な現象が発生してるんです。
とあるアプリで StartDoc() とかしても印刷がはじまらないんです。
で、印刷ルーチンが二つありまして(出力形態が二種類あるので)、
片方ではちゃんと印刷開始されるのですが、もう片方はうんともすんともいいません。
これだけだと一方のルーチンの不具合じゃないか、と言われるかもしれません。
確かにそれはそうで、現在調査しているのですが、不可解なのは
関数の中で文字列処理のために
char buf[256];
しているのですが、これを
char buf[184];
にすると正しく印刷が開始されるのです。
これが逆ならスタックでも壊してるのかなという気にもなるのですが、
小さい方が動く、というのは聞いたことがありません。
何となくドライバ関係のDLLのアロケート関係のような気もするのですが、
どなたかこのあたりに関して情報お持ちでないでしょうか?
ちなみにOSはWinME、コンパイラはVC6です。
さらにちなみにその他のOS(98、98SE、2000、XP)では
問題なく印刷が開始されます。
595
名前:
デフォルトの名無しさん
:03/01/24 15:39
>>594
>char buf[184];
>にすると正しく印刷が開始されるのです。
たまたま印刷されてるだけだと思われ。"\0"とか抜けてない?
596
名前:
デフォルトの名無しさん
:03/01/24 15:54
>>594
EndDocまで行わないと、印刷を始めるかどうかはドライバ次第だったような。
597
名前:
デフォルトの名無しさん
:03/01/24 16:07
>>594
GetLastError()で調べれ。
598
名前:
594
:03/01/24 16:14
ちょっと試してきました。
とりあえず buf がらみの処理は変数宣言も含めて削除してみますた。
すると。確かに印刷される。やっぱりどこかでつぶしてる?
それではと、途中に
{
char buf[256];
*buf = '\0';
DrawText(pd.hDC, buf, -1, &rc, format);
}
と入れてみますた。出なくなりました。何で???
>>595
そういうわけで文字列処理部分ではなさそうです。
>>596
あ、ちょっと説明が足りませんでしたが、どの段階で印刷が開始されるかは
よくわかってないまま書きました。まぁ印刷される場合があるということは
処理の流れ自体はあってるだろうということで。
>>597
というかエラーにならないんです。あたかも正常に終わったかのように
印刷されないんです。
何か見落としてるかもしれないので他にもヒントありましたらお願いします。
599
名前:
594
:03/01/24 16:17
すいません。読み返してみてちょっと補足。説明が中途半端な気がしたので。
結論から言えば、
/* ↓この処理を通らないと印刷される */
if (0) {
char buf[256];
*buf = '\0';
DrawText(pd.hDC, buf, -1, &rc, format);
}
/* ↓通ると印刷されない */
if (1) {
char buf[256];
*buf = '\0';
DrawText(pd.hDC, buf, -1, &rc, format);
}
ということです。なんでだろーなんでだろー
age させてもらっていいですか?
600
名前:
デフォルトの名無しさん
:03/01/24 16:18
余裕で600ゲット
601
名前:
デフォルトの名無しさん
:03/01/24 16:24
600ゲトー
∧∧ (⌒
⊂(゚Д゚⊂⌒つ(≡
ズサー (⌒
602
名前:
デフォルトの名無しさん
:03/01/24 16:26
それではと、途中に
{
char buf[256];
*buf = '\0';
DrawText(pd.hDC, buf, -1, &rc, format);
}
と入れてみますた。出なくなりました。何で???
・・・初期化してないcharの配列をを渡してた?
603
名前:
594
:03/01/24 16:33
さらに突き詰めてみました。先ほどの処理をさらに簡略化して
if (1) {
char buf[256];
*buf = '\0';
}
○。
if (1) {
char buf[256];
lstrcpy(buf, "hoge");
}
×。
if (1) {
char buf[256];
strcpy(buf, "hoge");
}
○。
どうやらよそ様のDLLの関数に buf のアドレスを渡すとダメなようです。
何かどこかで聞いたことあるような。。。
604
名前:
594
:03/01/24 16:38
引っ張ってしまってスマソン。もう少しおつきあいいただければ幸いです。
さらに続けて(if は省略します)
char *buf = GlobalAlloc(GPTR, 256);
lstrcpy(buf, "hoge");
GlobalFree(buf);
○。
お、そゆこと?
と思って元の処理に戻して、先頭で定義してた
char buf[256];
を
char *buf = GlobalAlloc(GPTR, 256);
にしてみますた。
ダメでした。。。ショボン
605
名前:
デフォルトの名無しさん
:03/01/24 16:38
http://banana.fruitmail.net/cgi/introduce_jump1.cgi?1363289
606
名前:
デフォルトの名無しさん
:03/01/24 16:44
>>604
HGLOBAL GlobalAlloc(
UINT uFlags, // 割り当ての属性
SIZE_T dwBytes // 割り当てたいバイト数
);
根本的に使い方間違ってる。
607
名前:
594
:03/01/24 16:47
え?今って GPTR でポインタ返せないの?
608
名前:
デフォルトの名無しさん
:03/01/24 16:58
返せるよ。
609
名前:
デフォルトの名無しさん
:03/01/24 17:31
子ウィンドウとして作成したリストコントロールを
要らなくなった時点で、DestroyWindow(hList);で破棄しようとしたのですが
サブクラス化したリストコントロールのプロシージャのWM_DESTROYで
PostQuitMessage(0);とすると、親ウインドウも一緒に閉じてしまいます。
PostQuitMessage(0)しなくても、リストコントロールはきちんと破棄されたと
思って良いのでしょうか?
610
名前:
594
:03/01/24 17:33
うーん、謎です。。。
メモリまわりっぽいのは確かだと思うんですけどねぇ。
LintTo() や、即値渡しの TextOut() だけにすると問題なく描画できますので。。。
他のOSではたまたま動くけど、
Meでは注意しないとダメな処理ってありましたっけ?
611
名前:
デフォルトの名無しさん
:03/01/24 17:36
PostQuitMessageは最後のウィンドウとか
メインウィンドウが閉じたときにだけ呼び出すものだよ
なんでWM_DESTROYのデフォルト処理で自動的に
呼び出されないのか考えれ
612
名前:
デフォルトの名無しさん
:03/01/24 18:36
>575
インスタンスを作成する関数を作って返す
とありますが、どのような形で返せばいいのでしょうか?
613
名前:
デフォルトの名無しさん
:03/01/24 19:18
>>612
ポインツァー?
614
名前:
デフォルトの名無しさん
:03/01/24 19:22
変数形です。
615
名前:
594
:03/01/24 19:40
ちょっと気付いて試してみたらどうやらOKっぽかったので
それのような気がするんですが、
StartDoc() に渡す DOCINFO 構造体って
やっぱ不要なメンバはゼロクリアしとかないとダメです?
マニュアルにはダメとは書いてないんですけど、そんな感じですよね。。。
巷のサンプルみても、初期化せずに必要なメンバ(lpszDocNameとか)設定してる
だけのものが多いんですが違うのかな?
これだけ↓でとりあえずは動くようになったのですが。
di.cbSize = sizeof(di);
ZeroMemory(&di, sizeof(di)); // この行を追加
di.lpszDocName = lpszDocName;
di.lpszOutput = NULL;
616
名前:
デフォルトの名無しさん
:03/01/24 19:48
>>615
しむらcbSize--!書き間違えかも知れんけど。
617
名前:
デフォルトの名無しさん
:03/01/24 19:49
>>615
静的変数やGlobalAlloc(GPTRの場合は基本的に0初期化されているから必要ない
多少なりともプログラムをやっているならどういう場合に初期化が必要かは推測できるはず
メンバが設定されているかいないかをどうやってシステム側が判別するの?
618
名前:
594
:03/01/24 19:54
>>616
へ?何か間違ってる?気付いてないかも。
>>617
もう少し言い訳さしてください。
実は。。。昔ながらのやり方でやってたので
DOCINFO のメンバが増えてるの知らなかったんです。。。
印刷するプログラム書いたの久しぶりだったもので。。。
大変お騒がせ致しました。
619
名前:
デフォルトの名無しさん
:03/01/24 20:03
>>618
cbSize==0になってるよ
620
名前:
594
:03/01/24 20:07
>>619
ごめん、まだわかってない。
あれ?
DOCINFO di;
di.cbSize = sizeof(di);
で間違ってる?そこじゃない?
621
名前:
デフォルトの名無しさん
:03/01/24 20:09
その後ZeroMemoryしている
622
名前:
デフォルトの名無しさん
:03/01/24 20:11
>>620
いや順番がこうじゃないとだめじゃん?
ZeroMemory(&di, sizeof(di)); // この行を追加
di.cbSize = sizeof(di);
di.lpszDocName = lpszDocName;
di.lpszOutput = NULL;
623
名前:
594
:03/01/24 20:28
あ。。。あぅ。。。あぅぅ。。。。。
面目ないっ m(_ _)m
みんな、いい香具師だなぁ。好きだぜ、みんな!じゃー逝ってくる!
624
名前:
デフォルトの名無しさん
:03/01/24 20:29
>>575
インスタンスを作成する関数を作って返す
とありますが、どのような形でポインタを返せばいいのでしょうか?
625
名前:
602
:03/01/24 20:46
やはり、誰もわからないみたいですね。
致命的なバグか?
626
名前:
デフォルトの名無しさん
:03/01/24 20:48
interface IBeeper { virtual void Beep() = 0; ~IBeeper(){} };
IBeeper*CreateBeepInterface();
DeleteBeepInterface(IBeeper*p);
とでもインターフェースを定義しておき、共通とする。
んで、プラグイン側では、インターフェースを実装する。
class CBeeper : public IBeeper { void Beep() { .... } };
IBeeper*CreateBeepInterface() { return new CBeeper; }
DeleteBeepInterface(IBeeper*p){ delete p; }
それだけ。
627
名前:
デフォルトの名無しさん
:03/01/24 21:14
>>626
う〜ん。難し。
interface IBeeper { virtual void Beep() = 0; ~IBeeper(){} };
って、クラスじゃないんですね。。同じですか。
これは、ヘッダーですか?
IBeeper*CreateBeepInterface();
DeleteBeepInterface(IBeeper*p);
これは、何をするかは見当がつくのですが…。
class CBeeper : public IBeeper { void Beep() { .... } };
この*でつながっているのはどういう意味でしょうか?ポインターですか?
IBeeper*CreateBeepInterface() { return new CBeeper; }
DeleteBeepInterface(IBeeper*p){ delete p; }
628
名前:
デフォルトの名無しさん
:03/01/24 21:48
ほう、何も継承しないのか
629
名前:
デフォルトの名無しさん
:03/01/24 22:02
?
public ですか?
継承ですね。はぁ。
630
名前:
デフォルトの名無しさん
:03/01/24 22:16
COMのようでCOMじゃない
631
名前:
デフォルトの名無しさん
:03/01/24 22:19
はぁ。何かつかめた気が。
でも、
IBeeper*CreateBeepInterface() { return new CBeeper; }
DeleteBeepInterface(IBeeper*p){ delete p; }
が解りません。
どういう意味でしょうか?
632
名前:
572
:03/01/24 22:49
>>572-578
と、ちょっとスレ違いな質問をしていた者ですが、
要求は解決したのでこのスレでご報告します。
まず、
>WinASPI32 to SPTI wrapper for WinNT3/4/5
>
http://f-ts.bias.ne.jp/~azuco/apj/apjf.htm
このASPTI.DLLをWnASPI32.dllにリネームして
>
http://www.vector.co.jp/soft/win95/hardware/se084939.html
を実行したのですが、loadできないとエラーが出て使えませんでした。
で、いろいろ探していたら
http://www.runser.jp/softlib.html
の
「Device Benchmark Test Program」というツールが見つかりました。
cmd.exeで「devtest.exe scsi」と実行すると、
すべてのSCSIディスクが表示されました。
これで要求は満たしているので解決としますが、
ソースも付いているので勉強していきたいと思います。
ありがとうございました。 // SHIORI-1 //
633
名前:
デフォルトの名無しさん
:03/01/24 22:51
CBeeperのクラス名やら実装やらをIBeeper利用者に見えなくするのでは?
634
名前:
デフォルトの名無しさん
:03/01/24 23:12
626=629=631
(・∀・)ジサクジエーン
635
名前:
デフォルトの名無しさん
:03/01/24 23:19
自作自演の使い方を激しく間違っている634萌え
636
名前:
デフォルトの名無しさん
:03/01/24 23:48
>>633
そういう意味なんですか。
CreateBeepInterfaceというのはどこから出てきたのですか?
637
名前:
デフォルトの名無しさん
:03/01/24 23:51
>>636
"COM"だとか"インターフェースと実装の分離"で調べれ。
それから、スレ違いなのでここでやるのはよせ。
638
名前:
デフォルトの名無しさん
:03/01/25 04:03
ウインドウがGetOpenFileNameやGetSaveFileNameで開かれた
ダイアログかどうかを調べたいのですが、
その方法がわからず困っています。
頼みのウインドウクラスは
他のダイアログと同じ#32700なので使えないし...。
何か良い方法はないでしょうか?
よろしくお願いします。
639
名前:
デフォルトの名無しさん
:03/01/25 05:15
>>625
誰のバグだよ
どうでもいいがそのハンドル紛らわしいからやめてくれ
640
名前:
デフォルトの名無しさん
:03/01/25 05:19
>>638
そのウィンドウに属する子ウィンドウの種類やテキストから強引に……w
641
名前:
575
:03/01/25 05:51
なんか、反応が無いもんで昨日は寝ちゃったよ
>>637
COMの話じゃないって
>>636
そんな事聞いてるようじゃどうせ実装できないけど
最初にインスタンスを返すってのはインスタンスのアドレスを返すって意味ね
自分で IBeep って仮想クラスを作って、ソースを公開。
プラグイン作者は IBeep を継承して独自のクラス CBeep を作成。
同時に CreateBeepInterace と言う名前の関数を定義し、その中で CBeep を作成して返す。
君は GetProcAddress 等を使って CreateBeepInterface を呼び出すことでそのオブジェクトのアドレスを受け取る。
型は IBeep* になっているので、 CBeep の実装を知らなくてもその機能を使うことができる。
通常の多態と同じ。
使い終わったら DeleteBeepInterface で削除するのをお忘れなく。
ちなみにここで出てきた名前は全て君が勝手に名前を付けても良い。
> どこから出てきたのですか?
とかそう言うレベルの話じゃない、君が決めていいんだよ。
642
名前:
デフォルトの名無しさん
:03/01/25 06:01
>>641
解説するだけ無駄な気がしないでもない
643
名前:
デフォルトの名無しさん
:03/01/25 06:03
>>640
やっぱり、それしかないですかぁ。
コモンコントロールがバージョンアップした時が怖いですが、
判定ミスしたとしても致命的な問題になるようなプログラムではないので
その方法でいこうと思います。
どうもありがとうございました。
644
名前:
デフォルトの名無しさん
:03/01/25 06:39
>>641
>仮想クラス
C++用語なら抽象クラス
COM用語ではインターフェース
GetProcAddressを使うならCBeepの実装(特定のDLL)に思いっきり依存
>COMの話じゃないって
まあ確かに
COMの話のできそこないだ
645
名前:
644
:03/01/25 06:42
>ソースを公開。
ヘッダな
そういう説明が必要な相手は激しく誤解するぞ
646
名前:
デフォルトの名無しさん
:03/01/25 06:51
そういう重箱の隅をつつくようなセコい突っ込み、おじさんは嫌いだな
647
名前:
デフォルトの名無しさん
:03/01/25 07:09
>>644-645
IBeep のように純粋仮想関数だけで形成されてるクラスならヘッダだけで良いけど
実装を含む場合はソースも公開してやるかlibファイルを作って公開してやる必要があると思うんで、
とりあえずヘッダ、とだけ言うとヘッダだけ公開しそうなんで。
ところで GetProcAddress を使っても CBeep の実装には依存しないと思うけど、
どうなの?
実際そういう風にプラグインにしてるけど今のところ問題ないし。
メインプログラムとプラグインのコンパイラやオプション設定が違う場合どうなるかは知ったこっちゃないけど。
648
名前:
あやや
:03/01/25 11:06
なぜステータスバーの色が変わらないのだろうか?
だれか、ソースをください。参考になる。
649
名前:
デフォルトの名無しさん
:03/01/25 11:10
汎用的な実装についてはCOMを眺めたほうがいいんじゃない
特定用途ならGetProcAddressで充分だと思うけど
650
名前:
デフォルトの名無しさん
:03/01/25 17:09
16進数文字列を数値に変換する関数ってなかったっけか?
普通のCのライブラリにはないようだけど。
あったらスマソ。
651
名前:
デフォルトの名無しさん
:03/01/25 17:11
>>650
sscanf(a,"%x",&b);
って感じ?
652
名前:
デフォルトの名無しさん
:03/01/25 17:14
>>650
strtol
653
名前:
名無し@沢村
:03/01/25 17:17
>>650
sscanf()
さあ、謝れ。
654
名前:
デフォルトの名無しさん
:03/01/25 17:22
>>653
二代目沢村として兄者を恥ずかしく思うよ。
655
名前:
650
:03/01/25 17:30
ぐぇ、そんな関数あったんだ。
scanf()は知ってたけど、標準入力からだしなぁと思って。
10年戦士なのに、意外なところに穴があるもんだ。
なにはともあれサンクスコ(´・∀・`)
656
名前:
デフォルトの名無しさん
:03/01/25 18:09
リストビューで特定の項目のテキストの色を変えたいのですがどうすればよいですか?
ListView_SetTextColorを使ったら全てのテキストの色が変わってしまいました。
657
名前:
デフォルトの名無しさん
:03/01/25 19:08
OwnerDraw
658
名前:
デフォルトの名無しさん
:03/01/25 21:11
>>646
>ネタ、板とは関係の無い話題はご遠慮ください。
↑↑
もう一度言う
C++用語なら抽象クラス
COM用語ではインターフェース
アフォは来るなという決まりはない
お前が正当性を主張できるのはそこだけだ
>>647
クラス名のプリフィックスをIとCにしながら
Iで始まるクラスに実装を含めるのはWin32では沢村かお前だけ
659
名前:
デフォルトの名無しさん
:03/01/25 23:12
リストビューで2番目以降の項目にアイコンを表示するにはどうしたら良いですか?
最初のカラムにしかアイコンが表示されないのですが。
660
名前:
デフォルトの名無しさん
:03/01/25 23:30
カスタムドローするよろし
661
名前:
646
:03/01/25 23:41
>>658
そういう重箱の隅をつつくようなセコい突っ込み、おじさんは嫌いだな
662
名前:
デフォルトの名無しさん
:03/01/25 23:50
>>661
必死だな(藁
663
名前:
デフォルトの名無しさん
:03/01/25 23:52
PGにバグを放置する権利はない
664
名前:
663
:03/01/25 23:53
名乗るのを忘れた
洩れは662だ
665
名前:
デフォルトの名無しさん
:03/01/25 23:57
リストビューのフォーカスの点線を実線にしたり色をつけたりしたいのですが、
どうしたらできるでしょうか。
666
名前:
602
:03/01/26 00:14
誰もわからないようだな(汗
667
名前:
デフォルトの名無しさん
:03/01/26 00:22
>>665
自分で書く
WM_DRAWITEMとか捕まえられなかったっけ
>>666
666ゲットを機に粘着さんは消えてくださいませ。
668
名前:
デフォルトの名無しさん
:03/01/26 00:25
>>666
つーかてめーは、全スレから延々とRebar関係の質問してるだろ。
いい加減にしろよ。
669
名前:
デフォルトの名無しさん
:03/01/26 01:15
>>666
誰もわかりません。
ですからもうこないでください。
670
名前:
デフォルトの名無しさん
:03/01/26 01:20
>>666
は神!
http://news2.2ch.net/test/read.cgi/newsplus/1043111900/600-
671
名前:
602
:03/01/26 04:34
何で消えなきゃいけないんだよヴォケども
672
名前:
デフォルトの名無しさん
:03/01/26 08:50
∧∧ ┌──────────
( ´ー`) < てりめーだヴァカ
\ < └───/|──────
\.\______//
\ /
∪∪ ̄∪∪
教えて君にあるまじき無礼な発言(ex.
>>618
)
未定義動作の意味を激しく誤解(ex.
>>598
)
>>623
から
>>625
への痛すぎる言動の変化
マルチやめろって顰蹙を無視した結果と思われ
おまえ沢村並み
673
名前:
デフォルトの名無しさん
:03/01/26 09:10
むしろ沢村のほうがマシに思える
674
名前:
デフォルトの名無しさん
:03/01/26 11:12
なんかこのバカ、ずっと同じ質問繰り返してないか?
コテハン変えて何度も質問したり。
最初はまともな態度だったから許容してたが、最近態度がでかくなってきた。
675
名前:
デフォルトの名無しさん
:03/01/26 11:32
本当にmanifest確認したのかなぁ
よし6.0.0.0 Ok!とかいってそうだ
676
名前:
デフォルトの名無しさん
:03/01/26 11:39
>>674
このスレの
>>53
あたりからずっとこいつだな。
最初から舐めた態度だが。
>>55
とかな。
677
名前:
デフォルトの名無しさん
:03/01/26 13:12
整数演算関係のAPI関数って
Int32xTo64
Int64ShllMod32
Int64ShraMod32
Int64ShrlMod32
MulDiv
UInt32x32To64
以外に無いですか???
知っていたら教えて欲しいでごわすの東北人。
678
名前:
名無し@沢村
:03/01/26 14:13
>>677
MSDNを見れば分かる話だから、教えてあげないよ。ヌヒよ。
679
名前:
デフォルトの名無しさん
:03/01/26 14:19
>>677
APIはMulDiv(KERNEL32)のみ
他はマクロ
680
名前:
デフォルトの名無しさん
:03/01/26 17:02
ドライブ文字の割り当てられていないCD-ROMで
メディアの入れ替えを検出するにはどのように
すればよいのでしょうか?
よろしくお願いします。
681
名前:
デフォルトの名無しさん
:03/01/26 20:30
>>641
typedef CFormat * __stdcall GetData();
HINSTANCE hDllInstance = ::LoadLibrary("dl.dll");
if (hDllInstance != NULL) {
GetData *gsf = (GetData*)::GetProcAddress(hDllInstance, "GetData");
if (gsf != NULL) {
CFormat *cfs;
cfs = gsf();
}
FreeLibrary(hDllInstance);
}
//////////////////
extern "C" __declspec(dllexport) CFormat* __stdcall GetData()
{
return new CApp;
}
このようになったのですが、いざGetProcAddressに入るとエラーが出ます。
どうすればよいのでしょう?
682
名前:
デフォルトの名無しさん
:03/01/26 21:15
>>681
エラーメッセージくらい書いてください。
683
名前:
デフォルトの名無しさん
:03/01/26 22:43
>>681
> GetData *gsf = (GetData*)::GetProcAddress(hDllInstance, "GetData");
おいおい…
GetProcAddress() が返すのは「GetData 関数へのポインタ」だろ。GetData を
実行した結果じゃなくて。
684
名前:
デフォルトの名無しさん
:03/01/26 22:48
GetData gsf = (GetData)::GetProcAddress(hDllInstance, "GetData");
こうじゃないの?
685
名前:
デフォルトの名無しさん
:03/01/26 22:49
> typedef CFormat * __stdcall GetData();
こんなんだっけ?
686
名前:
デフォルトの名無しさん
:03/01/26 22:53
>>683
GetProcAddress() が返すのは「GetData 関数へのポインタ」だろ。GetData を
実行した結果じゃなくて。
GetProcAddress() が返すのは「GetData 関数へのポインタ」だろ。GetData を
実行した結果じゃなくて。
GetProcAddress() が返すのは「GetData 関数へのポインタ」だろ。GetData を
実行した結果じゃなくて。
GetProcAddress() が返すのは「GetData 関数へのポインタ」だろ。GetData を
実行した結果じゃなくて。
GetProcAddress() が返すのは「GetData 関数へのポインタ」だろ。GetData を
実行した結果じゃなくて。
GetProcAddress() が返すのは「GetData 関数へのポインタ」だろ。GetData を
実行した結果じゃなくて。
GetProcAddress() が返すのは「GetData 関数へのポインタ」だろ。GetData を
実行した結果じゃなくて。
GetProcAddress() が返すのは「GetData 関数へのポインタ」だろ。GetData を
実行した結果じゃなくて。
GetProcAddress() が返すのは「GetData 関数へのポインタ」だろ。GetData を
実行した結果じゃなくて。
GetProcAddress() が返すのは「GetData 関数へのポインタ」だろ。GetData を
実行した結果じゃなくて。
687
名前:
デフォルトの名無しさん
:03/01/26 23:08
>>683
痛すぎ(激藁
688
名前:
デフォルトの名無しさん
:03/01/26 23:12
>>685
関数ポインタへの typedef にしたいなら、括弧の位置が違うような。
typedef CFormat (*__stdcall GetData)();
689
名前:
688
:03/01/26 23:17
* 一個抜けてた。
typedef CFormat* (*__stdcall GetData)();
690
名前:
デフォルトの名無しさん
:03/01/26 23:17
そうだよねえ
691
名前:
デフォルトの名無しさん
:03/01/26 23:27
こーでねえ?
typedef CFormat * ((__stdcall *)GetData)()
692
名前:
デフォルトの名無しさん
:03/01/26 23:28
最近 win32api の勉強を始めた者です。
WinMain の中の変数etc.を
ウィンドウプロシジャに引き渡すには
外部変数にするしかないんでしょうか?
消防質問ですみません。
693
名前:
デフォルトの名無しさん
:03/01/26 23:32
>>692
ヒープ上に領域を確保した上で、その領域へのポインタを SetWindowLong()
するとか。
694
名前:
デフォルトの名無しさん
:03/01/26 23:38
>>693
ありがとうございます。
SetWindowLong()とか知らないので調べに
逝ってきます。
695
名前:
デフォルトの名無しさん
:03/01/26 23:38
>>641
昨日の話に反応するけど
> 使い終わったら DeleteBeepInterface で削除するのをお忘れなく。
これ、仮想デストラクタでよろしく済ませるってのは無しなん?
696
名前:
デフォルトの名無しさん
:03/01/26 23:44
COMを知らない奴はこれだから・・・
697
名前:
デフォルトの名無しさん
:03/01/26 23:46
>>696
具体的な問題点か、情報へのポインタぷりーず。
俺は COM で Detele* 用意しているのは、単に C からも呼び出せるようにするため
かと思ってた。
698
名前:
デフォルトの名無しさん
:03/01/26 23:48
>>695
よろしく済ませるならスマートポインタでは?
699
名前:
デフォルトの名無しさん
:03/01/26 23:52
>>698
いや、そういう話では…
700
名前:
デフォルトの名無しさん
:03/01/26 23:54
>697
DLL(plugin)のnew,deleteと
本体のnew,deleteが同じという保証がない。
DLLでnewするなら、DLLでdeleteしないと死亡の恐れがある
701
名前:
デフォルトの名無しさん
:03/01/26 23:54
Create/Deleteを明示的によぶことで、
実装側で実体をnewで確保しようがmallocで確保しようが、
グローバル変数領域に自前で確保していようが、
利用側には影響しない。
もっと具体的にいうと、
実装側と利用側がVC++を使っていたとして、
コンパイルオプションが、片方はLIBC使用、他方はMSVCRT使用
だとしても、問題が起こらない。
通常はこれらをまたいでヒープをやり取りすると、おかしくなる。
702
名前:
695
:03/01/26 23:58
>>700
納得。
703
名前:
デフォルトの名無しさん
:03/01/27 00:19
684以降のレスはなに?
602氏の方がはるかにマシに見えるのだが
704
名前:
デフォルトの名無しさん
:03/01/27 00:22
気にせず、サクッと黙殺しとけ。どうせ害はない。
705
名前:
684=685
:03/01/27 00:50
>>703
漏れが何かまずい事を書いたか?
706
名前:
デフォルトの名無しさん
:03/01/27 20:21
ちょっとお尋ね申し上げますが、
Acrobat SDK を SDK だけで使う例とかを
紹介しているサイトってないでしょうか?
てゆーかスレタイの Win32API って !MFC って意味だよね?
それともやっぱスレ違い?
707
名前:
デフォルトの名無しさん
:03/01/27 20:34
一応VCとは限らんと言っておく<Win32API
708
名前:
デフォルトの名無しさん
:03/01/27 21:07
SendMessageCallbackって、他のスレッドからだと動かなかったりします?
ドキュメント見ると問題なさげではあるのですが、現に動かない…
Win2kです。
709
名前:
デフォルトの名無しさん
:03/01/27 21:19
>>707
MFC=VCか。おめでてぇな。と釣り糸を垂らしてみる。
710
名前:
デフォルトの名無しさん
:03/01/27 21:20
>>708
あなたのクソコードに問題があるのでは?見せてみて。
711
名前:
579
:03/01/27 22:50
自作アプリをいろいろいじってみた結果
ウィンドウからツールバーを外したらなぜかステータスバーの色が
変わらなくなった。ツールバーを付けたらまた変わるようになった。
いくらステータスバーだけのサンプルをいじくっても分からないわけだ
712
名前:
デフォルトの名無しさん
:03/01/27 22:57
>>711
602か?
XPではCOLOR_BTNFACEではなくCOLOR_MENUBARのほうに影響されるのかも
713
名前:
579
:03/01/27 23:05
>>712
別人。Win95だとWM_SYSCOLORCHANGEを転送してやる
必要があったけどXPでは関係なさげ。確かにバグっぽいなこれ
714
名前:
デフォルトの名無しさん
:03/01/28 00:07
是非 MS にバグレポート出してくれ。
715
名前:
デフォルトの名無しさん
:03/01/28 00:46
てすと
716
名前:
708
:03/01/28 00:48
procedure Callback(Wnd: HWND; Msg: UINT; Data: Pointer; Result: LRESULT); stdcall;
begin
//何かする
end;
procedure TXXX.METHOD;
begin
SendMessageCallback(Handle, WM_APP, 0, 0, @Callback, 0);
end;
こんな感じです。
OutputDebugString入れても、他のスレッドから呼んだ時だけCallbackに来てない。
単に、そのままやりたいことをするとデッドロックするので、PostMessage的に使ってるだけなんですが。
(素直にPostMessage使わない理由はSendMessageCallbackだと相手のウィンドウ関数を書き換えずに済むから)
717
名前:
デフォルトの名無しさん
:03/01/28 00:53
ぎゃっはっははははははははっはあはっはあはっははははははははっはあはっはあ
はっははははははははっはあはっはあはっははははははははっはあはっはあはっははははははははっはあはっは
はははははっはははhはっははははははははっはあはっはあははははっはははははあはh
はははっはっははっははははははははっはあはっはあはははははははあははは
718
名前:
デフォルトの名無しさん
:03/01/28 00:55
>>716
http://www.microsoft.com/JAPAN/developer/library/jpuipf/_win32_sendmessagecallback.htm
SendMessageCallback 関数を呼び出したスレッドが、GetMessage、PeekMessage、WaitMessage
のいずれかの関数を呼び出した場合にのみ、このコールバック関数が呼び出されます。
とあるが。
719
名前:
デフォルトの名無しさん
:03/01/28 01:00
SetTimerしてるのにタイマコールバックが呼ばれません
↓
DispatchMessageしていますか?
系の罠か。
本当にプリエンプトしてほしいなら素直にスレッド作れ。
720
名前:
708
:03/01/28 01:04
がーん…使えねえ…。
718さんありがとう。英語ドキュメントを斜め読みしただけでした。読めてなかった。シクシク。
721
名前:
デフォルトの名無しさん
:03/01/28 01:07
まぁ、普通に考えて同一スレッドで非同期にコールバック関数が呼ばれるタイミングって
Windows側に制御が渡ってる状況しかないんだから、当然といえば当然なんだが。
722
名前:
デフォルトの名無しさん
:03/01/28 01:09
ちょっと勉強してみたいんだけど、どっかに
VC++ か BCC 用の ping のソース落ちてないかな?
723
名前:
名無し@沢村
:03/01/28 01:14
>>722
ヌヒよ、たぶん落ちてるんじゃないか。
724
名前:
デフォルトの名無しさん
:03/01/28 01:18
VCかSDKのサンプルの中にpingなかったけ。
725
名前:
デフォルトの名無しさん
:03/01/28 01:23
「ICMP.DLL サンプル」とかやるとわらわら出てくるな。
726
名前:
デフォルトの名無しさん
:03/01/28 01:29
>>722
サンプル: Raw ソケット版 ping
tp://www.kt.rim.or.jp/~ksk/wskfaq-ja/examples/rawping.html
727
名前:
722
:03/01/28 01:49
>>725
>>726
大変いいヒントいただきました。どうもありがとうございました。
728
名前:
602
:03/01/28 12:57
皆さん、お久しぶりです。
余り質問をしすぎて、迷惑をおかけしまして、すいませんでした。
というより、Rebar関係は、バージョンアップの激しい部分ですので、何か不具合が多いのですよ。
苦労しています。
では、いろいろと質問をきいてくれて、ありがとうっす。
あと、
「「「671 名前:602 投稿日:2003/01/26(日) 04:34
何で消えなきゃいけないんだよヴォケども」」」
↑
これは、私の書き込みではないですよ。
偽者ですか、ID制を導入してみてはどうですか?
729
名前:
デフォルトの名無しさん
:03/01/28 13:13
何でてめえなんかの為にID制を導入しなきゃいけないんだよヴォケ
730
名前:
デフォルトの名無しさん
:03/01/28 14:00
>>728
たのむからもう来ないでくれ。
あと、貴様ごときにID導入するほど価値はない。
731
名前:
名無し@沢村
:03/01/28 19:07
>>728
ヌヒよ、キャップを付けなさい。
732
名前:
602
:03/01/28 20:21
あれ?怒ってるなww
何か悪いことをしたとは思えないが。
荒らしたわけでもない。
ただ質問をしただけなのにこの態度。
だから、プログラム板っていつも人が少ないんだよw。
プログラムをする奴は基本的に閉鎖的な人が多いからね。
自分の世界以外の者が入ると、追い出すんだよ。
内向的、いや内弁慶、いやいやネット弁慶と表現したほうがいいかも。
要するに、
自分のわかる質問→大歓迎
わからない質問→追放
私みたいなプログラム初心者もいるのですから。初めて日が浅いのですよ。
733
名前:
デフォルトの名無しさん
:03/01/28 20:30
怒ってるのはID導入のことについてだろ。
基本的な読解力ないから嫌われるんだよ。
734
名前:
602
:03/01/28 20:35
ただ、プログラミングは面白いですね。
初めて2ヶ月目なので、これからどんどん勉強していこうと思います。
あと、
>>729
さんと、
>>730
さんは、ひどいことを言いますね。
なにも悪いことをしてないのに。
しかも、午後2時前後の書き込みですか。
お仕事はしてないのですか?
735
名前:
デフォルトの名無しさん
:03/01/28 20:38
>>732
君はプログラミングの勉強の前に、まず質問の仕方から覚えるといい。
736
名前:
602
:03/01/28 20:41
貴様ごときにID導入するほど価値はない。
↑
貴様ごときってw
この発言が、「怒ってるのはID導入のことについてだろ。」だとは思わないな。
うーん、こんなにガラの悪い人が多いとは・・・。
がっかりですね。
まぁ、プログラムをする人でも、性格の悪い人は山ほどいるでしょうけどねw
737
名前:
602
:03/01/28 20:43
ああ、なるほど。
「わかる人がいないみたいだな。」というのが、貴方達のプライドに傷がついたわけですね。
これのほかに、失礼な書き込みはしてないですよ。
これぐらいで怒るようでは、まともな社会生活はできないと思いますが。
738
名前:
602
:03/01/28 20:44
時間がないので寝よ。
どっちにしろ、Win2000で開発を再開したので問題なく進んでいます。
739
名前:
デフォルトの名無しさん
:03/01/28 20:44
>>728
671 で困ってる人はあんた以外に一人も居ないよ。
あんたの心証だけで何でいきなり ID 導入という話になるの?
>>732
実際に荒れてるんだから、つもりはどうであろうとあんたは荒らしだよ。
ちょっと聞きたいんだけど、そういう発言をすることによって、何を達成したいの?
どういう目的があるの?
ここはグチ垂れるスレじゃないよ。
大体、わからない質問にどう答えろと言うんだ?
みんなで調べろって?
プログラム初心者だから優遇しろって?
初めて日が浅いから多少の無礼は勘弁しろって?
ふざけるな、ここは無料サポートセンターじゃないぞ。
いろんな人の好意と余暇で成り立っているコミュニティだ。
その人達にそっぽを向かせるようなレスを繰り返しておきながら、自分の要求だけは
押しつけるのか?
それが、人にものを頼む態度か?
ここから追い出されようとしてるのは、あんたが 「自分の世界以外の者」 だから
ではなく、あんた自身が人間的に問題あるからだと気付け。
↑ で、自分で言うのもなんだけど、どこを縦読みすればいいんだ?
740
名前:
デフォルトの名無しさん
:03/01/28 20:45
愚民ども、しずまれぇ〜
741
名前:
602
:03/01/28 20:47
>>739
ああ、勘違いしてますね。
ただ、わかる人がいるのかな?と聞いただけです。
わからないのなら、それでもかまわないのですから。
それを、いきなり「自分で調べろ!」だとか、わかっている内容を「MSDNを見ろよ」とか、なにか攻撃的ですね。
まぁ、どうでもいいですけど。
問題は自分で解決しましたので。
742
名前:
デフォルトの名無しさん
:03/01/28 20:49
602 の中の人も可哀想だな。
743
名前:
デフォルトの名無しさん
:03/01/28 20:50
>>741
あぁあぁ。消えろ。もうここにいる用は無いだろ。
もう二度とくんな。2ちゃんねるから出て行け。
744
名前:
デフォルトの名無しさん
:03/01/28 20:50
>>741
もう一度聞くけど、そういう発言をすることによって、何を達成したいの?
どういう目的があるの?
745
名前:
602
:03/01/28 20:50
プ
746
名前:
デフォルトの名無しさん
:03/01/28 20:51
>>744
もうどうでもいいだろ。粘着だな。お前。
747
名前:
デフォルトの名無しさん
:03/01/28 20:53
何? 祭り? ワショーイ
748
名前:
デフォルトの名無しさん
:03/01/28 21:06
>>602
はまだ寝ていないに全部。
749
名前:
デフォルトの名無しさん
:03/01/28 21:08
>>747
あおるな。はげ。
750
名前:
デフォルトの名無しさん
:03/01/28 21:35
ぶはは
煽られてるよ602が(w
ここにいる奴らはヒッキーの集まりだから気にするな(w
これで安心したろ(w
■過去ログ置き場に戻る■
1-
前250
次250
最新50
DAT2HTML
0.33f Converted.