- 1 名前:デフォルトの名無しさん [2007/04/18(水) 01:54:51 ]
- スレ立てるまでもない、Win32APIのついての質問はこちらへどうぞ。
やさしいお兄さんやお姉さんたちが答えてくれるかも。 過去スレ、関連リンクは>>2-5くらい。 ■注意 ・質問する前にMSDNライブラリやPlatformSDK、Google等で検索しましょう。 ・日本語版MSDN Online Libraryは不完全です。英語版(msdn.microsoft.com/library/)の利用推奨。 ・APIフックなど高度な事をしたい場合はできるだけAdvenced Windowsを読みましょう。 ・言語特有の問題やIDE、MFCやVCLなどの質問はそれぞれの言語や開発環境スレで
- 44 名前:デフォルトの名無しさん mailto:sage [2007/04/18(水) 23:53:01 ]
- >>40
言われた通りにしとけばいいだろ 哲学的な答えが欲しいならモニターにキーボード投げつけろ >>43 CreateWindowExを呼んでる部分晒してよ
- 45 名前:デフォルトの名無しさん mailto:sage [2007/04/18(水) 23:53:11 ]
- ShowWindow
- 46 名前:デフォルトの名無しさん mailto:sage [2007/04/19(木) 00:02:10 ]
- >>44
2画面分割のスプリットウィンドウで、親ウィンドウの上に 子1&2ウィンドウを作っており、その子2のCreateWindowです。 CreateWindowは、親のProcのWM_CREATEで呼んでいます。 +--+-------+ |子1|子2 | | | | +----------+ +----------+ (a)の行をg_c2w.height-20にしても変化しません・・・ 20はステータスバーの高さです。 // 子2ウィンドウ作成 g_hChild2 = CreateWindow( clsChild2, (LPCWSTR)"", WS_CHILD | WS_VISIBLE | WS_BORDER, g_c1w.width - g_frame, 0, g_c2w.width, g_c2w.height, ←(a) hWnd, NULL, hInstance, NULL );
- 47 名前:デフォルトの名無しさん mailto:sage [2007/04/19(木) 00:05:25 ]
- >>40
CreateIconFromResourceExとCreateIconIndirectは 与えたパラメータによってはカーソルを返すこともあるが、 そのハンドルがカーソルであったとしても、DestroyIconで破棄しなくてはならない。
- 48 名前:デフォルトの名無しさん mailto:sage [2007/04/19(木) 00:23:19 ]
- >>46
g_c2w.heightの中の値は確認した?
- 49 名前:デフォルトの名無しさん mailto:sage [2007/04/19(木) 00:28:31 ]
- >>48
すみません、今解決しました。 親のProcのWM_SIZEの中に子2ウィンドウのサイズを変更する個所が ありまして、それがWM_CREATEで設定したg_c2w.heightを上書きして いたようです。WM_SIZEでも-20してやると希望通りに動作しました。 ウィンドウ作成時にもWM_SIZEが走るとは知りませんでした・・・
- 50 名前:デフォルトの名無しさん mailto:sage [2007/04/19(木) 00:35:31 ]
- ∧∧
ヽ(・ω・)/ ズコー \(.\ ノ 、ハ,,、  ̄  ̄
- 51 名前:デフォルトの名無しさん mailto:sage [2007/04/19(木) 01:15:14 ]
- 自己解決しました。
50にカチンときたので教えません。 バーカ!
- 52 名前:デフォルトの名無しさん mailto:sage [2007/04/19(木) 01:26:30 ]
- 自己解決メソッドは↓のスレのみで有効です
【厨房満開】HSP初質51【ビラビラ満開】 pc11.2ch.net/test/read.cgi/tech/1142529119/
- 53 名前:40 mailto:sage [2007/04/19(木) 01:54:44 ]
- >>47
ありがとう
- 54 名前:デフォルトの名無しさん mailto:sage [2007/04/19(木) 06:08:02 ]
- エクスプローラで、コンテキストメニュー項目を追加したいのですが、
ファイルやフォルダを無選択時の場合(新規作成(W)とかが出るやつ)に 使用されるレジストリはどこなのでしょうか?
- 55 名前:デフォルトの名無しさん mailto:sage [2007/04/19(木) 06:22:08 ]
- *に書いておけばいいんじゃね?
- 56 名前:デフォルトの名無しさん mailto:sage [2007/04/19(木) 07:14:33 ]
- >>54
HKEY_CLASSES_ROOT\Directory\Background\shellex\ContextMenuHandlers だけど、これだけを聞いてちゃんとContextMenuHandlerを作れるのか?
- 57 名前:デフォルトの名無しさん [2007/04/19(木) 10:31:39 ]
- 任意のアプリのウィンドウを
SetParentで子ウィンドウにするプログラムを作りたいんですが 普通にSetParentしただけでは描画に問題がでました。 それでCreateRemoteThreadで同じプロセスに作ったスレッドの ウィンドウを親にしてみても同様に描画の問題がでますた。 なのでSetParentは同じスレッドじゃないとまともに動かないと結論付けて 今度は別のAPC未対応のスレッドにウィンドウを作らせるか、 もしくはウィンドウを別スレッドで作ってからウィンドウのハンドルを 別のスレッドに関連づけるような方法を試してみたいのですが そんな方法はありませんか?
- 58 名前:デフォルトの名無しさん [2007/04/19(木) 14:48:06 ]
- ttp://www.kumei.ne.jp/c_lang/sdk/sdk_29.htm
猫でも・・のソースで実行してみると、メニューとダイアログボックスは 表示されるんですが、ビットマップが表示されないです。 何かが足りないと思うのですが、原因わかるかたおりますか? Webページの実行結果と同じようにしたいので。。
- 59 名前:デフォルトの名無しさん mailto:sage [2007/04/19(木) 14:58:16 ]
- >>58
念のために聞くけど、 猫の画像ファイル(bitmap1.bmp)は自分で用意しないといけないけど用意した?
- 60 名前:デフォルトの名無しさん [2007/04/19(木) 15:05:27 ]
- アイコンとビットマップ両方用意してあります。
ちなみに、フォルダでexeをみると、アイコンは変わって 表示されてました。
- 61 名前:デフォルトの名無しさん mailto:sage [2007/04/19(木) 15:17:16 ]
- >>60
.rcのファイルにちゃんと MYBMP BITMAP DISCARDABLE "bitmap1.bmp" の行がある?
- 62 名前:デフォルトの名無しさん [2007/04/19(木) 15:20:26 ]
- >>61
あります。 もしかしてビットマップが大きすぎたりすると 表示できないとかありますかね。。 でもDlgの左上にアイコンも表示してくれないし・・・
- 63 名前:54 mailto:sage [2007/04/19(木) 15:21:57 ]
- >>55 >>56
どうもありがとうございます。 >>56 やっぱりそれしかないんですか・・・ そこだとActiveXオブジェクトである必要がある訳ですよね・・・? HKEY_CLASSES_ROOT\*\shell\foo\command みたいに適当なEXEとかでできる所はないんでしょうか・・・ ないですか・・・そうですか・・・ でも何でDirectoryなんでしょうか・・・?
- 64 名前:デフォルトの名無しさん mailto:sage [2007/04/19(木) 15:29:09 ]
- >>62
当たり前だけど .rcのファイルのダイアログの定義のところに CONTROL "MYBMP",IDC_STATIC,"Static",SS_BITMAP | SS_REALSIZEIMAGE, 19,18,13,14 の行はあるよね? "MYBMP"の綴り間違ってたりしてないよね? こっちの環境では2000x2000ピクセルのサイズでも、 モノクロビットマップでもちゃんと表示されるんだけどなぁ・・
- 65 名前:デフォルトの名無しさん mailto:sage [2007/04/19(木) 15:42:40 ]
- 普通のBitmapじゃ表示されないよ
アイコン用Bitmapを作るツールで作らないと
- 66 名前:デフォルトの名無しさん [2007/04/19(木) 15:45:48 ]
- >>64
あります。ビットマップが表示されないだけで ほかのはきちんと機能します。
- 67 名前:デフォルトの名無しさん [2007/04/19(木) 15:55:31 ]
- >>65
ビットマップの新規作成から こぴぺしてつくりました。 アイコンは **.icoでBMPは **.bmpです。
- 68 名前:デフォルトの名無しさん mailto:sage [2007/04/19(木) 16:01:59 ]
- >>67
エクスプローラとかデスクトップを右クリックの「新規作成」のことだろうか? 作っただけのそのままのファイルだと何も表示されない。 一度、ペイントブラシで適当に色塗っただけのBMP作って試してみたら?
- 69 名前:デフォルトの名無しさん [2007/04/19(木) 16:04:56 ]
- >>68
VCのリソースエディタに貼り付けました。 なんか色数が多いらしく、減色&小さめにリサイズして 貼り付けました。 リソースタブからプロパティをみると表示されています。 実行すると表示されません。
- 70 名前:デフォルトの名無しさん mailto:sage [2007/04/19(木) 16:55:06 ]
- とりあえずビットマップ・描画関連APIの戻り値見て、どこまで成功してるのか調べた方がいいかもね。
- 71 名前:58 [2007/04/19(木) 17:04:34 ]
- いろいろすみません
もうちょっとがんばってみます。
- 72 名前:デフォルトの名無しさん mailto:sage [2007/04/19(木) 20:43:41 ]
- スタティックコントロールが"MYBMP"で参照しているのに、
ビットマップはMYBMPで定義されている件について。
- 73 名前:デフォルトの名無しさん mailto:sage [2007/04/19(木) 21:58:35 ]
- IDB_MYBMP
- 74 名前:デフォルトの名無しさん mailto:sage [2007/04/19(木) 22:01:04 ]
- 皆様、質問があります。
コンソール画面で ipconfig > "c:\ipinfo.txt" とすると、リダイレクタより、 ipconfigの標準出力がc:ドライブ下のipinfo.txtに出力される。 これをCreateProcess関数のlpszCommandLineに、 「ipconfig > \"c:\\ipinfo.txt\"」と指定しても、 c:ドライブ下のipinfo.txtに出力されるものなんでしょうか? (自分はうまくいかない) それとも、 > はcmdの機能? パイプで組まなきゃダメなんかなぁ・・・
- 75 名前:デフォルトの名無しさん mailto:sage [2007/04/19(木) 22:02:35 ]
- >>74
シェルの機能なのでcmd.exeごと起動する。cmd /? をチェキ。
- 76 名前:74 mailto:sage [2007/04/19(木) 22:06:48 ]
- >>75
納得!! cmd.exeに委託しているんですかー。 ありがとうございます。
- 77 名前:デフォルトの名無しさん mailto:sage [2007/04/19(木) 22:38:43 ]
- CreateWindowのEDITで、書き込みとか書き換えを不可能にするために
EnableWindow(h1, FALSE)をしたところ、背景が灰色になって文字も薄くなりました。 書き換え書き込みは不可能なまま、背景白、文字黒に直したいのですが どうすればいいのでしょうか?
- 78 名前:デフォルトの名無しさん mailto:sage [2007/04/19(木) 22:47:20 ]
- >>77
ES_READONLY WM_CTLCOLORSTATIC でどう?
- 79 名前:デフォルトの名無しさん mailto:sage [2007/04/19(木) 22:55:03 ]
- >>78
できました!ありがとうございます! しかし、目的のEDITのウィンドウの背景を変えるにはどのように指定すればいいのでしょうか?
- 80 名前:デフォルトの名無しさん mailto:sage [2007/04/19(木) 23:59:54 ]
- >>79
親ウィンドウでWM_CTLCOLOREDITを捉える
- 81 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 00:20:58 ]
- リストビューの行にチェックボックスはどうやって付けるのでしょうか
↓こんな感じです _______ |__|_____ |□ | |□ | |□ |  ̄ ̄ ̄ ̄ ̄ ̄ ̄
- 82 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 00:25:49 ]
- >>81
www.kumei.ne.jp/c_lang/sdk2/sdk_198.htm ここらへんで幸せになれると思う
- 83 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 00:27:54 ]
- >>82
即レスありがとう 幸せになってきます
- 84 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 09:52:05 ]
- >>72
それでした。 ""を追加したら表示されました。 ありがとうございました。
- 85 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 10:35:32 ]
- ReadFileで読み取ったファイルを1行づつ二次元の配列に格納して
構文解析したいです ReadFileの第二パラメータのバッファから、二次元の配列に移すAPI はありますか?
- 86 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 10:45:42 ]
- CopyMemory
- 87 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 10:57:17 ]
- 物臭もここまでくると素晴らしいな
MSが何の為にそんなAPI用意するんだろうか
- 88 名前:デフォルトの名無しさん [2007/04/20(金) 11:50:11 ]
- 質問です。
ツールバーを作ろうとしているのですが、色々なサイトを調べても、ツールバー上にはボタンしか置いていないようです。 コンボボックスをツールバー上にのせたいのですが、可能でしょうか? ツールバーと似た、レバーコントロールというものの上におけるのは調べて発見できたのですが…
- 89 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 11:58:39 ]
- >レバーコントロール
思わずふきだしてしもた。
- 90 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 12:57:22 ]
- エクセルでオープンしているファイルを、
CreateFileでオープンしたいのですが、どうすれば出来るでしょうか。 エクセルでオープンしていなければ、CreateFileでオープンできるのですが、 エクセルでオープンしていると、CreateFileでオープンできないようです。 ただ、他のファイルビュアーでは読めたりするので、どうやればそれができるのかわかりません。
- 91 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 13:01:21 ]
- CreateFileのリファレンス読めば明らかだと思うが・・
- 92 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 13:01:24 ]
- >>90
排他モードで開いてるんだろ
- 93 名前:85 mailto:sage [2007/04/20(金) 13:06:25 ]
- ReadFileの第二パラメータのバッファの中は
111\r\n222\r\n333\r\nEOF と連続した文字列なのはわかったのですが、これをCopyMemoryを使って、 1行づつ二次元の配列に移す場合、バッファを先頭から1文字づつ読んで\r\n 毎に切り分けて格納するしかないのでしょうか・・・ 定番の読み方(例えば仕事(?)でやられる方)が知りたいです ↓こうしたい char hairetsu[5000][1024] (5000はファイルの行数、1024は1行の最大の長さ) hairetsu[0][1024]に111\r\n hairetsu[1][1024]に222\r\n hairetsu[2][1024]に333\r\n hairetsu[3][1024]にEOF
- 94 名前:85 mailto:sage [2007/04/20(金) 13:07:03 ]
- >>86
ありがとうございます
- 95 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 13:12:28 ]
- てかCの標準関数にそのものズバリなのあるじゃねぇか
- 96 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 13:19:12 ]
- バッファはそのまま使いつづけて
各行開始位置のポインタ値を保持する変数配列を用意し バッファを一旦頭から末尾まで全部捜査し 行開始位置のポインタをとりつつ\r\nを\0\0に書き換えていく これで文字列系関数にもポインタを渡すだけで行ごとに処理が可能に! つーか>>93みたいな多元配列はメモリの無駄だし
- 97 名前:デフォルトの名無しさん [2007/04/20(金) 14:00:55 ]
- Win2000+VC.net2003の環境で
QueueUserAPCをコンパイルすると error C3861: 'QueueUserAPC'識別子は、引数依存の照合を使用しても見つかりません。 と出るんですがどうすれば解決できますか? winbase.hをインクルードしてもkarnel32.dllとリンクしても駄目みたいなんですが。。
- 98 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 14:06:49 ]
- _WIN32_WINNT を 0x0400 以上の値で define した後にヘッダーをインクルード
(コンパイラ設定でマクロ設定する でも可)
- 99 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 14:22:34 ]
- 子ウィンドウが開かれていて、親ウィンドウの上を移動させる時、
9x系と再描画されて、XPだと再描画されないのですが、 9x系とXPでは、再描画の挙動が違ったりしているのでしょうか。
- 100 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 14:46:22 ]
- そりゃあ、OSの設定の問題だろ
移動を終えてドラッグ止めたら再描画されるだろ?
- 101 名前:99 mailto:sage [2007/04/20(金) 15:35:25 ]
- >>100
ありがとうございます。 されないです。 最小化して標準に戻すのでもダメです。 WM_PAINTが来てない可能性すらあるので、 そこらへんから実験してみます。
- 102 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 16:22:57 ]
- それはあれか、全く同じEXEを9xとXPで動かしてるのか?
>WM_PAINTが来てない可能性すらあるので、 ネェヨwwwww
- 103 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 16:29:05 ]
- 子ウインドウは動かしただけでは再描画されなくても正常だが
WS_EX_LAYERED付なら親でも
- 104 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 16:34:47 ]
- そういえばレイヤードウィンドウなんてありましたねぇ
全然必要性を感じないから使ったこと無いですが
- 105 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 16:39:05 ]
- レイヤードウィンドウは雑誌やスクリーンショットで見る分にはかっこいいが
実際に使ってみると使いにくくてしょうがない
- 106 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 16:42:11 ]
- >>95
ありがとうございますstrtok確認しました >>96 >\r\nを\0\0に書き換えていく このやり方で行きます目から鱗です こういうテクニックって本に書いてあるんでしょうか? ウェブでも本でも見たことない・・
- 107 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 16:51:04 ]
- >>105
完全不透明のレイヤードウィンドウもつくれるよ。 見た目は普通のウィンドウと変わらないけど、WM_PAINTは激減する。
- 108 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 17:05:24 ]
- 外部プロセスのCPU使用率を強制的に制限する方法を探しています。
最初に、CreteProcessのPROCESS_INFORMATIONから得られるhThreadに対して SuspendThread/ResumeThreadを試しましたが、 複数スレッドがある場合に対応できない様です。 次にCreateToolhelp32Snapshotによるプロセス内のThreadの列挙で SuspendThread/ResumeThreadをやろうとしましたが、 Thread32First/Thread32Nextで得られるThreadIDに対し、 OpenThreadでHandleへ変換しようとすると失敗してしまいました。 また、JobObjectの関連付けでJOB_OBJECT_LIMIT_JOB_TIMEや IDLE_PRIORITY_CLASSで時間制限を掛けてみましたが、このオプションは 設定時間にプロセスが終わってしまうだけみたいなので目的と違う様です。 使用率制限を行うツールとして既にBESという物がありますが、 あれはどうやっているのでしょうか?
- 109 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 17:07:32 ]
- すいません、BESはソースが公開されていますね。
調べてみます…。
- 110 名前:99 mailto:sage [2007/04/20(金) 17:12:42 ]
- >>102
はい。基本は9xで作っているんですけど、 動作確認のためxpで動かそうと思いました。 >>103 再描画されて欲しいのは、下にある親ウィンドウの方です。 ただ、最小化→標準化とすると、子ウィンドウの方も再描画されません。 WS_EX_LAYEREDについても調べてみます。
- 111 名前:108 mailto:sage [2007/04/20(金) 17:27:28 ]
- できました。Thread32First/Thread32Nextの方法でよかった様です。
- 112 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 17:37:56 ]
- 画像を扱うのにBMP用のAPIは見つかったのですが、
PNG用のAPIは、外部ライブラリを探すしかないのでしょうか? OSはXPです。
- 113 名前:デフォルトの名無しさん [2007/04/20(金) 17:40:00 ]
- GDI+でも検索汁
- 114 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 17:41:03 ]
- つ gdiplus
- 115 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 17:45:29 ]
- StretchDIBitsって出力先がメモリDCや拡張メタファイルでもPNGを出力できるんだろうか
- 116 名前:112 mailto:sage [2007/04/20(金) 17:50:23 ]
- ありがとうございます。勉強してきます。
- 117 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 18:07:55 ]
- WM_CREATEメッセージ中に、子ウインドウのレイアウトに従い
自身のサイズを変更したいのですが、CREATESTRUCTを修正しても MoveWindow/SetWindowPosでも変更できないようです 何かいい方法はないでしょうか?
- 118 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 18:10:34 ]
- サイズの変更をポスト
- 119 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 18:15:05 ]
- >MoveWindow/SetWindowPosでも変更できないようです
可能性 ・自分の WM_SIZE ハンドラで、引数と無関係の値にサイズ変更している ・自分の親が 親のWM_SIZEのタイミングで 自分をMoveWindowしやがってる
- 120 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 18:15:36 ]
- あれ?ウィンドウ生成時にもWM_SIZEが発行されるんじゃなかったっけ?
- 121 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 18:26:35 BE:124224588-2BP(222)]
- >WM_CREATEメッセージ中に、
リソースインダイレクトを使っているというオチではなかろうな。
- 122 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 19:23:11 ]
- ウィンドウを作らずに通知エリアの追加は出来ないの
- 123 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 19:25:15 ]
- 通知エリアって?
- 124 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 19:34:20 BE:62112184-2BP(222)]
- >>122
できたとして、どうやってメッセージを受け取るつもりだ?
- 125 名前:97 mailto:sage [2007/04/20(金) 19:43:23 ]
- >>98
ありがとうございます。 その通りにやったら、できました。
- 126 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 19:45:04 ]
- >>124
Hook
- 127 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 19:46:33 BE:58230656-2BP(222)]
- >>126
「通知エリアのメッセージ」と分かっているのにフックしなければならない理由があるの?
- 128 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 19:59:01 ]
- 北がキチガイなのは世界中公認の周知の事実だが
南は中身は同じなのに私達先進国ですという皮をかぶってるのがウザス
- 129 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 20:02:32 ]
- 同意するがスレ違いだ
- 130 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 21:09:53 ]
- >>106
さぁねぇ プログラムの本なんて数多あるから、似たようなのが載ってる本ももしかしたらあるかもしれないな 俺はとりあえず見たこと無いが ランゲージリファレンス系の本しか持ってないしな ていうか今回のくらいのは、自分で思いつくくらいにはならんといかんのじゃないかと思うよ
- 131 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 21:12:23 ]
- >>96
>行開始位置のポインタをとりつつ\r\nを\0\0に書き換えていく これポインタ取るのはわかるけど、書き換えは出来ないんじゃね? バッファってchar*だから一旦配列なり、mallocで取った領域なりに バッファ丸ごとコピーして、そこを書き換えないと
- 132 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 21:18:26 ]
- ファイルマpp(ry
- 133 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 21:21:50 ]
- >>131
constでもリテラルでも無い、普通にメモリ上に動的確保したバッファ内の値が書き換えできないと申すか?w
- 134 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 21:25:15 ]
- >>131
おまえの言ってるバッファはいったい何のバッファだ? ReadFileに渡すようなバッファがWriteAccess不能なメモリ領域だと言うのか?w
- 135 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 21:27:54 ]
- バッファの語源はやっぱ水牛?
- 136 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 21:28:26 ]
- シリアル通信について質問させて下さい。
通信がうまくできません。 以下は流れです。 CreateFile( "COM1", GENERIC_READ | GENERIC_WRITE, 0, 0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0 ); GetCommState(); DCBパラメータを書き換え SetCommState(); GetCommTimeouts(); タイムアウトパラメータを変更 SetCommTimeouts(); WriteFile(); // 1byteのコマンド送信準備 FlushFileBuffers(); // 送信 ReadFile(); // 1byte受信(受信できるまで10回繰り返し) 0x0Fを送れば、0xF0が返ってくるはずなのですが 何も返ってこなくて。手順的な見落としなどがあれば ご指摘頂けると幸いです。 秋月のTDS01Vというセンサーキットを自前のプログラムで 読んでみようと始めたのですが、最初から躓きました。 センサーの動作は添付のプログラムで正常動作を確認しています。 全てのAPIからはエラーは返ってきていません。
- 137 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 21:34:21 ]
- どんな引数を指定しているかも
DCBの設定内容も隠してどこがいけない?と聞かれてもな・・・
- 138 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 21:43:23 ]
- >>137
申し訳ない、行数制限に引っかかったので どこを削ろうかなと。 DCBはGetした後は、キットのドキュメントにある パラメータをセットしてるつもりです。 (他はGet時のまま) m_CommDCB.BaudRate = CBR_9600; // 9600bps m_CommDCB.fBinary = TRUE; // bynary mode:always TRUE m_CommDCB.fParity = FALSE; // parity no check m_CommDCB.ByteSize = 8; // byte size m_CommDCB.Parity = NOPARITY; // no parity m_CommDCB.StopBits = ONESTOPBIT;// 1 stop bit タイムアウトはWeb上でみつかったサンプルの値を引っ張って 来ています。 m_CommTimeouts.ReadIntervalTimeout = 100; m_CommTimeouts.ReadTotalTimeoutMultiplier = 10; m_CommTimeouts.ReadTotalTimeoutConstant = 500; m_CommTimeouts.WriteTotalTimeoutMultiplier = 10; m_CommTimeouts.WriteTotalTimeoutConstant = 500; bRtn = WriteFile( m_hCommHandle, m_pTxBuff, 1, &dwCount, NULL ); FlushFileBuffers( m_hCommHandle ); dwCount = 0; for ( int i = 0; i < 10 && dwCount == 0; i++ ) { bRtn = ReadFile( m_hCommHandle, m_pRxBuff, 1, &dwCount, NULL ); // 戻り値チェックしながらリトライループ } ここで、for文が10回回って出てきてしまいます。dwCountは0のまま
- 139 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 21:52:46 ]
- bRtnは確認したの?
- 140 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 21:56:33 ]
- >>139
レスありがとうです。 上のソースは抽出でして、全てのAPIの戻り値は チェックしていて、エラーが返ってきていないことは 確認しています。
- 141 名前:デフォルトの名無しさん [2007/04/21(土) 00:51:40 ]
- >>140はCOMポートを増設してクロスケーブルを買ってくるべきだな。
で、ケーブルで首ry
- 142 名前:デフォルトの名無しさん mailto:sage [2007/04/21(土) 15:04:40 ]
- タブコントロールをEnableWindow()で無効にしても、
タブの文字が淡色表示にならないのだがそういう仕様?
- 143 名前:デフォルトの名無しさん mailto:sage [2007/04/21(土) 15:09:15 ]
- そう
- 144 名前:デフォルトの名無しさん mailto:sage [2007/04/21(土) 18:45:17 ]
- GRAYEDにしなさい?
|

|