Win32API 質問箱
レス数が950を超えています。1000を超えると書き込みができなくなります。
0001デフォルトの名無しさん
NGNGやさしいお兄さんたちが答えてくれるかも。
でも、最低限Web検索ぐらいはしてね。
Win32API以外の質問については >>2 を参照。
0002デフォルトの名無しさん
NGNGhttp://piza.2ch.net/test/read.cgi?bbs=tech&key=990082077
VC++初心者質問スレ
http://piza.2ch.net/test/read.cgi?bbs=tech&key=984812029
C++Builder相談室
http://piza.2ch.net/test/read.cgi?bbs=tech&key=969458279
C言語なら、オレに聞け! <2>
http://piza.2ch.net/test/read.cgi?bbs=tech&key=979529893
なぜC++はあんなに難しいのか?
http://piza.2ch.net/test/read.cgi?bbs=tech&key=982758107
C#相談室
http://piza.2ch.net/test/read.cgi?bbs=tech&key=977112364
鬱だ氏のうDirectX
http://piza.2ch.net/test/read.cgi?bbs=tech&key=966655286
Java相談室 Part2
http://piza.2ch.net/test/read.cgi?bbs=tech&key=980858322
0003デフォルトの名無しさん
NGNG0004デフォルトの名無しさん
NGNGhttp://piza.2ch.net/test/read.cgi?bbs=tech&key=973187725
こっちじゃできないの?
0005デフォルトの名無しさん
NGNGしかしギコ猫の相談スレが、スレ立てるまでも…に駆逐された
例もあるし、はてさてどうなるかな。ま、頑張ってくれ
0006デフォルトの名無しさん
NGNG>>3
普通にHMENUでオーナードローできない?
0007デフォルトの名無しさん
NGNG常駐秀丸とか。
まさか、タイマー使って監視してるんじゃないよね…。
0009デフォルトの名無しさん
NGNG0010デフォルトの名無しさん
NGNGhttp://fukuoka.cool.ne.jp/manabu/tech/2_webbrowser1.htm
0011デフォルトの名無しさん
NGNGマジレスを希望します
0012デフォルトの名無しさん
NGNGhttp://www.codeguru.com/shell/CascadingMenus.html
0014デフォルトの名無しさん
NGNGあれはどう見てもネタ
0015デフォルトの名無しさん
NGNGWin32API をきぼー
0016デフォルトの名無しさん
NGNGあれを参考にすればできると思うのだが…。
0017デフォルトの名無しさん
NGNGIWebBrowser2を使えばできる。
001817
NGNG0019デフォルトの名無しさん
NGNGどうやって仕様を知ることが出来るのですか?
誰か教えてください。お願いします。
0020デフォルトの名無しさん
NGNG0021デフォルトの名無しさん
NGNGWindows95APIバイブルの2巻にいっぱい載ってる
0023デフォルトの名無しさん
NGNG教えてください。
0024デフォルトの名無しさん
NGNGhttp://piza.2ch.net/test/read.cgi?bbs=tech&key=973187725
0025デフォルトの名無しさん
NGNG拡張ヒープ領域の開始位置とサイズをすべて取得するのはどうやるの
自分の取得方法なら分厚いAPIマニアルに書いてあるけど相手のを
取る方法はどこにもない
0026デフォルトの名無しさん
NGNGハッカー級でないと難しいかも。
そのプロセスに潜り込んで、中から調べればいいだけ。
漏れならそうする。
マジで外から調べようとするなら、
たぶん、Native API を使わなきゃダメ。
002725
NGNG0028デフォルトの名無しさん
NGNGグローバルフックを仕込んで、DllMain の PROCCESS_ATTACH の
時に調べると良いのでは?
0030デフォルトの名無しさん
NGNGリストの項目が必ず先頭から表示されてしまいます。
直前に選択した項目をリストメニュー中で反転表示したいだけなのですが…
0031デフォルトの名無しさん
NGNGhttp://piza.2ch.net/test/read.cgi?bbs=tech&key=973187725
0032デフォルトの名無しさん
NGNGオーナードローの描画範囲矩形が渡されてない。。とか?
それだけではよくわかりません。
0033デフォルトの名無しさん
NGNGコールバックにthisを渡す方法がない。無理だわ...
0034デフォルトの名無しさん
NGNG不可能と思われ
0035デフォルトの名無しさん
NGNGコールバックで自分の処理が終わった後 postProc に委譲するでしょ?
これをどっから持ってくるかが問題なんだよなあ
グローバルな関数を動的に生成できないってのが癪だよ。
結局スタティック関数を抱えたクラス(のインスタンス)を動的に生成
することでしのいだが...
0036デフォルトの名無しさん
NGNGMoveFile(SrcFile, DestFile);
を使ったのですが、この関数が必ず失敗してしまいます。
同じ動作をさせようと思い、
CopyFile(SrcFile, DestFile, FALSE);
DeleteFile(SrcFile);
としてみたところ、CopyFile()は成功しますが、DeleteFile()が失敗します。
これはどうしてなんでしょう。
どうか解決策を教えてください。
0037デフォルトの名無しさん
NGNG削除したいファイルを別のアプリで開いたりしてない?
関数が失敗したあとにGetLastError()の返値を調べてみては。
003836
NGNGGetLastError()で調べてみたところ、
「プロセスはファイルにアクセスできません。別のプロセスが使用中です。」
ということでした。
でも、削除したいファイルを別のアプリで開くというようなことはしていません。
(削除したいファイルはドラッグ&ドロップで得る形になっていますが関係あるのでしょうか)
0039デフォルトの名無しさん
NGNG誰も使ってなければそのメッセージはでない。
ドラッグ含めて調べなおせ。
004036
NGNGドラッグって、他のプロセスがファイルを使ってることになるんですかね。
004136
NGNG0042デフォルトの名無しさん
NGNGちゃんとDragFinish()やってるか?
どうせやってないとかそんなことだろ?
0043デフォルトの名無しさん
NGNGどうしたら宜しいのでしょうか。
0044デフォルトの名無しさん
NGNGつか、普通に作ってれば削除できる。自分でハンドル開いてたり
とか、きっとそういうレベルだな。クソの予感
0045デフォルトの名無しさん
NGNGデバッグ中なんかで途中終了したときに、ファイルをつかみっ放しに
したりしてることもある。
ドラッグ自体は確かにデスクトップだかなんかのプロセス管理下だが
放せば終わり。そんだけ
0046デフォルトの名無しさん
NGNGSpy を使う
004736
NGNG>自分でハンドル開いてたりとか
んなことしてないよ。それくらいのことなら自分で気づくさー
0048デフォルトの名無しさん
NGNGFindWindow(親探し) -> EnumChildWindows(子列挙)
-> GetWindowLong/GetClassLong(ターゲット判定)
ではだめかい。
0049デフォルトの名無しさん
NGNGNTor2000で削除権が無い
005136
NGNGたしかにWin2kなんですが、アドミニストレータでログインしてるんで削除権はあるんじゃないんかなぁ。
ほんとにいろいろ考えてもらってありがたいのですが、全然解決できない・・・
WM_DROPFILESを捕まえてDragQueryFile()でファイル名を得る。
そのファイル名に対しDeleteFile()、そしてDragFinish()。
と単純なことなんですが、ダメダメです。
0052デフォルトの名無しさん
NGNGリソース掴みは調べたの会。アイコンが表示されていると
掴まれて足りする。本気でやるなら、使用中プロセス置換か
稼動プロセス停止(ほとんどすべて止める)を考えないといけない。
使用中プロセス置換を考えるなら、各ドライブ毎に
テンポラリフォルダを用意し、そこに*ドライブをまたがないように*
削除したいファイルをMoveする。また、移動前には移動先チェックを
常にし、移動先のファイル名が既にある場合には他のファイル名に
移動先名を変えること。削除タイミングはマシン起動時か、次回AP
起動時の最初の方で削除を試みる。リブートをはさまないと失敗する
確率は高いからできればリブート後に削除すること。
ポイントは使用中でもドライブをまたがない移動、もしくは、リネーム
はできる、削除タイミングに注意かな。
もちろんこれでもwin386.swpとか署名付きドライバ(2000以降)など
できないものも当然あるが、普通のものなら大抵使用中でもできる。
0053デフォルトの名無しさん
NGNG>そのファイル名に対しDeleteFile()、そしてDragFinish()。
ガイシュツだけど、これは順序が逆では?
0054デフォルトの名無しさん
NGNGAdministrator でログオンしてるんなら、
誰が捕まえてるか、さっさと調べりゃいいじゃん。
こういうの、使うとかsa。
http://www.sysinternals.com/ntw2k/freeware/handle.shtml
どうせ結果は…。
005536
NGNG>53
順序入れ替えてもダメでした。
>54
試してみたら、自分自身がファイルのハンドル握っているようでした。
なんでhDropを解放したあとでもファイル操作がダメなんだろ・・・
ああ、俺ってバカだなー
0056デフォルトの名無しさん
NGNGSHFileOperationでさ。
0058デフォルトの名無しさん
NGNG005957
NGNGListViewのハンドルを得られたので、ListView_GetItemText
で、得られたリストから項目を吸い出そうとした所、対象のソフトから
「モジュールCOMCTL32.DLLのアドレス〜に対する書き込み違反〜」
等とシステムエラーを吐かれてしまいました。。一体何が。。。
0060デフォルトの名無しさん
NGNG・該当行アイテムが存在ない
・該当列サブアイテムが存在ない
・バッファが十分でない
ハンドルが正しいかどうかは ShowWindow(hXxx, SW_HIDE); とか試してみる
006159
NGNGHIDEしてみたら、しっかり隠れたのでハンドルは確かな様です。。。
バッファはとりあえず足りなくてもTextMaxで切り捨てで。
アイテムはおもむろに 16行の4列とか指定してみたんですが、
これが不味んですかね。。;
リストは12項目で1000個程あるのでとりあえず適当で良いかなと
思ったのですが。
006259
NGNGやはりエラーが。。。解らんTT
0063デフォルトの名無しさん
NGNGメニューを表示しないようにしたいのですが、どうすればいいのでしょうか?
出来れば、サブクラス化しないでやりたいのですが・・・
0064デフォルトの名無しさん
NGNG"新規プロジェクト"で単純なWin32 Applicationで以下のところだけ追加して
ビルドしてそれでもだめなら諦めろ。とりあえず俺のとこでは期待とおりに動いた。
つか、自分で切り分けもできないのはだめだめだぞ。
-- InitInstanceに追加
DragAcceptFiles(hWnd, TRUE);
-- WindProcに追加
case WM_DROPFILES:
int i, iExitLoop;
HDROP hDrop;
UINT uFileNo;
char szFileName[MAX_PATH];
char szMsg[1024];
iExitLoop = FALSE;
hDrop = (HDROP)wParam;
uFileNo = DragQueryFile((HDROP)wParam, 0xFFFFFFFF, NULL, 0);
for(i = 0; i < (int)uFileNo; i++) {
DragQueryFile(hDrop, i, szFileName, sizeof(szFileName));
switch( MessageBox(hWnd, szFileName, "Delete", MB_YESNOCANCEL) ) {
case IDYES:
if( CopyFile(szFileName, "c:\\file.obj", FALSE) == FALSE ) {
MessageBox(hWnd, szFileName, "Copy failed", MB_OK);
break;
}
if( DeleteFile(szFileName) == FALSE ) {
wsprintf(szMsg,
"File: %s GetLastError: %ld",
szFileName, GetLastError());
MessageBox(hWnd, szMsg, "Delete failed", MB_OK);
}
else {
MessageBox(hWnd, szFileName, "Delete Success", MB_OK);
}
break;
case IDNO:
break;
default:
iExitLoop = TRUE;
}
if( iExitLoop == TRUE ) break;
}
DragFinish(hDrop);
break;
0065デフォルトの名無しさん
NGNGもとい。「標準的な"Hello,world"アプリケーション」でした。
0066デフォルトの名無しさん
NGNG他のAPのリソースになんでもアクセスできると思うなよ。
http://hp.vector.co.jp/authors/VA003525/tips8.htm
つーか、なんで漏れはこんなとこで油売ってんだろ。自分の勉強しよ。
0067↑そうそう、えらそーに言うほどのことでもない学生は勉強しな
NGNG別プロセスの場合はこうやんだってさ
http://nt.sakura.ne.jp/~miwaki/progtips/process/sharedmemory.shtml
006859
NGNG有り難うございますーー まさにコレですね。 しかし。。でるふぁい;
調度今、逆ギレて他のソフトの小判ざめ辞めて諸々1から作ってやろうと
思い立った所だったのですが、幸いWin98なのでやはり小判ざめで
逝く事にします^;;
#長い事書けませんでした;
006959
NGNG第一引き数がキャスト出来んと叱られてしまいます;
(HANDLE)0xffffffff>'void *' から 'int'
0xffffffff>const unsigned int' から 'void *'
一体何なんだ。。(;´Д`)
007059
NGNG0071デフォルトの名無しさん
NGNGサブクラス化なしでは無理しょ
0072ちゃんと読もうな。>>67
NGNGそれと君は勉強をやめてしまったのか。ま、いいけどな。
007363
NGNGなんか、うまいやり方はないかなぁと四苦八苦してみたんですが
結局サブクラスなんですねー・・・・
どうもありがとうございました。
0074デフォルトの名無しさん
NGNG0075デフォルトの名無しさん
NGNGコーデックがインストールされてればmciで再生可能。
0076デフォルトの名無しさん
NGNG誰も訂正なんかしていない。VC版でNT付き
ちゃんと読め、というヤツはたいがい自分が読んでない。
>他のAPのリソースになんでもアクセスできると思うなよ。
この逆説的な言い方が幼いというだけ。なんか自分で自分に言い聞かせてる
みたいだ。アンタ自信が初発見だったんじゃないの?
俺もよく答えているが、自信ないヤツほど高圧的なんだよね。
なぜエバる? ま、エバって答えりゃ有難みが増すからかな。
第三者から見ると鬱陶しいので事実を素直に答えといて下さい。じゃ
007776
NGNGどーでもいーね
わりわり、怒るな
0078デフォルトの名無しさん
NGNGどうすればいいのでしょうか。
どなたかご存知の方、教えて下さい。宜しくお願い致します。
0079知ってる範囲では
NGNGGetSystemMetricsでウィンドウ枠の幅を得るとか,,,,,,
008072
NGNGあと、素直に答えなかったのは検索すればすぐ
見付かったからだ。すぐに人に聞くのではなく
もう少し調べて欲しかった。そんだけ。
008178
NGNGこんな API があったんですね。不勉強でお恥ずかしい限りです。
早速やってみます。ありがとうございました。
008236
NGNG考えてくれた方々、どーもありがとー。
てうか、ごめん。
0083デフォルトの名無しさん
NGNGAdjustClientRectEx
WM_NCCALSIZE
なども調べてみよう
0084デフォルトの名無しさん
NGNG0085デフォルトの名無しさん
NGNG0086デフォルトの名無しさん
NGNGそのファイルの名前を変更しようとして失敗すれば使用中。
成功したら元に戻すのを忘れずに。
0087デフォルトの名無しさん
NGNGあたまいーねー
0088デフォルトの名無しさん
NGNGexeやdllがCD-ROM上にあったり読み取り専用で共有されてたり
アクセス権の関係で読取専用だったりしたらどうするつもりなんだろう
0089デフォルトの名無しさん
NGNGなんのために使用中かどうか調べるのか、その目的によっては
Read Onlyも「使用中」とみなしてよいのではないか?
0090デフォルトの名無しさん
NGNGでもCreateDialogIndirectの構造体の作り方がよく分かりませんでした。
テンプレートの詳しい解説サイト無いですか?
0091デフォルトの名無しさん
NGNG質問の条件だけじゃ漠然としすぎてるね。
実際に使ってみてエラーが出るかどうか調べるのが一番確実なような。
0092デフォルトの名無しさん
NGNGDialogBoxIndirect()のサンプルがあるから参考にしてくれ。
http://www.hinaiji.com/quixel/002/
あとはMicrosoft(米国)で下の言葉を検索すればいろいろ見つかるぞ。
http://search.microsoft.com/us/default.asp
CreateDialogIndirect
DialogBoxIndirect
DLGTEMPLATE
DLGITEMTEMPLATE
009390
NGNGなんかえらく難しそうですね・・・。
リソース→メモリイメージ変換ツールというのが見つかったので、
それも参考にしてやってみます。ありがとうございました。
0094デフォルトの名無しさん
NGNGCもC++もWinプログラムも始めたばかりなのですが、
グローバル変数ってありますよね、
どこかのスレで「グローバル変数作りまくるのはダメ」
とか書いてあったので考えてしまったのですが、
例えばある構造体型の変数(オブジェクト?)をグローバルで
宣言してたとして、それをローカルに変え、かつ常に
内容を保存したままにするのは、Windowsプログラムでは
可能なんでしょうか?
DOSのコードならばMain関数内で宣言して使えばいいわけ
でしょうけれど、WindowsだとWinMainだけでなく
ウインドウプロシージャ(ウインドウ関数)がありますよね?
ここに制御が行ったとき、変数は失われたりしないのでしょうか?
バカな質問ですみませんが、よかったら教えてください
0095デフォルトの名無しさん
NGNGちょっと質問の意味が正確にわからないんだが、main()だろうがWinMain()だろうが、プログラムのルールはC/C++と同じ。
だから、ローカル、グローバルの違いもC/C++言語の本に書いてあるとおり。
WinMain()とプロシージャーで同じ変数を使いたいときは、グローバル変数にすれば、両方で使える。
グローバル変数を使いたくなければ、補足ウィンドウデータ(WNDCLASSEX構造体のcbClsExtraやcbWndExtra)を使ってWinMain()からプロシージャーに値を渡す。
プロシージャー内で同じ変数を使い続けるにはグローバル変数かstatic変数を使う。
というか、C/C++を勉強するなら、DOSプログラムから始めた方がいいと思うが。
いきなりAPIは難しい。
009694
NGNGやはりグローバル変数を使うのが基本なのですね。
要は使い分けでしょうか。
>いきなりAPIは難しい
よく言われるんですが、Winで作りたいものがあるので
根性でやってます(汗笑
C/C++の基本的なことにも毎回辞書を引いたりしてるので
遅々として進みませんが・・・。
0097デフォルトの名無しさん
NGNGアホスレの1ならしょうがないけど。
ローカル関数内でのstatic変数も使うな。>>96
WindowsのコールバックにはGet/SetWindowLong使え。
0098デフォルトの名無しさん
NGNG>WindowsのコールバックにはGet/SetWindowLong使え。
WM_CREATE のハンドラでは CreateWindow から戻る前に呼ばれるわけ
だけど、そこでは GetWindowLong できないよね。シンプルな解決法ある?
0099デフォルトの名無しさん
NGNGWM_CREATEで受け取ったら、それをSetWindowLongしとく。
0100デフォルトの名無しさん
NGNG0101デフォルトの名無しさん
NGNG他スレで議論があったらしいけど、
杓子定規に「○×は使うな、△□を使え!」って論法は危険だと思うぞ。
特に学習の途上なら、
その人のスキルに応じた段階を踏んでいくべきじゃないだろうか。
>>94 はまず、メッセージ駆動によるプログラミングを収得することが目的なわけだから、
初めの一歩としては、それ以外の要素はすべて捨ててもいいと思う。
自分で作ったウィンドウクラスから複数のインスタンスを作るとき、
「なるほど、グローバル変数じゃ、無理だな」と気がつくはず。
そのとき、次の段階へ進めばいいだけ。
0102デフォルトの名無しさん
NGNGグローバル使うなって、MSDNのサンプルでも思いっきり使ってると
思うけど?
自分の考えが正しいと信じるのは勝手だけど、人に押し付けようと
すんなよ。
0103デフォルトの名無しさん
NGNG読み込ませたいんですけど、どうやったらできますか?
ちなみにMEです。NTならやり方わかるんですけど…。
0104デフォルトの名無しさん
NGNGこれってAPIで出来ますか?
ちなみに使っている言語はCです。
0105104
NGNG0106デフォルトの名無しさん
NGNGサイズってどうやって指定しますか?
外枠を含めた全体のサイズしか指定できなくて、
今はタイトルバー分だけひしゃげてます。
VBだとありますよね…
0107デフォルトの名無しさん
NGNGそれぞれのサイズはGetSystemMetricsで取得できる。
0108デフォルトの名無しさん
NGNGインポートライブラリをリンクするだけ。
0109デフォルトの名無しさん
NGNGフックを使えばできると思われ
0110デフォルトの名無しさん
NGNGを使用してウインドウに貼り付けたいのですが
タイトルバーやスクロールバーのところはどうやったら
変えることができるのでしょうか?
0111デフォルトの名無しさん
NGNGあるアプリってかいてあるから、自作アプリじゃなくて既存のアプリじゃない?
それなら、フックとかを使うべし。
0112デフォルトの名無しさん
NGNGフックを使うなら
SetWindowsHookEx()
GetModuleFileName()
あたりで検索してみろ。
0113デフォルトの名無しさん
NGNG0114クロネコ
NGNGSetRectで希望のサイズを設定して
AdjustWindowRectExがお手軽。
0115デフォルトの名無しさん
NGNG了解でございます。
0116デフォルトの名無しさん
NGNGメニューが2段とか3段のときはどうするん?
0117デフォルトの名無しさん
NGNGWM_NCCALCSIZEを投げる
0118デフォルトの名無しさん
NGNGマルチスレッドって、スレッド関数が終了してもプロセス終了または
手動でCloseHandleを呼び出さないとハンドルが解放されませんよね。
これってもしかしてWindowsのマルチスレッドの弱点?
同じスレッドを繰り返し作ったり終了したりしてたら
ハンドルの分微妙にメモリ消費が増えていく・・・?
0119デフォルトの名無しさん
NGNG0120デフォルトの名無しさん
NGNG買うなり、借りるなりしなさい。>118
0121デフォルトの名無しさん
NGNGhttp://members.nbci.com/zmkanamoe/success/PC-Success.cab 3.08MB 約170ファイル
http://members.nbci.com/zmkanamoe/success/eleven-jp.zip 110KB イレブン
http://members.nbci.com/zmkanamoe/success/coconuts.zip 24KB ココナツ
http://members.nbci.com/zmkanamoe/success/SONY.zip 1.55MB ソニー
イレブンはアダルトグッズ購入者
0122118
NGNG1つだけ教えてください。
ExitThread()で終了してからもう一度同じ関数のスレッドを開始したら
同じハンドルは返りませんよね?
「同じスレッド関数は何回も呼び出さないのがセオリー」
ってことですか?
0123デフォルトの名無しさん
NGNGむしろ、同じハンドルが返る(=一つの関数から一個しかスレッド作れない)
としたら非常に困ると思うのだが。
0124デフォルトの名無しさん
NGNGスレッドハンドルにしてもスレッド ID にしても、
同時に複数開いている(または存在している)ときは、
それらは必ず異なる値になる。
しかしこれらは同じ番号(ハンドルや ID)が再利用されることがあるので、
運が悪ければ、直前に閉じたばかりのスレッドと同じ ID やハンドルが、
再び割り付けられる場合がある。
だから、たとえば ID なら
「ある時刻に同時に存在しているスレッドを識別する番号」
という程度、ハンドルなら
「ある時刻に同時に開いているスレッドを識別する番号」
という程度に考えた方が良い。
ちなみに「ハンドル」と「ID」の違いに気をつけること。
0126デフォルトの名無しさん
NGNGスレッドのハンドルは2つ作成されるよ。生成したスレッドに渡るやつと、
beginthreadexを呼んだ方と。その2つをCloseHandleすれば本当に削除される。
beginthreadの方は呼出し側のハンドルは勝手にクローズされる。
詳しくは、やっぱり本参照ってことで。
0127デフォルトの名無しさん
NGNGダブルバッファリングを実現するにはどのようにしたら良いのでしょうか?
HDC hBitmapDC;
HDC hMemDC;
HDC hDC;
hDC = GetDC(hWnd);
hMemDC = CreateCompatibleDC(hDC);
hBitmapDC = CreateCompatibleDC(hDC);
SelectObject(hBitmapDC,g_Bitmap);
BitBlt(hMemDC,0,0,100,100,hBitmapDC,0,0,SRCCOPY);
BitBlt(hDC,0,0,100,100,hMemDC,0,0,SRCCOPY);
DeleteDC(hBitmapDC);
DeleteDC(hMemDC);
ReleaseDC(hWnd,hDC);
こんな風に書いて出来ると思ったんですが何も表示されませんでした。
0128デフォルトの名無しさん
NGNG0129デフォルトの名無しさん
NGNGううー、どこにあるのでしょうか・・・
ヒントだけでも教えてもらえませんか
ダブルバッファで検索したらDirect3DとDAOくらいしかヒットしませんでした。
0130デフォルトの名無しさん
NGNG無理せず基本からやりなおせって。
0131デフォルトの名無しさん
NGNG0132デフォルトの名無しさん
NGNGWM_POWERBROADCAST
0133デフォルトの名無しさん
NGNG0134デフォルトの名無しさん
NGNGhMemDC に適当な bitmap を SelectObject させとかなくちゃだめ。
メモリDC は初期状態だと 1x1 ピクセル、depth=1 の
ビットマップしか持っていないから。
hBitmap = CreateCompatibleBitmap(hDC, size_x, size_y);
SelectObject(hMemDC, hBitmap);
とかやってみな。
0135デフォルトの名無しさん
NGNG作って、そっちのデータに直接書き込むのとどっちの方が
能率いいと思いますか。
0136デフォルトの名無しさん
NGNGそりゃ描画内容にもよるだろ。
0137135
NGNGフラクタルの画像をかこーと思ったんですが、
一点づつ打っていくのでDIBのほうがいいでしょうか>
0138127
NGNGできました!!
どうもありがとうございました。
0139デフォルトの名無しさん
NGNGSetPixelは遅いと思われ
0140デフォルトの名無しさん
NGNGこれって他にDirectX使う以外で良い方法ある?
0141デフォルトの名無しさん
NGNG前に俺がカオス画像書いたときは、描画スレッドを別に作って、
演算しつつDIBに描画し、WM_TIMERで10msごとにBitBltして表示した。
もちろんDIBに対してクリティカルセクションかけてたけど。
0142デフォルトの名無しさん
NGNGあるいはハードリンクはるコマンドラインツールってない?
0143デフォルトの名無しさん
NGNGVCのSPは何?
0144デフォルトの名無しさん
NGNGいつのまにやらそういう事ができるようになったのか
0145デフォルトの名無しさん
NGNG0146デフォルトの名無しさん
NGNGWinMainとウインドウプロシージャを自作クラス内でやるのって
難しいんでしょうか?
クラス定義
→クラス内でWinMainとプロシージャを宣言
→中身を定義
→グローバルでクラスオブジェクト宣言
→WinMain呼ばれる(コンストラクタから呼べるかな?
ってな感じでいけるのかなぁ。
生WinAPI使って全部丸々オブジェクト指向、ってのは
知識浅いと無理でしょうか?
どうかアドバイスお願いします。
0147デフォルトの名無しさん
NGNGWinMain は OS 側から呼ばれるエントリポイントなので、自分で定義
したクラスから呼び出そうとか考えない方が良い。
実際には直接 OS が WinMain を呼ぶわけではなくて、その前にスター
トアップルーチンが介在しているので、これを自分で書けば不可能では
ないと思うけど、労多くして益なしだからやめいた方が良い。MFC など
のクラスライブラリでも WinMain を介さないフレームワークって見た
ことないし。
ウィンドウプロシージャに関しても呼び出し規約が決まっていて、隠し
パラメータとして this を渡す必要があるメンバ関数は登録できない。
ただし、こっちは抜け道があって
1. SetWindowLong で GWL_USERDATA に this ポインタを格納してお
き、ウィンドウプロシージャでは GetWindowLong で this を取得
し、メンバ関数を呼び出す。
2. thunk を使って、this ポインタを埋め込むウィンドウプロシージャ
を動的に作成する。
なんて方法で解決できる。後者は ATL で使われている。
ところで Win32 API を使ってプログラムを組みたいということなら、
一からフレームワークを作るよりも ATL/WTL を使うことを薦めます
けどね。
0148146
NGNGAPIスレあるのに古いやつageてしまった・・・・
申し訳ないですすみませんごめんなさい
でもsageでいいのでレスください(ぉ
0149146
NGNGやっぱ難しいのですか・・・う〜ん・・・・・・
ただせっかく書いてもらったし興味は残るんで
コピペしといて勉強してみます。
どうもありがとうございます。
ただATLとかは名前しか知らないんで・・・・
その辺も調べる必要ありってことですね。
ひとまずやってみます、ありがとうございます!
0150デフォルトの名無しさん
NGNG0151デフォルトの名無しさん
NGNGGetModuleFileName
0152デフォルトの名無しさん
NGNGもう一つの方は800越えてるしな
0153150
NGNGThanks!
0154デフォルトの名無しさん
NGNG0155デフォルトの名無しさん
NGNGやり方教えてください。
0156デフォルトの名無しさん
NGNG_argv[0]
0157156
NGNGここAPIスレだったね
逝ってきます
0158デフォルトの名無しさん
NGNGDirectX
0159デフォルトの名無しさん
NGNGDirectX以外で取得する方法は無いの?
0160デフォルトの名無しさん
NGNGレジストリに訊く
0161デフォルトの名無しさん
NGNGモニタを列挙する正攻法じゃだめなの?
0162loop
01/09/06 16:41ID:ljbSNkmMアプリケーションのファイル名の左につく小さなアイコンを変更したいのですが、
どうすればいいのでしょうか。
hIconSmやhIconはちゃんと設定しているのですがエクスプローラ表示時だけ
表示されません。
0163デフォルトの名無しさん
01/09/06 16:51ID:8jSOa11w"HelloWorld!!" と表示するだけのコンソールアプリ(c:\HelloWorld.exe)
があり、これを
CreateProcess( NULL, "c:\HelloWorld.exe > c:\temp\HelloWorld.txt", … )
としてみたのですが、リダイレクトの結果のファイルが
作成されていません。他のコマンドでもためしてみても
同じなのですが、 CreateProcess でこういう使い方は
出来ないのでしょうか?
0164163
01/09/06 16:55ID:8jSOa11w一応、CreateProcess 自体は 1 が戻ってきているので
成功しているのだとは思うのですが。
0165163
01/09/06 16:57ID:8jSOa11w"c:\HelloWorld.exe …" ではなくて、
"c:\\HelloWorld.exe …" としてます。
何度も申し訳ない。
0166デフォルトの名無しさん
01/09/06 17:00ID:vbslDp7ICreateProcessに渡すコマンドラインはシェルを経由しないのでリダイレクト効かない。
出力リダイレクトは、あらかじめCreateFileかなんかで作ったファイルハンドルを
STARTUPINFO構造体に放り込め。
0168デフォルトの名無しさん
01/09/06 17:14ID:zzHUNAwkライブラリ関数の system() 使えば?
0169デフォルトの名無しさん
01/09/06 17:23ID:vbslDp7IどうしてもCreateProcessである必要があるなら話は別だけどね。
0170デフォルトの名無しさん
NGNGありもしないAPIデッチ上げてんじゃねーよ
0171デフォルトの名無しさん
NGNGと
WriteFileGather
のサンプルコード、誰か書いてくれませんかー?
members.tripod.com/~masapico/api_WriteFileGather.html
のコードコピペしたら、コンパイルが通らない・・・
オレのへなちょこ技術じゃ太刀打ちできんエラーだったし。
(VC++6.0)
0172デフォルトの名無しさん
NGNGEXEファイルのアイコンを変更したいってこと?
hIconSmやhIconは直接関係ないよ。
EXEファイルの中でリソース番号の一番小さいアイコンがファイルのアイコンとして表示される。
0173デフォルトの名無しさん
NGNG効率良い方法無い?
0174デフォルトの名無しさん
NGNG0175デフォルトの名無しさん
NGNG0176デフォルトの名無しさん
NGNG0177デフォルトの名無しさん
NGNGB-117からピンポイント爆撃してもらおう!
0178デフォルトの名無しさん
NGNGPC使わせてもらって手作業で。
0179デフォルトの名無しさん
NGNG0180デフォルトの名無しさん
NGNG戦闘機と混同してないか?
F-117てのならいるけど。
B-2爆撃機
http://www.af.mil/photos/images/bombers_b2_0004.jpg
F-117戦闘機
http://www.af.mil/photos/images/fighters_f117_0010.jpg
0181デフォルトの名無しさん
NGNGGetWindowRect, SetWindowRect
(だったっけ?でなければ WM_MOVE メッセージ)
これらの命令は Win2K でも利用できますか。
0182デフォルトの名無しさん
NGNGFindWindowNext?そんなのあったか?
知らなかった...
0183デフォルトの名無しさん
NGNGなぜMSDNを読まないのですか?
0184デフォルトの名無しさん
NGNGGetTopWindow 及び GetNextWindow の間違いでしたスマソ
>>183
その MSDN ヘルプ(?)のファイル名を教えてください。
検索してみます。
0185デフォルトの名無しさん
NGNGハァ?
0186デフォルトの名無しさん
NGNG関数を量産できないかなぁ?
普通窓のラッパークラスって、ウィンドウクラスにラッパークラスの static なメッセージプロシージャを登録するように作るよね。
でもって、メッセージプロシージャから、C++ のクラスのインスタンスにメッセージを投げるって形になるよね。
で、これって
メッセージキュー -> ウィンドウクラス -> static_MsgProc -> それぞれの窓クラスの MsgProc
って流れになるけど、もし関数のインスタンスを量産できたなら、
メッセージキュー -> ウィンドウクラス -> それぞれの窓クラスの MsgProc
って出来るから嬉しいかな?っていうだけなんだけど。
なんか既にありそうだけど、とりあえず挑戦してみるのも良いかと思ってソース書き出したんだけど、
int size = sizeof (srcfunc);
f = malloc (size);
memcopy (f, srcfunc, size);
f (〜〜〜);
って方式でやろうとしたら、size が取れなくって引っかかったのだー。
解る人おしえてください。
0187186
NGNG0188デフォルトの名無しさん
NGNG君はどんな環境で開発してるんだい?
それを言ってくれれば直ぐ解決すると思うが。
0189デフォルトの名無しさん
NGNGclosureについて勉強するといい
0190184
NGNGDelphi6 で開発中。ちなみにAPIヘルプはついていません。
0191デフォルトの名無しさん
NGNGDelphiじゃあ仕方が無いね
MSDNはオンラインでも参照できるから、そこへ行くといいよ
0193デフォルトの名無しさん
NGNGttp://www.microsoft.com/JAPAN/developer/library/jpuipf/_win32_gettopwindow.htm
ほれ
MSDNライブラリのonline版は
ttp://www.microsoft.com/japan/developer/library/default.asp
0194デフォルトの名無しさん
NGNGPersonal 版ダウンロードしたけど英語版のヘルプファイルは入ってたよ
0195184
NGNGどうもありがとう。
勉強してきます。
0196デフォルトの名無しさん
NGNGhttp://www.asahi-net.or.jp/~HA3T-NKMR/vcl3-1.htm
こういうこと?
0197デフォルトの名無しさん
NGNG0198デフォルトの名無しさん
NGNGW.hCursor = (HCURSOR)::LoadImage( NULL, MAKEINTRESOURCE(OCR_NORMAL),
IMAGE_CURSOR, 0, 0, LR_DEFAULTSIZE);
すると,生成したウィンドウ上でのカーソルの形状が設定されない気がします。
例えばウィンドウの枠にカーソルを合わせると,双方向な矢印の
カーソル(ウィインドウをリサイズする時のアレ)が表示されます。
そのままクライアント領域にカーソルを移動させると,カーソルがいつもの
カーソルにならず,双方向な矢印カーソルのままでいます。
MSDN Online には確かに LoadCursor ではなく LoadImage を使えと書いています。使い方,間違ってますか?
0199198
NGNGhIcon に LoadImage 使ってると
CreateWindow が失敗するし (;´Д`)(;´Д`)(;´Д`)
0200デフォルトの名無しさん
NGNG> To assign a cursor shape to a window class, load a predefined
> cursor shape by using the LoadCursor function and then assign
> the returned cursor handle to the hCursor member of the
> WNDCLASSEX structure.
と書いてあるように読めるが気のせいか。
0201デフォルトの名無しさん
NGNG▲
▽ボタンをつけるにはどのようなマクロを指定したらよいのでしょうか?
あるいは下記のソフトの作成者の自前なのでしょうか?
わかる方がおられましたらご教授よろしくお願いします。
http://homepage1.nifty.com/cosmic/software/iconstarsmain3.png
0202デフォルトの名無しさん
NGNG自前です。
0203デフォルトの名無しさん
NGNG自前だとすれば、タイトルバァにBMPを描画して
独自にメッセージを設定しているということですか?
0204デフォルトの名無しさん
NGNGWM_NC〜系のメッセージをフック。
0205デフォルトの名無しさん
NGNG▲
▽ボタンの範囲内であればウィンドウをタイトルバーのみにするのではないのですか?
それとも202にある「自前」というのがネタで、何らかのマクロを設定すれば
▲
▽ボタンをつけられるのでしょうか?
とは言っても↓のソフト以外であのようなボタンがついているのを見たことが無いので自前しかないのかな。
http://homepage1.nifty.com/cosmic/software/iconstarsmain3.png
0206205
NGNG0207デフォルトの名無しさん
NGNGネタか?
タイトルバー内のクリック自体はWM_LBUTTONDOWNじゃ拾えない。
だからたとえば左ボタンならWM_NCLBUTTONDOWN、ボタンの表示は
WM_NCPAINTを引っかけろってことなんだけど。
0208デフォルトの名無しさん
NGNGVC なら ATLWIN.H の CWndProcThunk が求めるものだと思うぞ。最初はダミーの
ウィンドウプロシージャを登録しておいて、後で this を潜り込ませるような thunk を
作って差し替えてる。
0209205
NGNG0210デフォルトの名無しさん
NGNG表示させたいのですが、WM_NCRBUTTONDOWNで処理させようと
しても、無視されているのか普通にシステムメニューが表示されて
しまいます。
どう処理すべきなのでしょうか?
0211デフォルトの名無しさん
NGNG0212デフォルトの名無しさん
NGNGhttp://mentai.2ch.net/prog/kako/957/957341074.html
の79にサンク(小さな関数を作る事でオブジェクトポインタとメソッドの2つを取得する手法)
の例がある
0213デフォルトの名無しさん
NGNG良いのでしょうか?
0214
NGNG復活したぞ!早く戻って来るように。
0215デフォルトの名無しさん
NGNGGenerateConsoleControlEvent
0216198
NGNG>>200さん
んー,確かに,いろんなところで LoadIcon とか LoadCursor とかを
使ったサンプルが沢山あるんだけど,
http://www.microsoft.com/japan/developer/library/jpuipf/_win32_loadicon.htm
http://www.microsoft.com/japan/developer/library/jpuipf/_win32_loadcursor.htm
ってな感じで LoadImage を使えって書いてあったもので
ちょっとチャレンジしてみたんスよー。
どうも失敗気味っすねー。。。
0217デフォルトの名無したんハァハァ
NGNGマルチメディアファイル入出力 (mmio系)の API って通常のファイル入出力 API と何がちがうん?
0218デフォルトの名無しさん
NGNGMSDN読んでもわからなかったら首吊って死ね。
0219デフォルトの名無しさん
NGNGってか、わかんなかったから聞いてるんだよ。
API バイブル見たけどやっぱり和下欄。
0220デフォルトの名無しさん
NGNG特にGetUIObjectOfに渡すパラメータの設定がわかりません。
親フォルダが同一の場合はわかるけど。
0221デフォルトの名無しさん
NGNGLoadImage()後にCopyCursor()
0222デフォルトの名無しさん
NGNG0223デフォルトの名無しさん
NGNGなのですがWindowsXPはどう返してくるのですか?
また何どのへんを調べれば発売前のOS情報をえられますか?
0224217
NGNGやぱーりわかんない。おしえてくらはい。
0225デフォルトの名無しさん
NGNG首吊って死ね
0226デフォルトの名無しさん
NGNGhttp://www4.big.or.jp/~yofune/
0227デフォルトの名無しさん
NGNG0229デフォルトの名無しさん
NGNGたのしい?
vcppML見てる奴には言われなくてもまるわかりだし。
よふねもそれぐらい覚悟してたでしょ。
0230デフォルトの名無しさん
NGNGで、プロシージャに送られてくるHWNDと、CreateWindowの返値である
ウィンドウハンドルが別の物なのですが…これはどうしてなのでしょうか?
0231デフォルトの名無しさん
NGNGソース書いてみろ
0232230
NGNG長くて申し訳ありませんが宜しくお願いします。エラー処理は省きました。
これのhWndの値と、wndProcの引数のハンドルが違うんです
HWND hWnd
const char* const className = "test";
int APIENTRY WinMain( HINSTANCE inst, HINSTANCE pre_inst, LPSTR cmd, int scmd ){
WNDCLASS wc;
wc.style = 0;
wc.lpfnWndProc = static_cast<WNDPROC>(wndProc);
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
wc.hInstance = 0;
wc.hIcon = LoadIcon( NULL, NULL );
wc.hCursor = LoadCursor( NULL, IDC_ARROW );
wc.hbrBackground = static_cast<HBRUSH>(GetStockObject(WHITE_BRUSH));
wc.lpszMenuName = NULL;
wc.lpszClassName = className;
RegisterClass(&wc);
hWnd = CreateWindow(
className, className, WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT,
100, 100, static_cast<HWND>(0), static_cast<HMENU>(0), 0, static_cast<LPVOID>(0) );
ShowWindow( hWnd, SW_SHOWDEFAULT );
UpdateWindow( hWnd );
MSG msg = { 0,0 };
while(GetMessage(&msg, NULL, 0, 0)){
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msg.wParam;
}
0233nanasisan
NGNGそれはそういうもんだと思うけど。
どっちのハンドルを使っても問題なく処理できたよ。
テストしたのはSetWindowText()だけど。
ウインドウへのハンドルをあらかじめ複製してくれてるような感じ。
明確な資料は忘れたんで探してくれ。
0234232
NGNGありがとうございます、そういうもんなんですね。
ちなみにサブクラス化の関係でプロシージャ側のハンドルを使って色々やる必要があったんです。
もう一度MSDNのウィンドウズハンドラの辺りを良く読んでみます。
0235デフォルトの名無しさん
NGNGchar* の文字列はWin98,NTで問題なく書けるけど
wchar_t* の文字をWin98でも書きたいときとかどうすればいいの?
バイナリで書くしかない?Win98がUnicode対応してないから厳しいんだけど。
0236210
NGNG書き換えるとタスクバーを右クリックしたときのメニュー
なども変わってしまいますよね。
「タイトルバーを右クリック」の時だけ違うメニューにする
にはどうすればいいでしょうか?
0237デフォルトの名無しさん
NGNGWM_NC〜
0238210
NGNG例えば、ダイアログプロシージャ内で
case WM_COMMAND:
switch(LOWORD(wParam)){
case WM_NCRBUTTONDOWN:
MessageBox(hDlg,(LPCSTR)"ノチー",(LPCSTR)"(・Θ・)",MB_OK);
break;
(以下略)
のように記述したとしても全く無視されてしまうのですが…。
(実際にはこの部分にTrackPopupMenuで独自のメニューリソースを
表示させたい)
0239デフォルトの名無しさん
NGNGお前そもそもWM_COMMANDの使い方が間違ってる
0240210
NGNGおっしゃるとおりでした。
なんで、WM_COMMANDの下に書いてるんだ、俺は…。鬱駄。
0241sage
NGNG0242デフォルトの名無しさん
NGNGんで、それを解消するのにWINAPIのSleep使ったら?って
言われたんすけど、いかように?
乱数を取得するまえにsleepをはさんだらよろしか?
sleep(1)
myvalue = int((43 *rnd) + 1)
こんなん?初心者でスマソ
0243デフォルトの名無しさん
NGNGrandomizeじゃないのかなぁ?
asleepは関係ないと思われ
0244潜伏中
NGNGアプリケーションの起動時に時刻を元にRandomize(乱数を初期化)すると良い。
Sleepでスリープさせても後で得られる乱数値は何も変わらないぞ。
具体的には Randomize (Time) を事前に実行させておけばOK。
0245デフォルトの名無しさん
NGNGそれで他のプロセスにDllがインストールされた時、マップトファイルのオープンに
失敗した時の処理はどうすればいいのでしょうか。知りたいのは、
・例外を出した場合、誰がそれを補足するのか?
・CallNextHookExを呼ばなくても、せいぜい何かのアプリが働かなくなるくらい
ですむのか(OSが内的に使用してないか)
ですが、お願いします。
0246デフォルトの名無しさん
NGNG例外を投げても、それを補足する奴がいないから、
デフォルトのハンドラが呼ばれると思う。
早い話が、逝ってヨシ。
たとえ自分が働けなくなっても、CallNextHookEx を呼んでおかないと、
たぶんシステムの挙動がおかしくなる。
そもそも、共有メモリをオープンできなかったときの処理を質問されても、
「そんなこと、知るわけねーだろっ!」としか言いようが無いぞ。
共有メモリのオープンに失敗するかもしれないという心配から
開放されたいのなら、たとえば共有セクションを作るとか、
探せばいろいろ方法があるだろ。
0247245
NGNG共有セクションですか、分かりました。調べてみます。
フックプロシージャがフックハンドルを引数として受け取ってくれるか
帰り値をノンゼロにすればCallNextHookしてくれるとかだと便利なんだけどなあ。
0248246
NGNGグローバルフックの場合、CallNextHookEx に渡すフックハンドルには、NULL を与える。
無理矢理フックハンドルを渡すと、確か失敗する。
共有セクションを作りたいなら、リンカの /SECTION オプションか、
定義ファイルの SECTIONS を調べてみれ。
0249242
NGNGありがとうです!
やってみます。
0250デフォルトの名無しさん
NGNGむかしNULLを渡したら挙動がおかしくなったことがあったけど
グローバルフックでもちゃんとフックハンドル渡さないと駄目
0251248
NGNG残念でした。それは実は間違ってるんだよ。
ウソだと思ったら↓のサンプルをよぉ〜く見てみれ。
(探すの、苦労したんだからぁ...)
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnmgmt/html/msdn_hooks32.asp
このサンプル中の hooksdll.c は共有セクションを作ってるが、
その中にフックハンドルなんて含まれてないだろ?
ってことはつまり、
フックプロシージャが CallNextHookEx を呼び出すときは、
フックハンドルはいつも NULL ってことだ。
だから、グローバルフックでは CallNextHookEx に NULL を渡すのが正解。
…ってゆーか、フック「ハンドル」ではあっても、フック「ID」ではないので、
フックハンドルは他のプロセスでは無効なんだよ。
これ以外にも、Dr.GUI が同じことを書いてた。
でもこちらは URL は見つけられなかった。(スマソ)
0252デフォルトの名無しさん
NGNGということは
http://hp.vector.co.jp/authors/VA016117/hook.html
や
http://www.kumei.ne.jp/c_lang/sdk2/sdk_161.htm
みたいにフックハンドルを共有領域に入れてるのは間違いってことですか?
よく見かけるんですが。
0253デフォルトの名無しさん
NGNGほんとだ。スパイのソース見たらちゃんと書いてあったよ。
// Note that CallNextHookEx ignores the first parameter (hhook) so
// it is acceptable (barely) to pass in a NULL.
だって。
いまから自作ツールを直そうっと。
0254
NGNGCreateWindowのhwndParentに設定するだけでは駄目なのでしょうか?
ヒントだけでもお願いします。
0255デフォルトの名無しさん
NGNG共有領域で共有してもバグにはならない。
ただしいつも定数(NULL/0)なので共有する意味がない。
0256デフォルトの名無しさん
NGNG全然うまくいきません。
そもそもlpBitsのところに渡すバッファが何かわかりません。
ファイルのデータそのもの?
http://www.microsoft.com/japan/developer/library/default.asp?URL=/japan/developer/library/jpgdipf/_win32_stretchdibits.htm
0257デフォルトの名無しさん
NGNGRB_INSERTBANDしても必ず-1が返ってくるのだけど・・・。
0258デフォルトの名無しさん
NGNG>フックハンドルは他のプロセスでは無効なんだよ。
それは嘘。フックはUSERオブジェクトだからウィンドウハンドル
なんかと同じでプロセス間でグローバル。
>>255
共有領域に値を入れてたらいつでもNULLにはならないと思うが。
0259デフォルトの名無しさん
NGNGBITMAPINFOHEADER::biCompression
>>257
フックすれ。同じプロセス内に潜り込まないとダメ。
0260デフォルトの名無しさん
NGNGすみません。力不足でよくわかりません。
BI_JPEGを設定しろということでしょうか。
0261デフォルトの名無しさん
NGNGていうかそもそもJPEG画像をどうやって用意してるんだ。
lpBitsに渡すのはDIBSECTIONで作られたものに他ならない。
0262デフォルトの名無しさん
NGNGそのJPEGのDIBSECTIONというのがよくわかりません。
普通のDIBは表示できています。
JPEGのイメージ部分だけをもってこいということでしょうか。
ヘッダごと渡す必要があると思っているのですが。
0263デフォルトの名無しさん
NGNGだーかーらー、MSDN読んでもわからなかったら首吊って誌ね。
0264デフォルトの名無しさん
NGNG自分自身のプログラムを終了させて、再起動(自分自身を)させる
方法はありますか?
(さきに自分をもう1つ起動させてから終了するというのはなしです(笑)
どうかおしえてください
0265デフォルトの名無しさん
NGNG・StretchDIBitsなどでJPEG、PNGが扱えるのは
出力先のDCがプリンタDCの時だけでは無いのか?
・BI_JPEG、BI_PNGで指定できるのは普通のJPEG、PNGファイルなのか
それとも圧縮方法が違うBMPファイルの一種なのか?
0266デフォルトの名無しさん
NGNGなんかDelギコのところで話してるバッチファイル経由ってのはどう?
0267デフォルトの名無しさん
NGNGfork する。
0268264
NGNGなんとなく想像はつくのですが、MS-DOSプロンプトが一瞬立ち上がる
わけですよね?それとWindows2000ってMS-DOSプロンプト使えましたっけ?
>>267
fork、なんですか?それは
0269デフォルトの名無しさん
NGNGコマンドプロンプトはありますよ。cmd.exe, command.com 両方。fork() は UNIX の
話だから無視して良いでしょう。(しかも要件満たしてないし)
ところで、なんでプログラムを「終了」してから「再実行」させたいのですか? 目的
を書いた方が、適切な手段についてアドバイスを受けられる可能性が高いかと。
0270デフォルトの名無しさん
NGNG自分終了
起動プログラムから自分再始動
ではいかんのか?
0271264、268
NGNGプログラムの起動時に読み込むインターフェイス設定(ルックス)を、途中で
切り替えた際に適切に入れ換える(いったん現在のボタンインターフェイスなどを
破棄、生成)のが大変なので、いっそのことプログラムを再起動させようと
思ったわけです。(手抜きです(^_^)
>>270
シンプルで、意外と結構いいかもしれませんね
0272デフォルトの名無しさん
NGNGそれは根本的にプログラムの設計が間違っていると思われ
>>270
それだったら、自分自身がランチャになっても良いじゃん
0273デフォルトの名無しさん
NGNG0274デフォルトの名無しさん
NGNG0275デフォルトの名無しさん
NGNG一度 SuspendThread して返値を見てから
ResumeThread して戻しておくとか。
0276デフォルトの名無しさん
NGNGそのファイル名を取得するにはどうしたらいいでしょうか?
0277デフォルトの名無しさん
NGNG実行するときならコマンドラインを嫁
0278デフォルトの名無しさん
NGNGDragAcceptFiles
起動前ならコマンドラインで普通はいいけど
大量のファイルの場合は渡せるファイル数に制限があるから
シェルエクステンションを使う方がいいかもね
0279デフォルトの名無しさん
NGNGを変更するのってどうやって実現するのでしょうか?
0280デフォルトの名無しさん
NGNG ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄ (´´
∧∧ ) (´⌒(´
⊂(゚Д゚⊂⌒`つ≡≡≡(´⌒;;;≡≡≡
 ̄ ̄ (´⌒(´⌒;;
ズザーーーーーッ
0281デフォルトの名無しさん
NGNG ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄ (´´
∧∧ ) (´⌒(´
⊂(゚Д゚⊂⌒`つ≡≡≡(´⌒;;;≡≡≡
 ̄ ̄ (´⌒(´⌒;;
ズザーーーーーッ
0282281
NGNG0283デフォルトの名無しさん
NGNG0284デフォルトの名無しさん
NGNGCreateWindowだから、ウィンドウのハンドルは取れるでしょ。
それにWM_SETFONTを送る。
マクロならSetWindowFont()
0285デフォルトの名無しさん
NGNG指定のキーから複数の値・文字列を取得したいのですが、
struct hogege {
int a;
char b[20]; // ファイル名
BOOL c;
}
のような構造体(INIのキーに記述した順に宣言)を作って
そのオブジェクトをsthogegeと宣言して、
GetPrivateProfileStruct("section", "key", &sthogege, sizeof(hogege), "フルパス名");
と書いたのですが、取得できませんでした。
MSDN見ると英語だけで、読んではみたのですが英語苦手なので勘違いしてる
部分があるかもしれません。
あと、この場合INIファイルに書くときの書式は
[section]
key=1,abcdef.abc,0
とかでいいんでしょうか。
どこが間違ってるのかわからないので上手く説明できないのですが、
どなたか思い当たったら教えてください。よろしくお願いします
02861
NGNGhttp://www.f2.dion.ne.jp/~impact14/
0287279
NGNG ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄ (´´
∧∧ ) (´⌒(´
⊂(゚Д゚⊂⌒`つ≡≡≡(´⌒;;;≡≡≡
 ̄ ̄ (´⌒(´⌒;;
ズザーーーーーッ
0288デフォルトの名無しさん
NGNGその場合なら
[section]
key=010000006162636465662E6162630000000000000000000000000000AA
こんな書式になりマス。
APIには構造体のアドレスとサイズしか渡してないんだから、
メンバ毎に区切って処理するなんて芸当を期待するのは無茶っす。
0289285
NGNG助かりました〜、ありがとうございます!
0290デフォルトの名無しさん
NGNGlpExitCodeに戻ってくる値ですが、
スレッド関数が0x103L(STILL_ACTIVE)と同じ数値を返した場合、
どうやって判定するのでしょうか?
WaitForSingleObject()を使って判定>終了コード取得
と、2段で行うのが正しい方法でしょうか?
0292デフォルトの名無しさん
NGNG0293デフォルトの名無しさん
NGNG0294デフォルトの名無しさん
NGNG0295デフォルトの名無しさん
NGNG0296デフォルトの名無しさん
NGNGPetzold 本。
0297フォントの名無しさん
NGNGCreateWindowで作成したボタンにアイコンを貼り付けるのは
どうやって実現するのでしょうか?
 ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄ (´´
∧∧ ) (´⌒(´
⊂(゚Д゚⊂⌒`つ≡≡≡(´⌒;;;≡≡≡
 ̄ ̄ (´⌒(´⌒;;
ズザーーーーーッ
0298デフォルトの名無しさん
NGNGOwnerDrawでがんばれ。
0299デフォルトの名無しさん
NGNGビットマップボタン
0300300000
NGNGパーフェクトなやり方ありますか?
0301デフォルトの名無しさん
NGNG試しに実行してみる。
0302デフォルトの名無しさん
NGNGパーフェクトかどうかは知らんが、
レジストリHKEY_CLASSROOT以下にアクセス
0303デフォルトの名無しさん
NGNGHKEY_CLASSES_ROOT\.url の (標準) の値を調べて、その名前を仮に "InternetShortcut" とすると、HKEY_CLASSES_ROOT\InternetShortcut\shell\command\open を見れば書いてある。
030430000
NGNG最初は、FindExecutable()を使って調べようと思ったんです。
そしたらこの関数、実在するファイルを指定してやらなきゃいけないんです。
気の利かない関数ですよね!
そこでまぁ、ファイルを作って呼び出してやったんです、
そしたらなんか、取得できた実行可能ファイルは"shdocvw.dll"とか
かいてあるんです。
もうね、、、アホかと。馬鹿かと。
もそこで、もう一度ヘルプを読み直してみたんです。
そしたらちゃんと実行可能 (.EXE) ファイルの名前を取得します、
とか書いてあるんですよ。
そこでまたブチギレですよ!
0305Ruby!
NGNG0306デフォルトの名無しさん
NGNG0307300
NGNG03083000
NGNGレジストリ見てみました、
バッチリ出来そうです。ありがとーございました!
0309デフォルトの名無しさん
NGNG0310デフォルトの名無しさん
NGNG0311デフォルトの名無しさん
NGNG激しくワラタ
0312デフォルトの名無しさん
NGNG3万払っても、仕様ですという回答をもらうだけではないかと思われ・・・
0313デフォルトの名無しさん
NGNG0314デフォルトの名無しさん
NGNG首吊って生まれ変われ
0315>314
NGNG0316デフォルトの名無しさん
NGNGAPIというか構造体ですが、、、
0317デフォルトの名無しさん
NGNGCopy the resulting FILETIME structure to a ULARGE_INTEGER structure.
Use normal 64-bit arithmetic on the ULARGE_INTEGER value.
0318316
NGNG0319316
NGNGQuadPart同士比較でいけました。失礼しました。
0320デフォルトの名無しさん
NGNG0321デフォルトの名無しさん
NGNG0322デフォルトの名無しさん
NGNGよろしくお願いでこんばんわ。
えーっと、SendMessage(hEdit,EM_GETMODIFY,..)
でバッファの変更をうけとることなんですが、
なぜか、これ、「変更あり」に対して、-1を返すことが判明しました。
ゆえに、TRUEでは条件一致できません。
みなさんも、こうですか?まぁ、if(SendMessage(..)){}とすれば
すんなり行くんですけど、ぼくは、EM_GETMODIFYに自信がありません。
なんか気持ちが悪いです。素直に1かえしゃーいいじゃんか!
以上ですよろしくお願いします。
0323デフォルトの名無しさん
NGNGなにがしたいのかワカランが。
EM_GETMODIRYの動作が納得いかないなら、
フックでも掛けてカスタマイズすれば?
0324デフォルトの名無しさん
NGNG文字追加、削除の両方で試してみましたが、
やぱりどっちもー1です。(報告)
0325デフォルトの名無しさん
NGNG要はテキストバッファに変更が
加えられたか、変化なしかを調べたいのです。
でしからif(SendMessage()==TRUE)としました。
けど、これだとダメだったのです。SendMessageの
返り値を調べるとなんとー1でした。
↑納得いきません。よろしくおねがいします。
0326sage
NGNG真偽値を返すAPIは if(xx() == TRUE) せずに
xx() だけにしとこうよ。
==TRUEや ==trueが身に染みついてるなら
今すぐその癖をやめるべきだと思う。
ふつうのCプログラマなら一生気付かないかもね、そのバグ。
0327デフォルトの名無しさん
NGNGAPIでは存在しないが
0328デフォルトの名無しさん
NGNG0329デフォルトの名無しさん
NGNGが、
もはや僕のパソはヤバイかもしれません。
1)まずプログラムで指定した大きさ以上のテキストを読み込む。
2)ケツが切れるが許容以上のテキストが読み込めてします。
3)そのまま強引に名前を付けてセーブ
4)どうなってるかと思うから、もう一回開く。
5)真っ白(やっぱだめかと思う)
6)それをメモ帳で開く
7)な、なにぃ!
8)白紙のはずのテキスト(セーブ時にはうんこ.txtと名づけました。
、メモ帳で開くとそっくりオリジナルと同じだ!しかもよくプロパーティ
みてみると、バイト数も全く一緒だ!
9)で、もう一回自作エディタで開く。→やぱり白紙だ。
・・・でもプロパーティは0でないバイト数を示している。
(さらに僕のエディタは一応バイト数表示できるけど、0でない
値を示している。
→→ぼくのCディレクトリはやばいですか?
0330デフォルトの名無しさん
NGNGさらになぜかメモ帳で開けてしまったそれを、
どうせなのでメモ帳から上書きしました。
それを自作エディタで開きました。
オリジナルのものの、最初の文字(N)が抜けてましたが
開けました。
のち、1)からまたやってみました。
コンドはコンドームでセーブも読み込みも
出来るようになってるんですけど・・・
うんこ.txtやばいっす、ファイル的に。
・・・・・解説してください。。
0331解説
NGNG・プロパティを見るとサイズは0じゃない。
・メモ帳でも普通に表示出来る。
・キミの自作エディタでは読みこんでも表示されない。
結論:
その自作エディタがバグってます。
0332デフォルトの名無しさん
NGNGされていることをしりました。
0333デフォルトの名無しさん
NGNGわざわざ取ってから実験してみた僕の生き様に答えてくださいYO
0334デフォルトの名無しさん
NGNG0335デフォルトの名無しさん
NGNGを利用しています。初歩です。
0336デフォルトの名無しさん
NGNG0337デフォルトの名無しさん
NGNGお前、うんこ.txtって言いたいだけちゃうんかと。
0338デフォルトの名無しさん
NGNG単純にFILETIMEの大小比較ならCompareFileTime()って関数が便利だぞ。
0339フォントの名無しさん
NGNGボタンを押し続けたときのメッセージはどのように取ればいいのでしょうか。
たとえばあるボタンを押したままでいると、表示される数値が増加する、
というようなものを実現したいのですが。
0340デフォルトの名無しさん
NGNGSetTimer と WM_TIMER を参照。
0341デフォルトの名無しさん
NGNG素直に許容以上のファイルを受け入れないルーチンをつけて続行中です。
エディットボックスに右栗のポップアップをつけます。
WM_NOTIFYを捕まえるか、フックをかけるか
考えています。メモリ的、処理的にどっちがいいか、
よい意見があればお聞かせください。
最近調子に乗っていたので、今日は謙虚に耳を傾けた
いです。よろしくお願いします。
0342デフォルトの名無しさん
NGNGそこでタイマを発行し、・・BOTTONUPで、
タイマを取得すればいいと思います>>339
0343デフォルトの名無しさん
NGNGよろしく・・・・・・
0344316
NGNGありがとうございます。こういうのを求めてました。
余談
手元にFILETIMEが載っているヘルプが3つあるんですが、
良く読んでみると1つだけがCompareFileTimeへリンクしていました。
全部同じ内容かと思って甘く見ていた・・・・
0345素人
NGNG具体的なプログラムのサンプルが載っている本、HPございましたら教えてください!
よろしくお願いします!!
0346デフォルトの名無しさん
NGNGさようなら
0347デフォルトの名無しさん
NGNGCreateFile、ReadFile、WriteFile、DeviceIoCtrl
0348デフォルトの名無しさん
NGNG日本語のWin32APIヘルプがお手持ちの開発ツールCDROMに入っていませんか?
みつけて"通信の概要"を検索し熟読をお勧めします
CreateFileで COM1 を開いて
BCDの設定を
BuildCommDCB("baud=9600 parity=N data=8 stop=1", &DCB);
のようにして
ReadFile/WriteFileするだけです
0349デフォルトの名無しさん
NGNGもっと丁寧に考えろ。
そえはお前のミスだということを知れ。
ちなみにオレは日本ボAPIヘルプなんか持ってない。
LCCから頂戴した英語版ダ>>348
0350デフォルトの名無しさん
NGNGありがとうございます。
エディタ作りでドラッグ&ドロップをWM_NOTIFYを捕まえる(横取り)かフック、
っていうかサブクラスるか考え、WM_NOTIFYの
方向にしました。とても難しかたです。横取りの方法では
ENDROPFILES構造体を使わねばならず、ほとんど
資料はありませんでした。この構造体はENDROPFILES
cp:Character position at which the dropped files would be inserted.
ていうメンバがあって要はエディット部の、どの位置にファイルが
D&Dされるかの位置指示子です。エディットに何も書かずにD&D
するとこの値が不正らしく、カーネルやらシェルエラーがぴよぴよ出て、悩まされましたが、
とりあえず適当にナンか書いてカーソルを適当な位置に置いておくと
成功です!万歳!
漏れは天才です
ありがとうございmす!
でも多分これからサブクラス化します。
0351デフォルトの名無しさん
NGNGのOpenURLでウェブページ(HTTP)にアクセスする際に、
URLが不正だったり、指定のURLのサービスが利用できない際に
それを知る方法はありますか?
インターネットそのものにアクセスできない場合は、例外をcatch
することでわかるようなのですが。
どうか教えてください
0352デフォルトの名無しさん
NGNG結構色々あってどれにしようか迷ってます。
とりあえずmingw、bcc,lccが候補に上がっています。
(C++機能は使いません。)
お勧めのコンパイラを教えてください。
所で、WATCOM Cはオープン化して公開されたんでしょうか?
0353デフォルトの名無しさん
NGNGbccを使ってるけどリソースエディタ(ダイアログなんかを簡単に作る機能)がないのは辛い。
APIの勉強ならいいが、実用なら生産性は悪いぞ。
0354デフォルトの名無しさん
NGNG今のはわからんのでもしかしたら今は使えるようになってるのかもしれないが
lccはリソースコンパイラが日本語を通してくれなかった
昔lcc使ってるときはリソースコンパイラだけrc.exe使ってた(苦笑)
それ除けばコンパクトなコードを吐く良いコンパイラだと思う
0355デフォルトの名無しさん
NGNGありがとうございます。
bccにはbrc32というリソースコンパイラがあるみたいですが、
やっぱり手書きで作るのはしんどいですね。
(普段は仕事でVisualC++6使ってます。)
bccをちょっと使ってみた所、最適化はそれほど
してくれてないみたいです。(option -p -O2)
(既存のベンチプログラムをビルドした結果、2割程差が出る。)
商用のVisualC++と比べてる時点で酷ですが。
0356デフォルトの名無しさん
NGNGいや、VCは鬼
>商用のVisualC++と比べてる時点で酷ですが。
BCBのコンパイラ部分をBCC として配ってるんじゃなかったけ?
0357デフォルトの名無しさん
NGNG反映させていたんですが、
DWORD dwReturnValue;
SendMessageTimeout(HWND_BROADCAST, WM_SETTINGCHANGE, 0,
(LPARAM)"Environment", SMTO_ABORTIFHUNG, 5000, &dwReturnValue);
Win2k+SP2でこいつが効かなくなりました。
何が問題であるのかご教授願います。
0358デフォルトの名無しさん
NGNGWatcom C/C++ 11.0c が一応誰でも落とせる状態で公開された。
本格的にオープンになるのはもーちょいみたいだけど。
0359デフォルトの名無しさん
NGNGURL出して
0360358じゃないけど
NGNGhttp://www.openwatcom.org/
http://www.openwatcom.org/download.html
0361デフォルトの名無しさん
NGNG0362デフォルトの名無しさん
NGNGしか返してくれません。このAPIはWin2000専用なのでしょうか?Rasに関する資料
があまりなく困っています。どなたか詳しい方いらっしゃらないでしょうか?
DWORD GetDialiUpEntryNum(void)
{
//エントリの件数
DWORD dwEntry = 0;
// 構造体の宣言と初期化
RASENTRYNAME name;
memset( &name, 0, sizeof(RASENTRYNAME) );
DWORD dwSize = name.dwSize = sizeof(RASENTRYNAME);
// 取得
RasEnumEntries( NULL, NULL, &name, &dwSize, &dwEntry );
return dwEntry;
}
0363デフォルトの名無しさん
NGNGそんな糞言語は捨ててDelphi使いな。
頭悪そうだよ君。
0364デフォルトの名無しさん
NGNG0365デフォルトの名無しさん
NGNGIf the function succeeds, the return value is zero.
なんだが、何か他に質問でも?
0367デフォルトの名無しさん
NGNG0368デフォルトの名無しさん
NGNG環境は、VB6.0SP5、WINNTor2000です。
質問です。イベントログを取得しようとし、以下のような方法で、コードを記述したのですが、
イベントログには、ソース (○○○○) 内のイベント ID (9999) に関する説明が見つかりません。
次の挿入文字列が含まれています。と記述されています。
これを避けるためにはどのようにしたらよいのか、どなたか詳しい方、ご教授願えないでしょうか。。。
Appオブジェクトを使う方法ではなく、APIを使用する方法を希望します。
Option Explicit
Declare Function RegisterEventSource Lib "advapi32.dll" Alias _
"RegisterEventSourceA" ( ByVal lpUNCServerName As String, _
ByVal lpSourceName As String) As Long
Declare Function DeregisterEventSource Lib "advapi32.dll" ( _
ByVal hEventLog As Long) As Long
Declare Function ReportEvent Lib "advapi32.dll" Alias "ReportEventA" ( _
ByVal hEventLog As Long, ByVal wType As Integer, _
ByVal wCategory As Integer, ByVal dwEventID As Long, _
ByVal lpUserSid As Any, ByVal wNumStrings As Integer, _
ByVal dwDataSize As Long, plpStrings As Long, lpRawData As Any) As Boolean
Declare Function GetLastError Lib "kernel32" () As Long
Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" ( _
hpvDest As Any,hpvSource As Any, ByVal cbCopy As Long)
Declare Function GlobalAlloc Lib "kernel32" (ByVal wFlags As Long, _
ByVal dwBytes As Long) As Long
Declare Function GlobalFree Lib "kernel32" ( ByVal hMem As Long) As Long
Public Const EVENTLOG_SUCCESS = 0
Public Const EVENTLOG_ERROR_TYPE = 1
Public Const EVENTLOG_WARNING_TYPE = 2
Public Const EVENTLOG_INFORMATION_TYPE = 4
Public Const EVENTLOG_AUDIT_SUCCESS = 8
Public Const EVENTLOG_AUDIT_FAILURE = 10
Public Sub LogNTEvent(sString As String, iLogType As Integer, _
iEventID As Long)
Dim bRC As Boolean
Dim iNumStrings As Integer
Dim hEventLog As Long
Dim hMsgs As Long
Dim cbStringSize As Long
hEventLog = RegisterEventSource("", App.Title)
cbStringSize = Len(sString) + 1
hMsgs = GlobalAlloc(&H40, cbStringSize)
CopyMemory ByVal hMsgs, ByVal sString, cbStringSize
iNumStrings = 1
If ReportEvent(hEventLog, iLogType, 0, iEventID, 0&, iNumStrings, cbStringSize, hMsgs,hMsgs) = 0 Then
MsgBox GetLastError()
End If
Call GlobalFree(hMsgs)
DeregisterEventSource (hEventLog)
End Sub
Sub Main()
Call LogNTEvent("Information from " & App.EXEName, EVENTLOG_INFORMATION_TYPE, 1001)
Call LogNTEvent("Warning from " & App.EXEName, EVENTLOG_WARNING_TYPE, 1002)
Call LogNTEvent("Error from " & App.EXEName, EVENTLOG_ERROR_TYPE, 1003)
End Sub
0369デフォルトの名無しさん
NGNG>次の挿入文字列が含まれています。と記述されています。
どこに記述されているのですか?
エラーはどの行で起きていますか?
「挿入文字列」は何でしたか?
0370368
NGNGソース (●●●●) 内のイベント ID (1001) に関する説明が見つかりません。
次の挿入文字列が含まれています:Information from sub・・・・・.
と、イベントログに出力されています。
挿入文字列は、作成したプログラムのエラートラップより取得したものです。
例:On Error Goto aaa:
とかのエラートラップです。
私がおだししたプログラムの場合ですと、
Call LogNTEvent("Information from " & App.EXEName, EVENTLOG_INFORMATION_TYPE, 1001)
の"Information from " & App.EXEName
が挿入文字列となると思います。
0371デフォルトの名無しさん
NGNG0372デフォルトの名無しさん
NGNGVBスレで 親切な人がいれば教えて下さるでしょう
0373デフォルトの名無しさん
NGNGRASENTRYNAMEのサイズが変わってるんじゃネーノ?
ソースの先頭に
#define WINVER 0x400
と書くかコンパイルオプションに
-DWINVER=0x400
と追加しとけ。
0374デフォルトの名無しさん
NGNG一言言わせてクレ。
ちょっとむかつくとき
=お気に入りクリックして2ch来ようとしたが、
変なタイミングでお気に入りポップが下にずれて
バナーを押してしまったとき。
0375デフォルトの名無しさん
NGNG僕は、マルチバイトとワイドバイトのどちらでコンパイル
してるかわかりません。シングルバイトってことはないと
思います ティー茶ーつかってもいいですか?
0376デフォルトの名無しさん
NGNGマルチバイトだと思います。
0377デフォルトの名無しさん
NGNG0378デフォルトの名無しさん
NGNG> 変なタイミングでお気に入りポップが下にずれて
> バナーを押してしまったとき。
あぁ、時々やるよこれ (涙)。
>>376
sizeof( char ) はどっちでコンパイルしても変化しません。
っつーか、Win32が動く範囲で、sizeof(char)==4 になる環境は無いと思うが。
0379デフォルトの名無しさん
NGNG0380デフォルトの名無しさん
NGNG0381デフォルトの名無しさん
NGNGWinNT系では環境変数のPATHに値を書き込めるAPIってあるのでしょうか?
うまく説明できてるかわかりませんが、コマンドプロンプト(MS DOSプロンプト)で
path[Enter]としたときに表示される値をOSによらず
すっぱりと制御できたらうれしいんですが・・・・
0382デフォルトの名無しさん
NGNGfopen
fread
fwrite
close
0383デフォルトの名無しさん
NGNG0384デフォルトの名無しさん
NGNG0385デフォルトの名無しさん
NGNGすればよいでしょうか?
net send は NetBios というプロトコルを使っているということまでは判っています。
どこかの port を見張って待ち構えるというようにするのでしょうか。
送る方は NetMessageBufferSend を使ってできました。
0387デフォルトの名無しさん
NGNG0388デフォルトの名無しさん
NGNGところで、テキストファイルを保存するとき、
ゴミがついてしまうのは、SetEndOfFile(hFile);
で解決したのですが、こんどは、読み込むとき、ゴミが読み込めません。
ノートパッドだと読み込めるので、どうにか読み込めるようにしたいです。
hFile = CreateFile(szFName, GENERIC_READ, 0, 0, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
SetFilePointer(hFile, 0, 0, FILE_BEGIN)
ReadFile(hFile, szStr, 1024*64, &dwAccBytes, NULL);
szStr[dwAccBytes] = '\0';
Edit_SetText(hEdit, szStr);
こんな手順です。
ひょっとしたら、CerateFileやReadFileはなにか勝手なこと
をしてるかもしれないので、いっそのことfopenとかreadを
使おうかとも思いましたが、API命令の方が速いという話も
あるし、よくわかりません。
アドバイスお願いします。
0389デフォルトの名無しさん
NGNG0390デフォルトの名無しさん
NGNG0391デフォルトの名無しさん
NGNGMessageBox(NULL, "ファイルハンドル取得失敗!", "Error", MB_OK);
CloseHandle(hFile);
dwSize = 0L;
return;
CreateFileの返り値は上のように以前からしてありました。
if(!ReadFile(hFile, szStr, 1024*64, &dwAccBytes, NULL))
MessageBox(hWnd,"読み込みが不正に終りました:ReadFile();","Error",MB_OK);//!!
↑今回このようにしてみましたが、ゴミ付きファイルは、ゴミが
読み込めません。(説明が悪かもしれませんが、読み込みはできる
のですが、ゴミが読み込めないのです。ノードパットにはきちんと
ゴミが読めています。)
(388)
}
0392デフォルトの名無しさん
NGNGCloseHandleを行っています。多分問題
ないと思いますがだめでしょうか>390
0393デフォルトの名無しさん
NGNGVC++スレの者ではありません。
0394デフォルトの名無しさん
NGNGchar mybuf[256];
wsprintf(mybuf, "読みこみ:0x%lx", dwAccBytes);
MessageBox(NULL, "読みこみ", mybuf, MB_OK);
0395デフォルトの名無しさん
NGNGCreateFile成功確認後の、
dwSize = GetFileSize(hFile, NULL);
は、(int)(dwSize)が31701バイトを示し,
ReadFile(hFile, szStr, 1024*64, &dwAccBytes, NULL)
lplen=lstrlen(szStr);←int
は、31690を示します。
ウィンドウズのプロパーティはやはり31701を示しています。
0396デフォルトの名無しさん
NGNGそりゃ lstrlen したら '\0' までの長さしか得られるわけないっしょ。
読み込む分には読み込めてるから、読んだ文字列を
Editコントロールに設定する時のコードを何とか工夫しろ。
0397デフォルトの名無しさん
NGNG>ファイルは結構大きいので、メッセージボックスでは無理ですが、
>>394
>wsprintf(mybuf, "読みこみ:0x%lx", dwAccBytes);
>MessageBox(NULL, "読みこみ", mybuf, MB_OK);
これ、読みこんだバイト数を表示するんだよ。
デバッグ使えたら、ブレークポイントとウォッチ式を置いて、直接 dwAccBytes を調べてね。
0398デフォルトの名無しさん
NGNGReadFileは引数が、ReadFile(hFile,szStr,1024*64,&dwAccBytes,Flag)
なので、\0の検出を勝手にやってしまっているらしいです。
でもなんとなくわかりました。
ファイルが、ハードディスク内部で、
始まりの記号honararaparanononofoiu\0gomigomi\0\0\0\0\0\0\0\0......
と展開され、API定義のReadFileでは長さを設定できないので、
勝手にきられてしまうんですね
0399デフォルトの名無しさん
NGNGあるのですが、これでもdwAccBytesを追えるでしょうか?
0400デフォルトの名無しさん
NGNG0401デフォルトの名無しさん
NGNG0402デフォルトの名無しさん
NGNG0403デフォルトの名無しさん
NGNGブレイクポイント設定していないだろ?
http://user3.allnet.ne.jp/tadnakam/bcc32/td32.htm
0404デフォルトの名無しさん
NGNGハァ?
ReadFileはバイナリアクセスだから'\0'の検出なんかしないぞ?
もう一度勉強しなおせ
0405396
NGNG> ReadFile(hFile,szStr,1024*64,&dwAccBytes,Flag)
1024*64って長さ設定出来とるじゃないか。
だからそのコードで全部最後までちゃんと読み込めてるっての。
# それに、freadだって最終的にはReadFileを呼んでいる。
0406デフォルトの名無しさん
NGNGdwSize =GetFileSize(hFile,NULL)
と、ReadFile(hFile,szStr,1064*64,&dwAccBytes,NULL)の
lpLen =lstrlen(szStr)
がゴミ分だけ違うことが理解できません。>>404
0407デフォルトの名無しさん
NGNGということは、szStrの時点では正常に
書き込まれていて、Edit_SetText(hEdit,szStr)
が悪さをしているってことなののでしょうか
しかし、Edit_SetTextが勝手に理解している終記号が・・・
\0・・・・なのですか!
0408デフォルトの名無しさん
NGNGWindows でテキスト、あるいは文字列と呼ばれるものは
\0 (ワイド文字の場合 L'\0')で終わると仮定されている。
だから、文字列として渡すと \0以下が落ちる。Edit_SetText の場合も同じ。
0409デフォルトの名無しさん
NGNGそのとき親ウィンドウに DS_LOCALEDIT スタイルをセットしないといけない。
0410デフォルトの名無しさん
NGNGについてなのですが、この関数は必ずszStrの
先頭から書き込んで行くとは限らないのですか?
一度Edit_SetText(hEdit,szStr,0,0)で使った
szStrに、read()で何かを読み込むと、明らかにszStrの先頭に
変なヘッダ情報みたいのがついています。for i〜if szStr[i]='\0'
みたいなのをやって確認したんですけど・・・・・・
0411デフォルトの名無しさん
NGNGif(0==(read_flg=read(hFile,szStr,1)))
if(0==(read_flg=read(hFile,szStr,1))){szStr[tell(hFile)-1]='\0';
read_flg=read(hFile,szStr,1);
if(read_flg==0)break;
}Fsize=tell(hFile);
で読み込んで、
for(i=0;i <= Fsize;++i){
if(szStr[i]=='\0')
szStr[i]='h';}
szStr[i]='\0';最後の\0ENDOFSTRING
このszStrは既に一回使ったものなんで、今回上書きです。
EditSetTextでエディットに表示すると、
先頭に、ウィンドウ(hWnd)タイトルに表示しておいた
テキストが、くっついてきます・・・・・・
0412デフォルトの名無しさん
NGNG0413デフォルトの名無しさん
NGNG0414デフォルトの名無しさん
NGNG_read と read を間違えていませんか? _read 前後はどのように書きました?
_read の返り値も教えて。
0415デフォルトの名無しさん
NGNG_readなんて出てませんでした。readはでてました。
でも、_readもあるみたいですね。
0416デフォルトの名無しさん
NGNGやっぱり変なのがヘッダについています。
0417デフォルトの名無しさん
NGNG0418デフォルトの名無しさん
NGNGお前のプログラムが腐ってるに決まってるだろ
0419デフォルトの名無しさん
NGNGお前の頭がバグってんだよ。
0420デフォルトの名無しさん
NGNG「値は使われてません」と出るのはなんでですか?
安全のため警告を無視して初期化文を残して
置いた方がいいですか?
0421デフォルトの名無しさん
NGNGそれはWin32APIの質問なのか?
0422デフォルトの名無しさん
NGNGけれど、グローバルで、szStr宣言して、読み込みサブルーチンの
なかでもszStrを宣言しているのですが、関数の中で宣言したものは
独立だと思っていたのですが、ちゃんと、他の実行単位で使用した
szStrの内容がのこっているのは驚きでした。
っていうか低水準で立ち向かうのって無謀ですか?っていうか無理
ですね、read使う場合は。高水準でfopenとか使った例を見つけたので、
参考にやってみたいと思います。
0423デフォルトの名無しさん
NGNG更に、文字一個読むとポインタが自動的に一個ずれるというような
ことをどっかで聞いたのが聞きました。それはfgetcですね。とかですね。
あぁ、readは、まいかいまいかいszStrに最初から書き込んでいたことを
知り、疲れ果てるばかりです・・・・・・
0424デフォルトの名無しさん
NGNGサンプルプログラムを必死になって探しなさい。
Web検索するとか、本を探すとか。
0425デフォルトの名無しさん
NGNG僕の脳みそは1バイトを16ビットで換算しており、
readについても誤解していたようです。readでは
与えた配列ポインタに毎回書き込まれることについて、
頭が混乱してました。
1バイト8ビットなら話は簡単です。しかも上位下位わかるのなんか
造作もない。16で割り算すればいいんですから。
0426デフォルトの名無しさん
NGNGwin95の時はAPIをではなく
rundll32 mspcic.dll,ejectsocket 1
でやっていたのですが
お願いしますヒントだけでも
0427デフォルトの名無しさん
NGNG「READ〜DATA」を実現する方法が
あったら教えてください、困ってます。とほ。
0428デフォルトの名無しさん
NGNGread_flg=_read(hFile,szBox,1);
if(read_flg==0)break;
if(read_flg==-1)break;
// if(szBox[0]='\0')szBox[0]='h';
wsprintf(szAsc,"%02x",szBox[0]);
strcat(szStr,szAsc);
// lseek(hFile,1L,
}
皆様。上記プログラムで難なく通ります。16進表示なんてちょろいです。
まぁ、時間はかかります。
けど、ですねぇ、%02xに注目してください。%2xだとウィンドウズ
エラーと、コンパイル警告が出ます。重要なんですか?だれかしっていますか?
それと、もしそうなら、大文字のXっていうのも見たことあるんですけど、
これも重要なんですか?どう重要なんですか?ちなみに全部charでいけますよ。
Box[2]
Asc[3]で最初\0で埋めています。static宣言はいりません。
0429デフォルトの名無しさん
NGNG%02xの前にスペース入れてみてわかりやすく見たらちょっと
バグってます。あぁ、あと、xとXは16進の大文字と
小文字の違いくらいですね?考えて分かったつもりになりました。
でも02はどうなんでしょう・・・・・・か・・・・
0430デフォルトの名無しさん
NGNGszRtn[0]= (char)0x0d;
szRtn[1]= (char)0x0a;
szRtn[2]='\0';
・・・・・・・・・
strcat(szStr,szAsc);
if(i==16){strcat(szStr,szRtn);i=0;}i++;
0431デフォルトの名無しさん
NGNG同じ思いで検索板駆け回ってる人はすぐできるYO。
(この板たまにヤフーで引っかかるからなぁ(藁
0432デフォルトの名無しさん
NGNGgoogleならかなりの確率で引っかかるが。
0433デフォルトの名無しさん
NGNG0434デフォルトの名無しさん
NGNG・szBox とやらは unsigned char にしろ。
・↑つーか1byteずつしか読まないのならわざわざ配列にするな。
・%02x じゃなくて %2x にするとスペース埋めになって嫌な感じだと思う。
・>>430 char szRtn[]="\r\n";
> まぁ、時間はかかります。
・毎回strcatするな。異様に無駄だ。
・wsprintf使わないで自前で変換すれ。
・1バイトずつじゃなくて、ある程度まとめて_readするように。
0435デフォルトの名無しさん
NGNG0436デフォルトの名無しさん
NGNGしてみました。これがなかなかうまくいかず、さいぼにたどりついたのが、
unsigned charでした。charっていうのもreadみたいにヘッダで中身替えられチャ
ってるっとことですか?
途中でintとか使ったので、intが16の8乗で、2の32乗ですか、60000の
更に2乗ですか、チャーと全然違うじゃないですか。しかもチャーは定義を変えられてる
感じがするんですけど。茶ーは2の何乗ですか?16乗でも足りないって言うんですか?
unsignedチャーは平和でいいですね。
0437デフォルトの名無しさん
NGNGAPIと関係のない質問ばかりえんえん続けやがって
答えるほうも答えるほうだ
0438デフォルトの名無しさん
NGNG坂さまになってるのをどうにかして下さい。
0439デフォルトの名無しさん
NGNG0440デフォルトの名無しさん
NGNG0441デフォルトの名無しさん
NGNGおしえてクダサイ。LOWORD(LOWORD
も同じです。ものはffffffffとかだったのに。
0442デフォルトの名無しさん
NGNG0443デフォルトの名無しさん
NGNGH=(szBuf[j])>>16;L=(szBuf[j++])&0xFFFF;
A=H>>8;B=H&0xFF;C=L>>8;D=L&0xFF;
wsprintf(szAsc," %02x %02x %02x %02x",D,C,B,A);
strcat(szStr,szAsc);
if(i==4){strcat(szStr,szRtn);i=0;}i++;
}
くそったれオレの生き様をみろ!
0444デフォルトの名無しさん
NGNGif((unsigned char)szBuf[j++]=='\0')strcat(szStr," 褐");else
strcat(szStr,szAsc);
テキスト中に¥0があると褐がはいるって寸法だ。ちなにみunsigned charは
自分でみつけました。
0445デフォルトの名無しさん
NGNGwhile doだっけ? 〜〜>0つけなかったらぐるぐる回ってしまったYO
0446デフォルトの名無しさん
NGNGどんな風に処理してるんですか?
0447デフォルトの名無しさん
NGNGchar はたぶんキミの環境だと -128〜127 だ。
これをwsprintfに渡すためにintに拡張すると 0xffffff80 〜 0x0000007f だ。
それを%02xで表示すると、元々1Byteなはずなのに16進で8桁くらい表示されることがありうる。
unsigned char ならたぶんキミの環境だと 0〜255 だ。以下略。
>>438
リトルエンディアン/ビッグエンディアンで検索。
>>441
0になって当たり前だろ。少しは考えろ。
>>445
中学校逝って英語の勉強してこい。
0448デフォルトの名無しさん
NGNG0449デフォルトの名無しさん
NGNG調べてないけどHILOWORDマクロは
ビットシフトとマスクを32ビット仕様でやてるんでしょうね。
だけど言わせてクレ。どっかで、だ、
「*」はポインタと掛け算で使われてるけど、
二つは深い意味では、コンピュータ内部の処理としては、
同じ意味でつながってないですか?と聞いたのだ。チャットだ。
そいつはなんだか漏れのことを愚弄するかのように笑っていた
が、やっぱ、あいつはヴァカだ!
最近のコンピュータでは掛け算の積は、いちいち計算するのではなく、
どっかに2次配列かなんかで格納されてるって聞いたことがある。
ポインタやればやるほど、掛け算は、内部の掛け算フィールドへの
ポインタ移動みたいな感じだと確信してくるゾ。ヴァカめ。クソめ。
言語は美しく出来ているのダ!
0450デフォルトの名無しさん
NGNGが気に入っています。これらはかなり使えるんですか?使えないのに
好きになってしまう前におしえてクダサイ。
0451デフォルトの名無しさん
NGNG0452デフォルトの名無しさん
NGNG0453デフォルトの名無しさん
NGNG0454デフォルトの名無しさん
NGNG進化おめでとう。どっちが好きとか言わず、両方やっとけ。
http://www2.freehostzone.com/~freeasian/action48/005.jpg
0455デフォルトの名無しさん
NGNG0456デフォルトの名無しさん
NGNGif(i==4){strcat(&szStr[k],szRtn);i=0;k+=2;}
このように、やりました。格段に速いです。理由はだいたい
わかります。strcatは今後も安全のため暫くお世話になる
つもりです。
ところで、signed と、unsigned charを分けることによって
どう使い道がちがうんですか?おおもじょと小文字の区別って
漢字ではないような気がするんですけど。たまにある符号付
intとかのキャストとかのためだけにあるんですか?
0457デフォルトの名無しさん
NGNG暫く考え直したいと思います。
0458デフォルトの名無しさん
NGNGあとポインタと掛け算なんですけど、彼の
言っていることは、あってるんですか?
0459デフォルトの名無しさん
NGNGウィンドウを追加したい者です。
CreateWindowに識別子(HMENU)hoge
の項目があるのですが、これの利用法
をおしえていただけないでしょうか。
この新しいウィンドウに来るメッセージを
手軽に識別するために利用したいのですが、
そういった種の識別子ではないのですか?
0460デフォルトの名無しさん
NGNGMSDN Library は読みましたか?
0461デフォルトの名無しさん
NGNGWS_OVERLAPPEDのときは(HMENU)として使われるんですけど
WS_CHILDスタイルのときは(UINT)とかにキャストした値を入れて
ウィンドウIDとして使うんですよ。
まったく、なんて仕様だろう。
0462デフォルトの名無しさん
NGNGあんまりサブクラス化するとプログラムが
煩雑になるので、できれば子ウィンドウの
KeyUpやKeyDownを(HMENU)IDをつかって
捉えられないかと考えているのですが、で
きると思いますか?
0463デフォルトの名無しさん
NGNGMSDN読め
0464デフォルトの名無しさん
NGNGwsprintf(szMyTex,"%d %x",wParam,wParam);
MessageBox(hWnd,(LPCTSTR)szMyTex, "EDITBOX1検出", MB_OK);
SetFocus(hEditEntryBox);
switch(HIWORD(wParam)){
case VK_RETURN:
MessageBox(hWnd,(LPCTSTR)szMyTex, "Return入力検出", MB_OK);
if(!(fstring=(LPTSTR)malloc(64L))){wsprintf((LPTSTR)szMyTex,"Fallstrlen==0? %ld ",sizeof(fstring));
MessageBox(hWnd,(LPCTSTR)szMyTex, "警告!", MB_OK);exit(0);break;}
if(GetWindowText(hEditEntryBox,fstring,64)){
MyFindString(hMainEdit,fstring);}
free(fstring);
break;}break;
こういうことをしてたらメッセージボックスの無限地獄に
陥りました。だれか救ってください。どうやったらできますか?
0465デフォルトの名無しさん
NGNGMSGFILTERとか使わない方法でいい方法はありますか?
0466デフォルトの名無しさん
NGNG0467デフォルトの名無しさん
NGNGWM_KEYUP,WM_KEYDOWNは、普通のウィンドウとダイアログでは全く処理が違います。
464のプログラムは何をしたいんですか?
それと作ってるのは普通のウィンドウですか?ダイアログですか?
0468デフォルトの名無しさん
NGNGWM_NOTIFY使え。
0469デフォルトの名無しさん
NGNGあれは、親ウィンドウに検索用の小さなボックスを作て、(wantreturnを無しで)
まず手始めにVK_RETURN,あとは、VK_UP,VK_DOWNを、サブクラス化無しで、捕まえ
ようと試みたものです。無理です。多分WM_NOTIFYも無理です。
現在サブクラス化して、VK_RETURNは捕まえましたが、UPDOWNのところで
壁があることが判明しました。ホットキーとかアクセラレータとか仕様とか色んな
言葉が出てきます。
答ついでにというか、基本的に聞きに来たんですけど、VK_UP、DOWNを捕まえる
方法はあるみたいなのですが、参考コードは、いまだみたことのない、::とか
いって、どうも、MFCっぽいっていうか、まぁ、クラス、ですか?みたいなんで
すけど、フリーのBCCで突き進む僕のコードに、前例のないこういった::
とか書いても大丈夫なのでしょうか?c++はオブジェクト指向がなんたらなので
本来は::とか使うほうが筋だと言われればなんにも言えないんですけど・・・
0470デフォルトの名無しさん
NGNGまずは日本語の勉強から。
「どうも、MFCっぽいっていうか、まぁ、クラス、ですか?みたいなんで」
何が言いたいのか、さっぱりだよ。
0471デフォルトの名無しさん
NGNGなのでこの板とはもしかしたらお別れカモシレナイんですけど、
最後にwswindowsについて語ってください。類似のものがあれば
それも語ってください。
0472デフォルトの名無しさん
NGNG0473デフォルトの名無しさん
NGNGMFCになると、ウィンドウ間のメッセージのやり取り
とかも自前で構築するんですか?そのためのクラスですか?
TEitの実体がつまめません。
0474デフォルトの名無しさん
NGNGあの、質問なんですけど、MFCっていうのは
APIで言うところの、メッセージ苦落下寄りの仕様
なんですか?それに、継承とかいって魔夜化しじゃないんですか?
漏れは::を理解するためにはFOXをやらなくてはなりません。
APIにFOxを加えてプログラムしてみてください。話はそれからです。
っていうかなんで下げるんだYO
0475デフォルトの名無しさん
NGNGネタは sage てな
0477デフォルトの名無しさん
NGNG0478デフォルトの名無しさん
NGNGそれなら、せめて誤字脱字は訂正して、日本語として意味が通る文章に
してくれ。話はそれからです。
0479デフォルトの名無しさん
NGNG論理的に整合性が取れてることって大切だと実感できる。
0480デフォルトの名無しさん
NGNGAA貼ってあるけど、こっちにいくといいかも。
0481sage
NGNG・・・・・感動した!
0482デフォルトの名無しさん
NGNG0483デフォルトの名無しさん
NGNGほしいです。
MSDNみても構文についてのドキュメントだし、sampleみても、これでいいのか
って感じだし。先に言っておくけど、on error goto か何かと勘違いしている
のはパス。あと、__try{ ... __leave ... } __finally{} で、do {}while(0)
の代わりに使用するってーのも却下。
漏れが却下したのはこういう理由で使えYO!ってーのはあり。
4649
0484デフォルトの名無しさん
NGNGスレ違いですよ。
見なかった事にしますから 移動して下さい
0485デフォルトの名無しさん
NGNG0486デフォルトの名無しさん
NGNGたしかに構造化例外は win32apiでなくて、osが提供している機能ですね。
適切な擂れが他に見つからなかったのと、win32apiを直で呼ぶ人って、
C言語でゴリゴリ書いている人たちだろうと、ならば 構造化例外もうんこする
くらいにふつーにつかっているだろーと。
おもーたわけです。
擦違いならどこになるのかな。
0487デフォルトの名無しさん
NGNG構造化例外を使ってるソースなんて、仕事以外でみたこと無いけど。
0488デフォルトの名無しさん
NGNGSTDAPI DllGetClassObject(REFCLSID rclsid, REFIID riid, LPVOID *ppvOut)
{
....
}
を作ろうとするとREFCLSIDが定義されてないって怒られる。
どのファイルをインクルードすればいいのか教えてくださいまし。
0489デフォルトの名無しさん
NGNGひとこと、パレットが変わると総ファイルサイズが変わりますって書いて欲しいよな
0490デフォルトの名無しさん
NGNG漏れは無いと困るぞ。
無いとSSEとか3DNowとかの拡張命令の使用の可否が判断できん。
CPUのフラグ見ても、CPUが対応しているかどうかしかわからんから、
Winが対応してるかどうか調べるには、
__try { } __exception()で囲って、試行してみるしかない。
0491デフォルトの名無しさん
NGNG創ったのですが、Win2kユーザの方から、『終了させても
CDが鳴ったままで止まらない』との報告がきたのです。
ウチのマシン(Win98)ではちゃんと止まるのですが…。
Win2kでは、なにか特別な記述をしなければ
ならないのでしょうか?
ちなみに、CD用のクラスのデストラクタで、
::mciSendCommand(id,MCI_STOP,0,(DWORD)NULL);
で止めています。
0492デフォルトの名無しさん
NGNGうるせー
0493デフォルトの名無しさん
NGNG.
.
.
mciSendCommand(id,MCI_STOP,0L,(DWORD)(LPMCI_GENERIC_PARAMS)&mciStop);
ってーなかんじどうかな?
というか、ちゃんと MSDNなり、APIの使用方法や、Sampleに一度目を通して
見てはどうでしょう。
0494デフォルトの名無しさん
NGNGGetLastError()で詳細を調べようとしても0しか
帰ってきません。
どうやって原因を調べればいいんでしょうか。
0495デフォルトの名無しさん
NGNGsleep(100);
}
で、真になるまでぶんまわしたら
うまく動くようになりました。
ただ、Window破棄からの待ち時間が足りないだけでしょうか?
0496デフォルトの名無しさん
NGNGRASCONNSTATEのどの状態にどういった日本語を割り当てればよいでしょうか?
そもそも公式な資料などあるのでしょうか?最新MSDNでも英語しかなくて翻訳
に悩むところなのですが・・・。MS公式翻訳が欲しいです。
RASCONNSTATE
{
RASCS_OpenPort = 0,
RASCS_PortOpened,
RASCS_ConnectDevice,
RASCS_DeviceConnected,
RASCS_AllDevicesConnected,
RASCS_Authenticate,
RASCS_AuthNotify,
RASCS_AuthRetry,
RASCS_AuthCallback,
RASCS_AuthChangePassword,
RASCS_AuthProject,
RASCS_AuthLinkSpeed,
RASCS_AuthAck,
RASCS_ReAuthenticate,
RASCS_Authenticated,
RASCS_PrepareForCallback,
RASCS_WaitForModemReset,
RASCS_WaitForCallback,
RASCS_Projected,
#if (WINVER >= 0x400)
RASCS_StartAuthentication,
RASCS_CallbackComplete,
RASCS_LogonNetwork,
#endif
RASCS_SubEntryConnected,
RASCS_SubEntryDisconnected,
RASCS_Interactive = RASCS_PAUSED,
RASCS_RetryAuthentication,
RASCS_CallbackSetByCaller,
RASCS_PasswordExpired,
#if (WINVER >= 0x500)
RASCS_InvokeEapUI,
#endif
RASCS_Connected = RASCS_DONE,
RASCS_Disconnected
};
0497デフォルトの名無しさん
NGNGMSDNのサンプルで、戻り値をチェックしているのってひとつもなさげ.
たぶん、UnregisterClassでエラー返ってきても、GetLastError()で 0返ってくる
なら問題無いのでは?
予想としては、該当クラスで作った windowが残っているのでエラーとしているが、
windowが消えた時点でclassが削除されるので GetLastError()は 0返す.
「アプリケーションが登録したウィンドウクラスは、アプリケーションの終了時にすべて自動的に削除されます」
と、MSDNにあるので、RegisterClassをしたプログラムが DLLでなければ特に
明示的に UnregisterClassしなくても平気かな。
0498デフォルトの名無しさん
NGNG直訳で問題無いように思えますが、具体的にどのステータスを日本語
にするのに悩んでいるのでしょうか?
0499デフォルトの名無しさん
NGNG(下は出来上がってるんだがー、ぁ)
文字列逆さに配列しなおすとか、一度上からやって最下位の
やつを取り出すとかぁ、あー、ごり押しでいけないことはー
ないんだがぁ、あー、もっといいやり方あったら求む。
(あぁ、も、もとませて、ぁ、ください)
あー、揉んじゃぁだめだぞ、ネタスレじゃないゾ。
0500デフォルトの名無しさん
NGNG0501デフォルトの名無しさん
NGNG0502初心者
NGNGCやC++の勉強できる?
誰か教えてください。
0503デフォルトの名無しさん
NGNGRichEdit使ってEM_FINDTEXTEXを利用したらどうじゃろ?
詳細は聞くな。わしも知らん。
0504デフォルトの名無しさん
NGNGβ2 なら c/c++ もできる.
プロジェクト作るときに unmanaged を選択.
学生さんだったら、アカデミックパックで VC++ 買え.
0505デフォルトの名無しさん
NGNGありがとうございます。
DLL作ってるんで、UnregisterClassが必要なんです。
で、これで失敗したあと、また同じものをRegisterClassEXで登録
するとこれまでも失敗し、こいつもGetLastErrorが0を返すんで
悩んでました。
0506デフォルトの名無しさん
NGNGほげー、なぞですなぁ。
0507狂牛
NGNGVC++6.0でWinAPIを使用してアプリケーションを作成しているのですが、
リソースエディタでダイアログを作成し、コマンドボタンを置いているのですが、
この、コマンドボタンのボタン押下時の処理がかけなくて困っています。
コマンドボタンのクリック時の処理はかけるのですが。
コマンドボタンに対してWM_LBUTTONDOWN等のメッセージは
どのようにして拾うのでしょうか。
0508デフォルトの名無しさん
NGNGボタンの場合、WM_LBUTTONDOWNは通知されないです。
WM_COMMANDに乗ってくるBN_PUSHEDあたりで代用できませんか?
どうしてもWM_LBUTTONDOWNが欲しいなら、サブクラス化してボタン自身に処理させるしか。
0509狂牛
NGNGBN_PUSHEDのメッセージですが、WM_COMMANDに乗ってくる
HIWORD(wParam)をswitch文で拾えばいいのでしょうか。
0510デフォルトの名無しさん
NGNGそっす。
で、いまさらなんですが、念のためMSDNでBN_PUSHEDの説明見たら、
BN_PUSHEDがあるのは古いWinとのコンパチ性を保つためで、
いまはオーナー描画ボタンにしてWM_DRAWITEMを拾えって
書いてありました。。。ゴメソナサイ
0511デフォルトの名無しさん
NGNG分かってんじゃん。詳しいことは MSDN で WM_COMMAND, BN_PUSHED を調べてみることだ。
「ボタンを押された」を日常的な意味で読み取ると普通 BN_CLICKED メッセージを使うよね。
クリックはボタンを押してその場所で離すという一連の動作。
大抵のコントロールのメッセージは、Windows が処理してくれていて、
それを捕まえるにはサブクラス化するっきゃないっつうか。
0512デフォルトの名無しさん
NGNG「Buttonコントロール上でマウス左ボタンを押下」と
「Buttonコントロールが親にBN_PUSHEDを送る」
は等価ではない。
前者はマウス左ボタンを押した瞬間に発生するが、後者はマウス左ボタンを押し
なおかつButtonコントロール上で離された場合に発生する。
後者はButtonコントロール上にフォーカスがある状態でスペースキーを押した
ときにも発生する。
手頃なボタンを左クリックし、ボタン外にドラッグして離してみよ。
0513510
NGNGWM_PARENTNOTIFYに乗って、WM_LBUTTONDOWNそのものが来るらしい。。。
なにそれー。知らんかった。Windowメッセージの世界は常人には理解しがたい。
0514デフォルトの名無しさん
NGNGだが、すでに検索窓はトップにはりついとるのだヨ
その線でゆくのだ。
0515デフォルトの名無しさん
NGNG自作のエディタでc++仕様だが
リストボックスにプログラム中の
関数のインデックスが出るようにした。
もちろんクリックでも飛べる。
これは使えると思うか?(80字)
0516デフォルトの名無しさん
NGNG単にソースが大きくなったからかもしれないけど
最近プログラム組んだ後IEの画面の更新が走査線
の動きが見えるくらい遅いんです。
0517デフォルトの名無しさん
NGNG0518デフォルトの名無しさん
NGNGVC++ なら
_CrtSetDbgFlag(_CRTDBG_ALLOC_MEM_DF | _CRTDBG_CHECK_ALWAYS_DF | _CRTDBG_LEAK_CHECK_DF);
を main の最初に入れて、デバッグビルドでビルドすれば、リークの有無は分かる。
リークしている個所を突き止めたいなら malloc, realloc, free, new, delete あたりを乗っ取って
自前でログをとるか、売り物だが BoundsCheker, Purify などのツール使う。XLSOFT の Web
Page から BoundsChecker の体験版をダウンロードできるから、とりあえず試してみれば?
0519デフォルトの名無しさん
NGNG個人的にはリストボックスに表示されるよりも、カーソル直下にある関数呼び出しに対して、
その定義部分に飛べる機能の方が嬉しい。ついでに飛んだ後に、元の位置に戻る機能も
セットで。
0520デフォルトの名無しさん
NGNGフリーコンパイラとターボデバッガしかないんだ・・・
0521デフォルトの名無しさん
NGNG有料のエディタだったら、似たような機能は標準でついてるね。
単に関数を一覧を表示するんじゃなくて、親子関係にある関数をツリー構造で表示してくれたりしてるとわかりやすいけど。
0522デフォルトの名無しさん
NGNGnetstat.exeの出力をパースするしかないでしょうか。
0523デフォルトの名無しさん
NGNG0524デフォルトの名無しさん
NGNGないかも。でもあるコールバック専用のルーチンとか
はあるけどね。
あのさ、普通何行くらいのコードかな、普通プログラマは。
今1500行くらいはいってるけど、そうなると
少なくとも漏れにとって自分の機能がちょっと便利。
スクロールさせんのやっぱめんどいョ
0525デフォルトの名無しさん
NGNG秀丸でnetstat.exeを開いたら関数名が見れた。
0526デフォルトの名無しさん
NGNGCでそんな関数ありますか?
0527デフォルトの名無しさん
NGNGWin32APIにあるので、RegOpenKeyExでMSDN検索してみて.
それと、sampleファイルも検索してみて.
つかっているソースは必ずあるから.
0528デフォルトの名無しさん
NGNG> 個人的にはリストボックスに表示されるよりも、カーソル直下にある関数呼び出しに対して、
> その定義部分に飛べる機能の方が嬉しい。ついでに飛んだ後に、元の位置に戻る機能も
> セットで。
xyzzyみたいな?
0529デフォルトの名無しさん
NGNGさっそく探してみます。
情報ありがとぅ。
0530デフォルトの名無しさん
NGNG二つ以上のダイアログが共有する(利用する)ことは可能でしょうか。
各ダイアログボックスには識別ID,(IDC_なんたら)がついてる
から可能じゃないか?と思ったのですが・・・。
あと、プログラムを組む過程で、どこかに変数を吐き出すには、皆さんどうして
いますか?いまは漏れはメイン画面にいくつかの変数(マウスのx、y座標とか)
を吐き出しています。一つダイアログを作ってそこに書き出そうかと思っています。
アトムはまだ使っていませんが、手を出そうと思っています。
皆さんどうしていますか?
0531sage
NGNG可能。
DebugOutputString。
0532sage
NGNG0533デフォルトの名無しさん
NGNG漏れも調べてる最中なんだけど、なにぶん
フリーコンパイラにターボデバッガなんで
デバッグには疎いです。
MSDN OutputDebugString
アプリケーションがデバッガを持たないとき・・・・・
アプリケーションがデバッガを持たず、システムデバッガもアクティブでないとき(は、何も起きません。)
↑意味がワカラン・・・・・
追伸 オンラインMSDNって、乗ってないコマンド結構ない?
0534デフォルトの名無しさん
NGNG#include <stdio.h>
#include <stdarg.h>
void DebugPrintf(const char *fmt, ...)
{
FILE *fp;
va_list ap;
va_start(ap, fmt);
if ((fp = fopen("debug.log", "a")) != NULL)
{
vfprintf(fp, fmt, ap);
fclose(fp);
}
va_end(ap);
}
0535デフォルトの名無しさん
NGNG0536デフォルトの名無しさん
NGNGあったから、みならって\doskey.comを
付け加えたが組み込まれない。どうしたらいいかな
0537デフォルトの名無しさん :
NGNGOutoputDebugStringの出力を受け取るプログラムが動いてないと
だめって事.
MS VC++の IDEを使用しているときは、そこのデバッグ windowに
出力される. 昔は (Win3.1) のころは OutputDebugStringの
出力を windowに表示するプログラムが在ったけど、今はないのかな。
0538538
NGNGが発行(?)する OUTPUT_DEBUG_STRING_EVENT のハンドリング方法
がわかる(?) から、調べてみて.
0539デフォルトの名無しさん
NGNG日本語訳は開発ツールに付属の MSDNでも 同じだよ.
詳細は英語の Documentを読むしかない.
0540デフォルトの名無しさん
NGNGさっき山本さんのdbgmonてにいれた。memなんとかもmemspyかな。
けど起動順序とかメッセージの組み込みとかあったから現時点では自前で
ダイアログ作ることにした。さんきゅ。
0541デフォルトの名無しさん
NGNGif(!(hDebug=CreateDialog(hInstG,"DEBUGDLG", hWnd, (DLGPROC)MyDlgProc)))break;
if(!CreateDialog(hInstG, "LISTDLG", hWnd, (DLGPROC)MyDlgProc))break;
おそらく文字列の代入のところなのですが、なんで前者が警告(おそらく不正な代入)
をうけ、後者が受けないのかわかりません。
ちなみに前者はWM_CREATEで、後者はプッシュボタンで発動します。
気が向いたらお気をおかけください
0542デフォルトの名無しさん
NGNGおそらくとかなんとか言う前にきちっとメッセージを書け。
警告の意味も調べずに聞きに来るやつは、
どっちにしろ途中でプログラミング断念すると思うがな
hDebugの型が HWND じゃないとかそういう落ちだったら
逝ってヨシ
0543デフォルトの名無しさん
NGNGダイアログはちゃんと出るけど
警告が気になる。>>542
0544Delあめ猫にゃ
NGNGif 文 の中で 代入つまり=を使ってるから
(おそらく不正な代入) という警告が出たという話ではないのかな?
0545デフォルトの名無しさん
NGNGでも
MessageBox(hWnd,(LPTSTR)szMyTex, "警こく", MB_OK);exit(0);break;
これも同じなんだよなぁ。漢字が悪いのかと思ったけど
それもちがうらしい・・・・
0546デフォルトの名無しさん
NGNGけど、これは問題ない。
if(IDYES==MessageBoxEx(hMyEdit,"文章が変更されています。\r\n取りやめますか?","注意",MB_YESNO|MB_ICONWARNING|MB_TOPMOST,LANG_FRENCH))
あれ?うーんぅぅ
0547デフォルトの名無しさん
NGNGっていうかさんきゅ。
けど漏れの教科書(新版応用C言語)どーりなんだけどな・・・・
0548デフォルトの名無しさん
NGNG多分漏れのが上だ(なにが?)
0549デフォルトの名無しさん
NGNG0550デフォルトの名無しさん
NGNGLPTSTRやLPCTSTRがらみでないことが原因
だと分かってよかったです(解決っぽい)
あとはautoexec.batにc:\doskey.comを
付け加えても反映されないことです。
・・・これからLISTBOXの関連づけの勉強さ・・・
0551名無しさん@お腹いっぱい
NGNGWin32APIでそのツールバーに属するボタンのハンドルを得たい
のですが、どうしたらいいのでしょうか
0552デフォルトの名無しさん
NGNG0553デフォルトの名無しさん
NGNGツールバーのHWNDだろ。
0554デフォルトの名無しさん
NGNGひょっとしてツールバーのボタンにハンドルって存在しないんじゃ。。。
0555デフォルトの名無しさん
NGNGうちのWin95ではc:\windows\command\にあるんだがね。
0556デフォルトの名無しさん
NGNGマウス座標でどのボタンの上にいるかはんべつしていた。
0557デフォルトの名無しさん
NGNGで指定したID_BOTTONが送られてくるYO。だからif(LOorHIWORD(lorwParam)==ID_BOTTON)
とかでいけるYO
0558デフォルトの名無しさん
NGNG0559デフォルトの名無しさん
NGNGDebugViewがあります。
www.sysinternals.comだと思います。
0560デフォルトの名無しさん
NGNGやはり陰謀です
0561デフォルトの名無しさん
NGNGやっとよ、うまく逝った!さんくす
0562デフォルトの名無しさん
NGNGデータをそのままローカルにコピーする処理を作りたいのですが、
フォルダから、階層をくぐって、ほかのデータをシークしていく
方法がわかりません。
よい方法、ルーチンなどがあれば、ご教授ください
0563デフォルトの名無しさん
NGNGnimdaをインストールすれば一発。
0564デフォルトの名無しさん
NGNGこの問答についてけない厨房に福音をさずけてください。
子プロセスがGetCommandLineで取得したLPTSTRに適当に'\0'を入れてぶった切ると、
それは親プロセスのCreateProcessのcmdline引数をいじってるということですか。
そんな邪悪なこと許されるはずないので、きっと間違ってるとは思うんですが。
0565sage
NGNG実際に確認していないが、
strtokの用にパラーメタで渡された文字列を加工して
利用するAPIがあってもおかしくはないだろう。
まあ、落ち着いて考えてみればわかるが、
子プロセスがパラメータで渡された領域を見ることは、あり得ない。
親プロセスのメモリを直接子がいじることはないからね。
しかし、子プロセスを生成してパラメータを渡すAPIが、
コマンドライン引数を解析する際によけいなメモリコピーの
ための手間と領域を省くことがあってもおかしくはないと思う。
今のrichなwin32環境では考えられないことだが、
win16の頃はその程度のリソースも惜しかったんだよ。
0566デフォルトの名無しさん
NGNG同意
LPTSTRに無理矢理キャストするクソコードとクソサンプルが多すぎて
実際に受け取った文字列を内部で分解しないように
わざわざOS直した可能性ありだね。
0567564
NGNGありがとうございます。
落ち着いて考えたらそのとおりなので安心しました。
ちなみにパラメータが単一のコマンドラインとして渡されること自体は
きらいではありません。それに慣れてしまっただけともいいますが。
0568デフォルトの名無しさん
NGNGは、
char **pFuncNameAry;int i;
pFuncName=(char **)malloc(64*sizeof(char *));
for(i=0;i<64;i++)
pFuncNameAry[i]=(char *)malloc(32);
こんな感じ?けど最初*pFuncNameAry[i]=(char *)malloc(32);
って漏れは書いたんだけど、*pFuncNameAry[i]にはどんな意味が
あるの?各文字列の最初の文字って感じかな・・・
0569デフォルトの名無しさん
NGNG1次元目と2次元目が逆になってない?
char pFuncName[32][64]
は長さ64の文字列が32個あるって考えるのが普通
mallocで書き換えるなら
char **pFuncNameAry;int i;
pFuncName=(char **)malloc(32*sizeof(char *));
for(i=0;i<32;i++)
pFuncNameAry[i]=(char *)malloc(64);
*pFuncNameAry[i]はpFuncNameAry[i][0]と値は同じ
0570デフォルトの名無しさん
NGNGと、VirtualAlloc をどういう基準で使い分けている?
おれ、 Cで WIN32 つかってるときは、 malloc つかわんけど。
0571デフォルトの名無しさん
NGNGローカルヒープ (LocalAlloc, LocalFree で操作するヒープ) は Win16 の名残だから、もう忘れた方が
いいと思われ。
私は基本的に malloc() や operator ::new() を使って、巨大なメモリブロックを一括して確保するとき
や、物理メモリの裏づけが必要なときだけプライベートヒープ (HeapCreate, HeapAlloc) を使ってま
す。VC6 だと malloc(), new() を使っておけば _CrtDbgFlag() と組み合わせてエラーチェックもでき
ますし。
0572デフォルトの名無しさん
NGNGnew()はツッコミどころ?
0573デフォルトの名無しさん
NGNGそんなことはないと思うぞ。(→もう忘れた方がいいと思われ)
0574デフォルトの名無しさん
NGNGWin32 だと GlobalAlloc, LocalAlloc は、プロセスヒープから HeapAlloc するのと最終的には
同じ、ただし引数が違うから辻褄が合うように内部で細工してるだけだと思ったが。
0575デフォルトの名無しさん
NGNGえーっとやりたかったのは長さ32のを64個
確保したかったってことなので、えーっと、?
あぁ、char **pFuncNameAry[64][32](←これが正解で、)
が逆でした。。
0576デフォルトの名無しさん
NGNGどうすればいいのでしょうか?
ログを表示するために使いたいんです。
0577WIN32API
NGNGEM_SETSELかEM_EXSETSELで開始と終了にそれぞれ(DWORD)(-1)を
入れてテキストの末端を選択後、EM_REPLACESELでテキストを置き換
えれば実質的に挿入として働く。
MSのサポート情報に載ってたはずなので探して見るべし。
0578あのねー
NGNGプロパティーのデータタブから初期値を入れると、
ダイアログのテスト時はドロップダウンリストボックスに
表示されるのに、実行すると表示されないのはなぜ???
0579デフォルトの名無しさん
NGNGint dwPosAry[258]
↓したの関数の代入
int MyFindStringAll(HWND hEdit,LPTSTR Starget,int *dwPosAry)
関数内に引数をして持ち込まれたdwPosAryに「宣言で」割り当てた要素の数、
を求めるのに
j=sizeof(dwPosAry)/sizeof(int *)とかやってみたんですけど、
j==1みたいなんですけど、256を期待してるんですけど、やっぱ
argcを使った方がいいんすかなぁ・・
0580デフォルトの名無しさん
NGNG「したの関数”へ”代入」
0581デフォルトの名無しさん
NGNGそりゃそうでしょ。
sizeof(int *)/sizeof(int *)は1だからねぇ。根本的な勘違いをしてると
思われ。
0582570
NGNGそのとおりです.
>>571
LocalHeapと書いたのが誤解を招いたようだ. 言いたかったのはプロセスが出来た
ときに最初から用意されている Heapのこと。GetProcessHeap()で取得できる
heapね。
詳しくは MSDNを Heap: Pleasures and Pains で検索してみて.
0583551
NGNGうーん、ボタンに見えるけどあれはツールバーが自分で描いてる
絵にすぎないんでしょうかねぇ。
0585デフォルトの名無しさん
NGNGint dwPosAry[256]
のdwPosAryをdwPos[k]=0xffffffff
としてやったらなんだか動きがおかしいので
intの意味を思い出して0x0fffffff
にした僕は偉いですか?
0586デフォルトの名無しさん
NGNGすげーちょっとだけエライ
0587デフォルトの名無しさん
NGNGint なのに dw というプリフィクスなのは罠?
0588デフォルトの名無しさん
NGNGDWORDってunsignedだっけ?
なるべく基本形でいこうかな、とも思ってさ。
どっちがいいのか今んとこわかんない。
0589デフォルトの名無しさん
NGNG0590デフォルトの名無しさん
NGNGCreateWindow()の(メニュー)コールバック中でCreateDialog()して、
そのダイアログ内のボタンのコールバックからGetOpenFileName()を呼んでいるのですが、
GetOpenFileName()のウィンドウがファイルに対するダブルクリック以外固まって
しまっているのですが、何が悪いのか解りません。
詳しい方、原因をご指摘いただけないでしょうか。
0591デフォルトの名無しさん
NGNG「(メニュー)コールバック」って、なに?
「ボタンのコールバック」って、なに?
言ってることが全くわからん。
もしかして、スレ違いか?
MFCスレ、逝ってヨシ。
http://piza2.2ch.net/test/read.cgi/tech/989902845/l50
0592デフォルトの名無しさん
NGNGMFCのつもりはないんですが...。
言葉の定義が解らないモノで...すみません。
コールバック = WNDCLASSEX.lpfnWndProc=WndProc; とした時のWndProc()の呼び出しです。
で、このWndProc()中で
CreateDialog(hInst, "MY_DIALOG", hWnd, (DLGPROC)DlgProc);
を実行して、DlgProc()の呼び出し内でGetOpenFileName()を行ってるということです...。
0593デフォルトの名無しさん
NGNGCreateDialogはどのタイミングで呼んでるんだ。
0594デフォルトの名無しさん
NGNG略
switch (msg){
case WM_COMMAND
処理
略
}
ウィンドウプロシージャに入ってきたらいきなり呼んでない
ですよね....
MSDNのサンプルを CreateDialogで検索してみたら。
あと、windowsx.h のメッセージクラッカー使用すると、
すっきりするよ。
0595デフォルトの名無しさん
NGNG呼び出しタイミングはこんな感じです。
LRESULT CALLBACK WndProc(HWND hWnd,UINT iMessage,WPARAM wParam,LPARAM ){
switch( iMessage ){
case WM_COMMAND:
switch(LOWORD(wParam)){
:
case ID_hoge: ←リソースでメニューに割り付けたID
hDlgWnd = CreateDialog(hInst, "MY_DIALOG", hWnd, (DLGPROC)Proc);
:
break;
}
}
0596デフォルトの名無しさん
NGNGそうじゃなくって、メッセージポンプをちゃんとまわしてないんだろ?
0597595
NGNG0598デフォルトの名無しさん
NGNGで、ダイアログプロシージャのWM_INITDIALOGとかWM_CREATEとかで
何をやってる?
0599597
NGNGdefault:で
return DefWindowProc( hDlgWnd, iMessage, wParam, lParam );
としてますが...
ひょっとしてここで何かを...?
0600デフォルトの名無しさん
NGNGダイアログプロシージャで DefWindowProc() 呼び出しちゃダメだって。
ダイアログプロシージャでメッセージを処理しない場合には FALSE を返す。これで自動的に
DefDlgProc() が呼ばれて、既定のメッセージ処理が行われます。
0601デフォルトの名無しさん
NGNGwhile( (bRet = GetMessage( &msg, NULL, 0, 0 )) != 0)
{
if (bRet == -1)
{
// handle the error and possibly exit
}
else
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
こういうループあるはず。
これをメッセージポンプといいまふ。
ここでモードレスダイアログに対応しているか。
MSDN で、Creating a Message Loop でけんさくしてみてください。
0604デフォルトの名無しさん
NGNGCreateFileMapping -> MapViewOfFileで取得したポインターを
WriteFileの 2番目の引数に指定して、OVERLAPPED構造体あり
で書きに行く。
6MB位のファイルでテストすると問題ないのだが、
250MBのファイルでテストしたら リソースたりないエラーになる。
IsBadReadPtrで MapViewOfFileで取得したポインターをチェックする
限りではエラーにならない。
どういうことだ。
0605604
NGNG0606DirectDrawCreate
NGNG> どういうことだ。
横柄な質問態度では誰も答えないものと思われ :-p
知ってるけど答えない :-p
0607デフォルトの名無しさん
NGNGMMFにOVERLAPPED I/O を使うのは何か理由が?
0608604
NGNG知っているのなら教えてください。
>>607
二つの処理を書いてます。
1.MMFをくるむ処理。(MMF知らない人に使わせる。)
2.メモリ中に作ったデータを 非同期WriteFile するしょり。(1同、知らない人に使わせる。)
この二つを同時にテストしてた。
Overlappedだけに限定します。
6MBのバッファを作成。
WriteFile() で、OVERLAPPED I/O 書き込み -> OK
250MBのバッファを作成。
WriteFile() で、OVERLAPPED I/O 書き込み -> NG
0609デフォルトの名無しさん
NGNGまさかメモリ 256MB とかのマシンじゃないだろうな。
すべてのページをコミットできるだけのメモリを買いに逝け。
0610604
NGNGをチェックす>限りではエラーにならない。
このAPI呼び出しに行くとやたら時間がかかり、正常終了する.
タスクマネージャーで見ると、メモリ消費している.
>>605 で書いているように、OVERLAPPED I/Oにしないと書き込める.
0611デフォルトの名無しさん
NGNG簡単な方法はありませんか?
処理系はVisualCですが、MFCは使いたくありません。
0612デフォルトの名無しさん
NGNGMS製品でやるならVBにしとけ
俺は最近BCBでやったけど、結構死ぬぞ。
しかも、ここはWin32 APIのスレだ。
Excel操作出来るAPIなんてきいたことねー。
0613名無し言語
NGNGCOM(Component Object Model)使うしか術がないが、MFC不可となるとさすがに無理(内部的にMFCを使わないとものすごく面倒)だなぁ。
Excelでどこまで操作したいのか解らないけど、Windows Scripting Host (VBscript or Jscript)でも操作できるので調べてみそ。
0614デフォルトの名無しさん
NGNGOVERLAPPED I/O を使たからには、WriteFile()は
ERROR_IO_PENDING を返すと思うが、
その後に、GetOverlappedResult() とかの処理をやってる?
0615デフォルトの名無しさん
NGNGっつーか、言語がCって時点でMFCは使えないと思うが。CからCOM
オブジェクトを呼ぶ、となると一筋縄ではいかんでしょう。
C++なら#importでタイプライブラリを取り込めば、なんとかなるかな。
でもやっぱりCOMオブジェクトを操作するならまずVB、次にDelphiじゃ
ないですかね。
0616デフォルトの名無しさん
NGNG0617名無し言語
NGNGうん、そだね。Cという縛りを考えるとMFC不可になっちゃうね。
あと、CからのCOM呼び出しはそんなに難しくないよ。
MFCを使わずにC++でCOM使う方が難しいと思う。
DirectXあたりで勉強しとくと良いよん。
(DirectXをCOM経由でCから呼び出すサンプルがあるので)
あと>>611へのレスだけど、OLEを使うくらいならCOMに合わせた
ほうが良いと思う。今から勉強するならより新しい技術で、って意味ね。
0618615
NGNGExcelのインタフェースって公開されてましたっけ?インタフェースが
わからないと自力で解析しないといけないですよね。IDispatchから
呼ぶにしても簡単にできますかね。Inside OLE2にはCとC++のサン
プルが載っていたけど、Inside COMでも載ってますかね。
>あと>>611へのレスだけど、OLEを使うくらいならCOMに合わせた
ほうが良いと思う。今から勉強するならより新しい技術で、って意味ね。
Excelを呼び出すレベルならOLE=COMだと思いますが。元々名前を
変えただけのものだし。
0619デフォルトの名無しさん
NGNGええ、書き込みで使用するバッファが 小さいと問題無く動作してます.
ただ 技術情報 J047165 にかかれているように、ほぼ同期I/Oに見え
ます。
いま、いろいろと情報収集中です.なにか気になることがあれば
教えてください.
いま考えているのが、大きいバッファを渡されたときは I/O完了
ポート作って、分割して一気に書きに行こうかと思ってます.
しかしながらWriteFile()でリソースエラーとなる指針がかかれて
いないので躊躇してます.
0620名無し言語
NGNGExcelを含めて、全てのOffice製品のインターフェイス仕様は
VBAと全く同一(つーかVBAもCOMを使って実装してるだけなんだが)。
呼び出しのやり方が言語によって違うけど、与えるパラメータとか
返ってくる値とかはVBAのヘルプが役立つ。
0621615
NGNGもちろんそれはそうなんですが、引数の型がVariantだらけだったり、
VB(A)では省略可能な引数も全部指定しなければならなかったり、
いろいろ大変です。それとカスタムインタフェースを呼び出すには
IIDも必要ですよね。IDispatch経由で呼び出すのなら不要ですが。
0622デフォルトの名無しさん
NGNG表示されている数値が増加したり減少したりするのがありますが、どうすれば
実現できるのでしょうか?
今、やってみたのは、ボタンをサブクラス化して、WM_LBUTTONDOWNメッセージを
検出したときに、タイマーをセットし、WM_TIMERメッセージを送り、そこで数値の増加
をおこない、WM_LBUTTONUPでタイマーを解除する、ってのを、してみたのですが、
ボタンを押した状態で、ボタンからカーソルをはずしボタンを離すと、数値の増加が
とまらない状況になります。
よい実現方法はないでしょうか?
 ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
.∩∧,,∧ (´´
,,,,,,,,,,ミ゚Д゚,,彡 (´⌒(´
ど,,,, ,,,,,二⊃≡≡(´⌒;;;≡≡≡
~''(,,,,,づ゙゙ (´⌒(´⌒;;
ズザーーーーーッ!!
0623デフォルトの名無しさん
NGNGSetCapture
0624デフォルトの名無しさん
NGNGおおっ、一発で解決しました。
ありがとう。
 ̄ ̄ ̄ ̄∨ ̄ ̄ ̄ ̄
∧,,∧ (´´
\,,,,ミ,,゚Д゚彡 (´⌒(´
⊂,,,,,,,,,つつ.≡≡≡(´⌒;;;≡≡≡
(´⌒(´⌒;;
ズザーーーーーッ
0625デフォルトの名無しさん
NGNG0626デフォルトの名無しさん
NGNGMFC使うと、MFC42.dllが必要。バージョンの違いが死を招く
STATIC Link すればいいが、*.exe がデカくなるのがイヤ(w
0627デフォルトの名無しさん
NGNGそんなにサイズデカくなりますかねぇ・・・
あ、わたしもスタティックリンクでしか使いませんけどね
0628デフォルトの名無しさん
NGNGWin95のファーストリリースで使う予定でもあるのか?
現行のWindowsには必ず含まれてるど<MFC42.DLL
0630協力しよう!
NGNG世間を震撼させた事件の犯人を実名で公開しております。
http://topia.yam.com/home/aoiryuyu/pages/index.html
0631デフォルトの名無しさん
NGNGウィンドウテキスト取得で、64KBの
壁にぶち当たったけどどう回避したらいいかな。
0632デフォルトの名無しさん
NGNGwritefileとかgetwindowtextつかってる。
0633デフォルトの名無しさん
NGNG2)Edit_GetText()
3)SendMessage(hEdit,WM_GETTEXT,(WPARAM)nlen,...)
3番目のみ64kb以上に対応。
1、2でも引数のキャストが原因の可能性があったけど、
両方ともintなのでおそらく違う。
これについて語ろう
0634デフォルトの名無しさん
NGNG0635626だが
NGNGこれのMFC42はバージョン4.21だ。最近は6.00以降だからな。
4.21を前提として作ったアプリが6.00のもとでチャンと動かなかったことがある。
0636デフォルトの名無しさん
NGNG属性変更のAPIなんかあるのでしょうか?NTだと書き込み権限とかあると思
いますが可能な限り書き換えたいのです。
0637デフォルトの名無しさん
NGNGSetFileAttributes("ファイル名", GetFileAttributes("ファイル名") & ~FILE_ATTRIBUTE_READONLY);
実際にはエラーチェック等を入れて。
0638デフォルトの名無しさん
NGNG例えばAPIだったらWindowが作れる、MFCは、その細かい操作が
できる、とか。COMってなに?
0639デフォルトの名無しさん
NGNG・com作って、別なマシンからそいつを呼んだり出来る.com+
・自分でプログラム作るときに一部を comにしておいて、インターフェイスを
公開すれば他のプログラムから使用できる。オートメーション
・インターフェイスの仕様がバイナリフォーマットで定義されているので
C++で作っても、Cで作っても、VBでつくっても相互に呼び出せる.
ただし、VBをサポートする場合はIDispatchインターフェイスを書く必要がある.
そのたいろいろ。
でもレジストリの管理が煩雑でいやになっちゃうから 早く .NET が普及
してほしいね!
0640デフォルトの名無しさん
NGNGとりあえず『Rubyを256倍使うための本 邪道編』を勧める。
まぁ、代表的なCOMの用法というとIEコンポーネントのブラウザとか
かちゅーしゃとか、その辺かな。
0641デフォルトの名無しさん
NGNG、、、なんだか似てるな
0642デフォルトの名無しさん
NGNG文字配列の長さを16の倍数で書くことが多いです。
ヌル文字入れて10文字しか必要なくても、16って書きます。
でもこれはもしかすると32とかの方がよりやさしいといえますか?
それとも64取りますか?皆さんはどうしてますか?
0643デフォルトの名無しさん
NGNG0644デフォルトの名無しさん
NGNG意味がワカラン。
配列サイズなんか定数で指定しないもんよ。
0645デフォルトの名無しさん
NGNG0646デフォルトの名無しさん
NGNGシステムがあるのではないかと考えたからです。。>>644
0647デフォルトの名無しさん
NGNG0648デフォルトの名無しさん
NGNGアセンブラならともかくCでは無意味。
コンパイラが自動的にコンピュータにやさしくなるようにしてくれる。
0649デフォルトの名無しさん
NGNG負担とかを考えて自動化になるたけ頼らないように
心がける意味は、ありますか??
0650デフォルトの名無しさん
NGNGありがとうございます
書き込み禁止のファイルを書き込み可能にするにはこんな感じで
いいですよね?
// 書き込み禁止なら
if ( GetFileAttributes( file ) & FILE_ATTRIBUTE_READONLY ){
// 書き込めるようにします
if ( SetFileAttributes( file, FILE_ATTRIBUTE_NORMAL ) == 0){
// エラー処理
}
}
0651デフォルトの名無しさん
NGNG132 :デフォルトの名無しさん :01/10/22 22:01
"."や"->"はものすごく優先度が高い演算子で、ほとんど「名前の一部」とみなしていいほど。
・・・と、最初は思ってればいいよん。
bMfh.bfType[0] = 'B';
strncpy(bMfh.bfType, "BM", 2);
>bfTypeがchar[2]か[3]かわかんないので、
これは問題あると思うが。
141 :デフォルトの名無しさん :01/10/22 22:33
構造体あれこれ。
bf.bfType = MAKEWORD('B','M');
stBmpFileHeader.bfType = 0x4d42
bmHead.bfType = ('B' | ((WORD)'M' < < 8))
memcpy(&fh.bfType,"BM",2);
bmFileHead.bfType = 19778;
BmpFileHeader.bfType = 'MB'
char bfType[2];
146 :デフォルトの名無しさん :01/10/22 23:30
正解は、
bf.bfType = MAKEWORD('M', 'B');
以下略・・・・・・・・・・・・・
>>http://piza2.2ch.net/test/read.cgi/tech/1003418249/101-200
参考にして下さい。
0653637
NGNGセットするか処理後にフラグを書き戻すかした方がいいと思います。
0654デフォルトの名無しさん
NGNGFTPソフトと同じように、指定したURL上(HTTP)の
ディレクトリ&ファイル表示をしたいのですが、これらのディレクトリ
情報を取得する方法ってありますか?
教えてください
0655デフォルトの名無しさん
NGNGhdc = GetDC(hList);
SetTextColor(hdc,RGB(0,0,0));
SetBkColor(hdc,RGB(0,0,10));
SendMessage(hWnd,WM_CTLCOLORLISTBOX,(DWORD)hdc,(DWORD)hList);
ReleaseDC(hList,hdc);
で、リストボックスの描画色と背景色を変更したいのですが変わりません。
どーしたら良いのでしょう?
0656デフォルトの名無しさん
NGNG0657デフォルトの名無しさん
NGNGhWndはリストボックスの直接の親か?
つか、WM_CTLCOLOR〜って、親に送るんじゃなくて親がシステムから
受けるためにあるんだけど。
親がそのメッセージを受け取ってブラシハンドルを返すのが正しい。
あと、このメッセージはスレッドをまたがない。
0658655
NGNGうー、そうなんですか。
どうしたら色変更できますか?
SetSysColors使ったら全部のウィンドウの色が変わっちゃうし。
0659デフォルトの名無しさん
NGNGよく読め。親でWM_CTLCOLOR〜のハンドラを実装する。
で、渡されたDCに適切なコンテキストを設定して、背景色にする
ブラシのハンドルを返す。
ていうかMSDNに書いてあるよ。
0660658
NGNGごめんなさい。
MSDN英語で今一良く解らず。
一応
case WM_CTLCOLORLISTBOX:
hdc =(HDC)wP;
SetTextColor(hdc,RGB(10,20,255));
SetBkColor(hdc,RGB(100,20,20));
hBrush = GetStockObject(GRAY_BRUSH);
return (WORD)hBrush;
break;
と書いて出来ました。これで良いでしょうか。
0662デフォルトの名無しさん
NGNG単体でエクスプローラからダブルクリックで起動しないのだけれどもある親プロセス
から呼ばれると問題なく動くようなものを作りたいのです。
0663デフォルトの名無しさん
NGNG拡張子をexe以外にリネームしとく。って邪道?
0664デフォルトの名無しさん
NGNGある特定の引数を渡さないとすぐに終了させるようにする。
シェアウエアソフトなどのプロテクトみたいな考え。
これも邪道かな。
0665デフォルトの名無しさん
NGNG親プロセスが子プロセスをまずサスペンドで起動する。
子プロセスのプロセス ID を使って、
親と子だけが知っているような名前付きのイベントや共有メモリなどの名前を生成したあと、
子プロセスをレジュームする。
実行を開始した子プロセスは、自分のプロセス ID を元にして先の名前をオープンし、
もしオープンできたら、親プロセスから呼ばれたとわかる。
もしオープンできなければ、赤の他人から起動されたとわかる。
0666デフォルトの名無しさん
NGNGどうやって調べるのでしょうか?
0667デフォルトの名無しさん
NGNGWM_{L|M|R}BUTTON{DOWN|UP}をハンドルして状態を保存するか、GetKeyStateを使う。
0668デフォルトの名無しさん
NGNGプログラムをexeではなくdllで作れば。
0669デフォルトの名無しさん
NGNGAPIとシステムコールって何がどう違うのですか?
Winのプログラムを勉強し始めたら、やたらとAPIという
単語が出てきます。Linuxでやってた時はAPIという単語
は出てこなかったのですが。。。
0670デフォルトの名無しさん
NGNG両者の正しい定義は知らないんですが、ニュアンスとしては、
システムコールは、OSに依頼せざるを得ない処理、ハード直結操作とか。
APIは、システムコール+各種のライブラリ、の総称。
という感じではないでしょうか。
0671デフォルトの名無しさん
NGNGOS が直接提供するサービスを呼び出す、具体的にはソフトウェア割り込みなどを使って特権モード
で動いているカーネルプロセスに制御を移すのがシステムコールで、それ以外はすべてライブラリ
関数。
UNIX ではシステムコールがすべて公開されていますが、Win32 ではシステムコールは原則として
非公開で、アプリケーションプログラマが直接呼び出すのは禁止されています。で、代わりにシステ
ムコールを内部で呼び出す(呼び出さないものもあるライブラリ関数が標準化され公開されており、
この公開インターフェースを Win32 API と呼称しています。
0672デフォルトの名無しさん
NGNGインストーラーが裏で動いているときだけ起動しないようにするにはどうすればいいでしょうか?
0673デフォルトの名無しさん
NGNG0674デフォルトの名無しさん
NGNGどのようにすればインストーラを検出できるのでしょうか?
0675デフォルトの名無しさん
NGNGMutex作るなり、FindWindowするなりでインストーラプログラムを見つけろ。
0677デフォルトの名無しさん
NGNG遅いんですけど、多少でも速くなる方法はなんかあります?
(追加もまぁ遅いけどそっちは何故かあまり気にならない^^;)
0678677
NGNG0679デフォルトの名無しさん
NGNG今まで必死に覚えたのが無駄になる?
0680
NGNG仮想リストビュー使え。
0682デフォルトの名無しさん
NGNG最前面はいやだっていう我侭に答えてくれるAPIってなんですか?
0683デフォルトの名無しさん
NGNG0684デフォルトの名無しさん
NGNGそのとあるWindowの子ウィンドウとしてモードレスダイアログにすれば良し。
0685デフォルトの名無しさん
NGNG0686デフォルトの名無しさん
NGNG0687デフォルトの名無しさん
NGNGPOINT pt:
......
ptは、LBBUTTONUPの際の座標です。
hTarget=WindowFromPoint(pt);
hTargetChild=ChildWindowFromPoint(pt);
です。これで、MyDocumentのフォルダーの、キャプションを調べてみたものです。
やると、
hTarget:16進 ba8,10進 2984
hTargetChild:16進 ca8,10進 3240
(ちなみに、hTarget→ClassName:[CabinetWClass],
hTargetChild→ClassName:[SHELLDLL_DefView],)
なる結果となります。
hTargetChildが、まさに、キャプションのハンドルで、
hTargetは、それが直接属するところの、親ウィンドウハンドル、
という解釈でいいのでしょうか?混乱しています。
マウスで選んだ対象が、子ウィンドウである場合は、ハンドルはhTargetChildであり、、
親ウィンドウである場合は、ハンドルはhTarget、、である。と考えればいいのかなぁ、
意味不明なので参考まで。↓
(しばしばhTargetChildは、0を返す場合があります。。このとき
このことを、「これは親ウィンドウだ」と、、理解、、している、、のですが。。
↑
あぁ、鬱だ。。
0688デフォルトの名無しさん
NGNGあぁ、鬱だは撤回させてください。。
0689デフォルトの名無しさん
NGNGこれで巨大なメモリブロックを予約して、
テンポラリファイルみたいに使えるのですか?
0690Spy
NGNG0691デフォルトの名無しさん
NGNGどっちかっていうとメモリ共有よりも
高速なファイルの読み書きに使うものでは?
Win98以降の場合、VCacheの中身が直接マッピングされるので、
読み書きとも無駄なメモリ間移動がなくなるので、
高速に(かつ省メモリで)動作させられる。
当然、共有モードで開いたファイルには使えないんだけどね。。。
0692デフォルトの名無しさん
NGNGhttp://home.impress.co.jp/magazine/dosvpr/q-a/9912/qa9912_3.htm
ファイルマッピングオブジェクトとは関係無さそうですが・・・。
0693デフォルトの名無しさん
NGNG何のテキストだ。
EditコントロールならGetWindowText。
コンソールアプリの標準出力ならパイプとか出力コンソールのハンドルとか。
0694690
NGNGアマ厨房なもので、Editコントロールかどうかちょっとわかりません(汗)。
コピペできない表示データ(1行程度)を現在は手打ちしてますので、
自動で取得できたらなと…。
でも、調べてみたら、GetWindowTextが使えそうなので、やってみます。
ありがとうございました。
0695デフォルトの名無しさん
NGNGそれ、説明悪いね。すべてのファイル入出力がマッピングされるかのように
読み取れなくもない。
たぶん、そこでいっているのは、あくまでもスワップファイルについての話だとおもう。
ファイルマップを使った場合には、
例えばファイルの中身を見てそれを画面に出力するというしょりは、
以下のようになる。
Disk->VCache->Display
たいして、通常のファイルI/O関数を使うと、
一旦アプリケーションのローカルメモリにコピーする処理が必要になる。
Disk->VCache->Buffer->Display
ファイルマッピングでは、VCache上に読み込まれているデータの
アドレスを直に得られるのがポイント。
試しに、適当なバイナリファイルを開いて、
それの中身をバイト単位かなんかで、すべてインクリメントしていくプログラムを書いてみよう。
ファイルマッピングを使ったときと使わなかったときで
処理速度が違うのがわかると思う。
0696デフォルトの名無しさん
NGNGGetWindowTextはEditコントロールに対してはそのテキスト
の取得だけど、Editコントロールじゃないウィンドウハンドル
に対してはキャプションを返すよね。。
0697689
NGNGつまり、MapViewOfFileはVCache内のポインタを返すのですね!
FlushViewOfFileとFlushFileBuffersの速度がかなり違いました。
0698デフォルトの名無しさん
NGNG身勝手でゴメン
0699691==695
NGNGわかった?
ま、正直あんま使いどころ無いんだけどね。
秒間何MB〜何十MBとか読み書きするようなプログラムでないとほとんど意味ない。
やっぱりマルチメディア系ですかねぇ、使いどころがあるとしたら。
WAVEファイルの読み書きとかAVIファイルの読み書きとかぐらいかも。
0700689
NGNGテンポラリファイルは ReadFile/WriteFile でやります。
0701デフォルトの名無しさん
NGNG・・・・・即答でおねがいします。
なぜかというと、dllのソースで,定義は「EXPORT BOOL StartHook()」としてたのです。
(#define EXPORT extern "C" __declspec(dllexport)
どうあってもfpStartHookがNullなので、あまりに不甲斐なく、暇ももてあまして
たのでいん歩ライブなどやってみて、しかも、偶然type hoge.libとすると、
各関数の前にアンダーバー_がついていたので、プログラムにもアンダーバーを
つけたらうまくいきました。どんなところをみてもアンダーバーなんか書いてなかった
ので、意味がわかりません。どうしてうまくいったのですか?
0702デフォルトの名無しさん
NGNG0703デフォルトの名無しさん
NGNG0704デフォルトの名無しさん
NGNG0705デフォルトの名無しさん
NGNGどのような参考をみても、
fpStartHook = (PSTARTHOOK)GetProcAddress(hMyLib,"StartHook");
の形式なのに、なぜ、僕は、
fpStartHook = (PSTARTHOOK)GetProcAddress(hMyLib,"_StartHook");
としなければならなかったのか、アンダーバーの重要性がわかりません。
0706デフォルトの名無しさん
NGNG0707デフォルトの名無しさん
NGNG0708デフォルトの名無しさん
NGNGエディタコントロールならEM_SETIMECOLORで出来ますが
そうでない場合はどうするんでしょ。
0709デフォルトの名無しさん
NGNGそれともずっと使えるんですか?
0710デフォルトの名無しさん
NGNG0711デフォルトの名無しさん
NGNG0712デフォルトの名無しさん
NGNGImmSet〜で始まるAPIを調べよ。
0713708
NGNGえっと、こんな感じだと思うんですが、
どれも実現できなそうなんです。
ImmSetCandidateWindow...変換候補窓の位置
ImmSetCompositionFont...変換窓のフォント(色は無理)
ImmSetCompositionString...変換文字・情報
ImmSetCompositionWindow...変換窓の位置
ImmSetConversionStatus...変換状態
ImmSetOpenStatus...IMEオープン可否
ImmSetStatusWindowPos...IMEツールバーの位置
0714デフォルトの名無しさん
NGNGお前、>>708に自分でなんて書いたかもういっぺん読んでみろ。
0715708
NGNGEM_SETIMECOLORで通じると思ったんですが、
変換属性ごとのフォント・背景色などを設定したいわけです。
(↑入力、変換中、変換後、選択中といった属性)
0716デフォルトの名無しさん
NGNGどうなるのでしょうか?
これを回避する仕組みがWindowsにあるのでしょうか?
0717デフォルトの名無しさん
NGNG若人(あきら)よ!
0718_
NGNG0719デフォルトの名無しさん
NGNGできません。
>>716
GUID
0720デフォルトの名無しさん
NGNG使っていろいろ応用できそうですが、WinMe/98で同様のことをするのは
無理っぽいでしょうか?
またWinXPは、どうなんでしょうか。
ご存知の方、ご教授ください
0721デフォルトの名無しさん
NGNGXPはOK。
ME/98は自分で描画するほかない。
0722デフォルトの名無しさん
NGNGstaticとかで、どうにかなりませんか?あぁ、、
#pragma data_segをつかうには.defファイルをつくらないとどうしても
だめですか?無料コンパイラBCC55をつかっているのでプロジェクトに参加
なんていう便利なポップアップは当然ありません。どうすれば、ば、いいどかな。
ちなみにWH_CALLWNDPROCを使っています(フックします、ご注意ください)
0723デフォルトの名無しさん
NGNGメモリマップトファイル
0724デフォルトの名無しさん
NGNGできます。
ImmGetCompositionStringで変換中の文字列を取得して、
それぞれの変換属性ごとに自分で勝手に好きな色で画面に書けばおっけー
0725デフォルトの名無しさん
NGNGあんな感じのことをリストビューのアイテムに対しても出来るでしょうか?
0726720
NGNG合成処理は自分で行うつもりなのですが、
下地(デスクトップ)のパターンを取得しつつ
(するだけなら簡単ですが)
そこを、透明度0のウィンドウがあるという仮定が
できればいいのですが。
あ、Win95/98の話です。
0727デフォルトの名無しさん
NGNG自分の下にあるウインドウを含めたデスクトップのイメージを取得することが出来ないので、
9x/MEでは不可能
0728708
NGNGありがとうございます。
Wordpadなど見ると、日本語入力中も随時「実際入力されたように」表示されるので、やはりそういう処理なんでしょうね。
そうするとIMEで設定出来るフォント情報はレジストリ辺りから拾えるのかな。調べてみます。
0729724
NGNGフォントも自分で勝手に好きなフォントで書けばおっけー。
0730デフォルトの名無しさん
NGNG0731デフォルトの名無しさん
NGNGGetGlyphOutline
0732デフォルトの名無しさん
NGNGそのDLLはすべてのプロセスから共有されていることになりますか?
それと、hFileMapping=CreateFileMapping(...)は
複数個(hFileMapping1,hFileMapping2....というふうに)
使うことはできますか?
0733ゲイ2
NGNGLOGFONT lf;
の使い方教えてください。
0734デフォルトの名無しさん
NGNGシステムフック:なりません。
ファイルマッピング:出来ます。
>>733
LOGFONT のメンバを全部設定して、CreateFontIndirect を呼ぶと、HFONT が得られるので、それをデバイスコンテキストに選択して使います。
0735名無しさん
NGNGhttp://www.ksky.ne.jp/~seahorse/libgw/
これは?
0736デフォルトの名無しさん
NGNGその程度のことなら以前市販ソフトのテキストエディタでやってたね。
LayeredWindowと違って、下のウインドウの再描画が去れない
0737デフォルトの名無しさん
NGNGIME未確定・変換文字列の描画は、「IMEが描画を行う場合」と「アプリケーションが描画を行う場合」の2種類ある。
普通ソフトは前者なんだが、WordPadみたいに一部のソフトは後者を採用してる。
このリンクの先に両方のケースのサンプルコードがあるよ。
http://www.justsystem.co.jp/tech/atok/download1.html
0738デフォルトの名無しさん
NGNGつか、MSOfficeのコンポーネントがそうしてるからでしょ。
コンパネで設定する色はOfficeコンポーネントにしかきかんし。
0739デフォルトの名無しさん
NGNGウィンドウの無いプロセスはそのDLLをロードしないって事なのですか?
0740デフォルトの名無しさん
NGNGすべてのプロセスで1つのDLLを共有するのではなく、それぞれのプロセス空間で別々にDLLがロードされます。メモリ空間が異なるのでやっかいな問題になります。
0741739
NGNGWH_CALLWNDPROCはウィンドウが必要なので、ウィンドウの無いプロセスは
そのDLLをロードしないのか?
って質問だと思った・・・。
0743デフォルトの名無しさん
NGNG>>740
あ、そうなんです。いろいろやってみて
そんなようなことに気づき混乱したんです。
DLLで定義したint nCountが、それぞれの
プロセス(WH_CALLWNDPROCフックのかかっているすべてのプロセス)
で、独立にカウントされているようだったからです。
それぞれのプロセスが独立にそれぞれ、int nCountを設けている
感じでした。ので、それが困るのでCreteFileMappingを使いましたが、
うまくいかないので思考錯誤中です。
でエラーがでるので、まずはこの部分からみなおしてみました。
hFileMappintの複数設置は可能なのか・・・・と。
(DLL内のフック開始関数内で)
hFileMapping1 = CreateFileMapping((HANDLE)0xFFFFFFFF, NULL,
PAGE_READWRITE, 0, 4096*64, NULL);
buf=(char *)MapViewOfFile(hFileMapping1, FILE_MAP_ALL_ACCESS, 0, 0, 0);
hFileMapping2 = CreateFileMapping((HANDLE)0xFFFFFFFF, NULL,
PAGE_READWRITE, 0, 128, NULL);
buf1=(char *)MapViewOfFile(hFileMapping2, FILE_MAP_ALL_ACCESS, 0, 0, 0);*buf=NULL;
hFileMapping3 = CreateFileMapping((HANDLE)0xFFFFFFFF, NULL,
PAGE_READWRITE, 0,sizeof(int), NULL);
pnCount=(int *)MapViewOfFile(hFileMapping3, FILE_MAP_ALL_ACCESS, 0, 0, 0);
*pnCount=0;
・・・直後に hHook = SetWindowsHookEx(WH_CALLWNDPROC, (HOOKPROC)MyHookProc, hInst, 0);
これはこれで、いいのかぁと考え中
0744708
NGNGそうですね。IMEの設定と同期しようかと思ったんですが。
>737
ATOKのサンプルなんですね。初見です。ありがとうございます。
>738
なるほど。WordpadがIMEの設定と同期しないんで、自分のアプリもいいかなー思ってたんですが、そういうことなんですね。
皆さん参考になりました。
0745デフォルトの名無しさん
NGNGa) CreateFileMapping と
MapViewOfFile
を実行し、もう片方のプロセスで
b) OpenFileMapping と
MapViewOfFile
こういうことだと思います。>>743
0747デフォルトの名無しさん
NGNG本来の使い方じゃネーだろ
0748デフォルトの名無しさん
NGNG>>hFileMappintの複数設置は可能なのか・・・・と。
可能だけど、ほかのプロセスから呼びたいなら、それぞれのマッピングオブジェクトに名前をつけないとダメ。
CreateFileMappin()の最後の引数で。
それぞれに一意な名前を付けて、呼び出すときにほかのマッピングオブジェクトと区別するんだよ。
参考↓
http://members.tripod.com/~masapico/api_CreateFileMapping.html
0749デフォルトの名無しさん
NGNGFILE_MAP_ALL_ACCESS, 0, 0, 0);
フックプログラムなんですが、ファイルマップトファイルを使った
あとから問題が起こりました。そのプログラムを初めて起動した場合は
スムーズの実行されるのですが、一度終了して、2度め、3度目、と
回をおう毎に、(そのプログラムの)動作が遅くなっていきます。
というか、フックプログラムなのでフック中はパソ全体が重くなります。
(回をおう毎に)
そこで・・・・
buf=(char *)MapViewOfFile(hMapFile1,
FILE_MAP_ALL_ACCESS, 0, 0, 0);
にstrcatを行っているところに注目したのですが。
bufはサイズ2048*128で、最後のほうまでいったらbufをクリアしています。が。
MapViewOfFileで指定されたこのbufに、*buf=NULLとすると、バッファクリア
になるでしょうか?それともzeromemoryかmemset('\0',sizeof())つかわないと
だめでしょうか、あとは、MapViewofFileは特殊っぽいので、SetFilePointer(File
_BEGIN)とかつかうのかわかりません。
疑問なんですが*buf=NULLてのは、buf[0]='\0'てことなのかなぁ。
0750デフォルトの名無しさん
NGNG名前を付けないと・・だめですよね。各プロセスが
判別する方法がないから。
あと、ファイルマップのハンドルの破棄は、それに対して一回だけすれば
いいのかなぁ、しかもそれは\0で完璧に埋めてくれるのかが疑問です。
あぁ・・・果てしない
0751デフォルトの名無しさん
NGNGファイルにマップされた「メモリ」だ。
ふつうにメモリ操作しとけ。
0752デフォルトの名無しさん
NGNGしてないだろ
0753デフォルトの名無しさん
NGNG・・・・・・・
・・・・・・・
hMapFile1 = OpenFileMapping(FILE_MAP_ALL_ACCESS, FALSE, "MyObject1");
//SetFilePointer(hMapFile1,0,0,FILE_BEGIN);
buf=(char *)MapViewOfFile(hMapFile1,
FILE_MAP_ALL_ACCESS, 0, 0, 0);
ハンドルが各プロセスに継承できるみたいですがまだやってません。
なので、毎回呼んでます。OpenFileMapping&MapViewOfFile
何千回もやるので、UnMapViewOfFileはフックの終了時
に一回だけやります・・・
0754デフォルトの名無しさん
NGNG手を抜くな。
0755デフォルトの名無しさん
NGNG0756デフォルトの名無しさん
NGNG0757デフォルトの名無しさん
NGNGでないとシステムにハンドルがどんどん溜まっていく。
特に別プロセス内(例えばエクスプローラとか)でハンドル作るので、
解放し忘れはシャットダウンするまで解放されない可能性があって、
非常に(゚Д゚)マズー!
0758デフォルトの名無しさん
NGNG0759デフォルトの名無しさん
NGNGこれは、例えば、
プロセスが10個走っていて、
DLLのコード領域だけでが1メガメモリを消費する場合、
最初から物理メモリは10メガ消費されるのでしょうか?
それとも、コード領域に変更があった時に初めてコード領域を
コピーするのでしょうか?
0760デフォルトの名無しさん
NGNGただしマップされるアドレスはプロセスごとに異なります。
んで、コード領域は読み出し専用なんで、変更できません。たしか。
データ領域はプロセスごとに用意されますです。
0761デフォルトの名無しさん
NGNG> 最初から物理メモリは10メガ消費されるのでしょうか?
No
> それとも、コード領域に変更があった時に初めてコード領域を
> コピーするのでしょうか?
Win NT/2000/XP 系では、その通り
Win 9x/ME 系だと、そもそも書き込めない (copy on write が実装されてないので)
だからシステム DLL に対してブレークポイントを設定できません
0762760
NGNGあ、NTはそーなんだ。情報さんくす。
0764デフォルトの名無しさん
NGNGぬわにぃぃぃ!笑われてしまいました。けどどーもうれしいっス。
FileMappingはなんだかmallocやglobalallocに似ていて、
これらの命令は大して時間のかからない命令だと聞いたことがあるので
そう思ってUnmapもいっぱいやることにします。クローズもやります。
返り値もやります。ありがとうございます
0765デフォルトの名無しさん
NGNGけれど、毎回openfilemapping,closehandleをしているのに、なんで
値が残っているのがわかりません。、たとえば、マッピングじゃ
なく、ほんもののファイルだったら、closehandleしても”ファイル名”の
ファイルが残るわけですけど、今回はいわば”MyObject1”というファイルが
残ると考えるのでしょうか。けれど、そのばあい、プログラムが終了しても、
”MyObject1”というファイルが、残ることとなり、これを消すにはどうしたら
いいかわかりません。MyObject1自体どこにあるかわからないし・・・・
0766デフォルトの名無しさん
NGNG新たに作られたウィンドウの下になってしまいます
常に最前面を保証することは出来ないんでしょうか?
0767デフォルトの名無しさん
NGNG0768デフォルトの名無しさん
NGNGリファレンスカウントがある。全部CloseHandleしたらファイルもなくなるはず。
ところで、Dllのロード時にOpenFile&MapViewしてアンロード時にUnmap&Close
してやればいいんじゃないの?まあ快適ならそれでいいけど。
0769デフォルトの名無しさん
NGNGOpenしたものだけじゃなく、Createしたものも含めて全部
アンマップ&クローズしたら、消えるはず。
0770デフォルトの名無しさん
NGNGそんなソフト使いたくない。邪魔だ。消えれ。
・・・という個人的な感情を置いとくなら、
タイマかなんかで常にSetWindowPosで前にもってくれば良いのでは?
0771デフォルトの名無しさん
NGNG0772t.t
NGNGBitmap AをWindowに描画して、Bitmap Aの座標系
でBitmap Bを回転して描画しようとしています。
回転させたBをAに描画しますと、白い隙間ができてしまいます。
何か方法がございましたらご教授願います。
0773デフォルトの名無しさん
NGNG何か方法って、何をどうしたいの?
0774デフォルトの名無しさん
NGNG0776デフォルトの名無しさん
NGNG作ってるのはスクリーンセーバなので常に最前面にあって欲しいのです
それと高速化のため描画をケチって変化があった部分だけにしてるので
他のウィンドウに前へ出てこられると画面に残ってしまうのが困るのです
0777デフォルトの名無しさん
NGNGスクリーンセーバーを終了というのはどうでしょう。
0778デフォルトの名無しさん
NGNGいちおうWM_ACTIVATEを拾って終わるようにはしてるんですが
なんか悔しいので常に最前面にする方法はないのだろうかと
ちなみに >>772 はBを回転してWindowに描画するのではなく
Windowをドット走査して回転後のBの範囲なら色を転写で済むかと
それから >>767 >>771 >>775 は逝って良しかと
0779デフォルトの名無しさん
NGNG納得いきました。ありがとうございます。
0780デフォルトの名無しさん
NGNG「あるドットが回転・拡大後にどこに当たるかを算定すると、
ドットが抜けて白くなったり、計算量が増えてイヤン。
拡大・回転後のドットが元々はどこにあったのか、を算定
すると、そのあたりが旨くいって(・∀・)イイ!」
という記事をどっかで、見たことがあるな。
0781デフォルトの名無しさん
NGNGコンパイルするんですか?
0782デフォルトの名無しさん
NGNGたまにぜんぜん違うので書かれてるかも知れない。
DDK嫁
0783デフォルトの名無しさん
NGNGフォントのベースライン位置を取得する方法はありませんか!
複数種類のフォントが混在する文字列を、
ベースラインにそろえてビシッと描画したいのです!
でもTextAlignは「ベースラインを指定」でなく「左肩」を指定したい!
(描画開始位置として左肩座標を指定し、かつ、
基準となるフォントのベースライン位置に
ほかのフォントのベースラインを合わせたい)
さぁ、君ならどうするッ!?
0784デフォルトの名無しさん
NGNG0785デフォルトの名無しさん
NGNG0786デフォルトの名無しさん
NGNGCマガジンぽい
0787デフォルトの名無しさん
NGNGうーん、しかしGetGlyphOutlineはあまりにも生っぽいかなぁ‥‥。
なんかもっと一撃でベースラインを得る手段が有っても
よさそうなもんなのになー。
「ベースラインから」指定で、メモリDC上に
背景塗りつぶしを伴う描画をさせ、
ピクセルを走査して実際に描画された高さを得て、
ベースラインからの上下高さを計算する
‥‥という泥臭い方法を思いついた。
だがもっとスマートなやり方きぼん。
>>784のレスにも愛を感じたYO‥‥アリガ�d
0789デフォルトの名無しさん
NGNGあ、そうか!!
TEXTMETRICの解説も目を通してたがBaselineって名前のメンバを探してた‥‥
しかしなるほどこれでいける!↓
http://akasaka.cool.ne.jp/phys/physjpn/htextmetric.htm
了解ッ! ありがとぉ!!
0790デフォルトの名無しさん
NGNGのですが、こういうのはどうしたらいいんでしょう。。
だいたいコンパイラとかはどうやって判別してるのかが疑問だし興味があります。
0791デフォルトの名無しさん
NGNG2 バイト文字の先頭バイトだったら (_ismblead()) 次のバイトを読み飛ばす。
マルチバイト文字列をやめて、ワイド文字列にしても良いけど。
0792デフォルトの名無しさん
NGNG0793デフォルトの名無しさん
NGNGdllを自作して使用したことがあって(GetProcAdressを用いて)。
あるんですが、どうも今回はGetProcAdress(hSoLib,"EnumProtocol")と
やっただけではカーネルの例外とかなにやらのページ違反がでるので
だめです。GetProcAdressで、windows\systemのdllを使う方法
とかを調べれば光が見えてくるでしょうか?
0794デフォルトの名無しさん
NGNGWinNT & VC++6(SP0かな)の環境だと、
wsock32.dllに実際に含まれているのは
EnumProtocolsA (forwarded to MSWSOCK.EnumProtocolsA)
EnumProtocolsW (forwarded to MSWSOCK.EnumProtocolsW)
で、EnumProtocols自身は、VC98/Include/NSPAPI.hで
上記のいずれかに#defineされてる。
本当にwsock32.dllでEnumProtocols()が提供されてる?
実際試してみたけど、GetProcAddress()はNULLを返すよ。
0795デフォルトの名無しさん
NGNG手っ取り早くtypeあるいはmoreすることです。そうすると、
EnumProtocolsAとEnumProtocolsWはあって、EnumProtocols()は
ないです。(ごめんなさい)けれど、EnumProtocolsAでさえ、
やはりGetProcAdressできません。(Win98、純粋なフリーコンパイラ)
main.cppの(my)includeファイルで、#define EXPORT extern "C" __declspec(dllexport) __stdcall
を使ったりするのか、、わかりません。また報告します
0796デフォルトの名無しさん
NGNGCDのオートランなんだけど
autorun.infに
[autorun]
OPEN=AUTORUN.EXE
ICON=AUTORUN.EXE
て今までかいていたのだけど
AUTORUN.EXEに引数を渡すのにはどうすればいいのでしょうか?
[autorun]
OPEN=AUTORUN.EXE -option
ICON=AUTORUN.EXE
だと動きませんでした。どこかにちゃんとしたドキュメントはないのでしょうか?
0797デフォルトの名無しさん
NGNG0798デフォルトの名無しさん
NGNG変えたいのですが、WM_CTLCOLOREDIT、SetBkColor()で
文字のある行の背景色は変わるのですが、何もないところの
色はシステムのカラーになってしまいます。全体的に背景色
を変えるにはどうすればいいんでしょうか。
0799教えてクン
NGNGあの,CreateFileA等のDLLのソースは
公開されてるのでしょうか?
それに,似たDLLを作りたいので,どなたかご存知の方
よろしくお願いします.
0800デフォルトの名無しさん
NGNGWM_CTLCOLOREDITで、背景にしたいブラシのハンドルを返します。
このハンドルはエディットボックスが存在する限り保持しないといけませんが、
最終的には自分で破棄してください。
0801デフォルトの名無しさん
NGNGAPIのソースは公開されてないはずです。
似たDLLって一体・・・?
0802教えてクン
NGNGそうですか,ありがとうございました.
ある理由でWinAPIが使えない環境なんで,
独自のAPIを作らなければいけなくなってしまって...
0803デフォルトの名無しさん
NGNGかわいそうに..
0804教えてクン
NGNGいえ違います.あるHWに特化していて,
WinAPIじゃ同期がとれないので,
作る羽目になりました.
もちろんWinAPIもコールできますけど,
NT系のOSだと,キャッシュとかするし,
まあ理由はいろいろです.
ソフト屋さんはHWのことあまり考えないからまいっちんぐ
0805803
NGNGNTならROWLEVELアクセスとかも一応あるから
それでがんばってみては?
0806デフォルトの名無しさん
NGNG<windows.h>を読み込めばいいのですか?
0807デフォルトの名無しさん
NGNG0808デフォルトの名無しさん
NGNG0809794だけど、795は793だよな?
NGNG乗りかかった舟なんで、もうちょっとつきあうけど、
WinNT & VC++6.0(sp0)の環境で、EnumProtocols()ではなく、
EnumProtocolsA()やEnumProtocolsW()に対してGetProcAddress()を試みると、
Non-NULLが返るんで、きちんとアドレスは取れている。
フリーのコンバイラを使ってるってみたいなんで、それ絡みかも。
参考までに、ソースも貼っとくね。
assert()で引っかからなければOK!
#include <windows.h>
#include <stdio.h>
#include <assert.h>
int main(void)
{
typedef INT (*func)(LPINT, LPVOID, LPDWORD);
HINSTANCE hDLL = LoadLibrary("wsock32.dll");
assert(hDLL != NULL);
func pEnumProtocols = (func)GetProcAddress(hDLL, "EnumProtocolsA");
assert(pEnumProtocols != NULL);
FreeLibrary(hDLL);
return 0;
}
0810教えてクン
NGNGThanx
0811デフォルトの名無しさん
NGNGやっぱ、VER_PLATFORM_WIN32_NT で、
verInfo.dwMajorVersion は6とか?
0812デフォルトの名無しさん
NGNG(僕はテキストエディタも作ってた進化する無料マニアです)
まずはありがとうございます。>809
インターネットに少しはまり過ぎてしまいまして、ちょっと
ネット疑惑症ぎみです。
結局自分のコンピュータから吐き出される情報(多分結局は文字列だと思う)と、
どこに発信されているかを、システムレベル(?)で捕らえたい
と思ってます。つまり自分(てめー)のコンピュータが何をしているか
くらいは知っておかなきゃあかん、くらいの意気込みで前向きにやってます。
通信に関しては初心者なので手当たりEnumProtocolsAから
入ってみようか、と思い立ちました。
アプリレベルのプロトコル(?)もあるし、直接文字列を取ってもよくわかんない
かも知れないんですが、とりあえずはそこからやるしかありません。
EnumProtocolsA以外に使える概念とか言葉があったら
適当に教えてください。(EnumProtocolsはまだうまくいって
ないですが、クリアしたいとおもいます)
0813デフォルトの名無しさん
NGNGフレームの表示にSetDIBitsToDeviceを使用しています。
どうやらSetDIBitsToDeviceが処理速度のネックになっているのですが、
より高速な手続きはあるのでしょうか?
0814デフォルトの名無しさん
NGNG画面とDIBのピクセルフォーマットを合わせること。
256色以下なら、パレットも完全に一致させること。
・・・要するに、色変換処理が起こらないようにしろってことだな。
それで速度が不足なら、DirectDraw でも使い給へ。
0815813
NGNGありがとうです。
>画面とDIBのピクセルフォーマットを合わせること。
というのは、24bitのDIBを転送するのであれば、
画面も24bitにしろってことでしょうか。
現在24bitのDIBを転送しているのですが、画面のプロパティで
24bitに設定するより16bitに設定した方が速い感じです。
0816デフォルトの名無しさん
NGNGWindows XP は確か Windows NT Ver. 5.1 です。
Windows 2000 とはわずか 0.1 しかバージョンが違いません。
0817デフォルトの名無しさん
NGNGbit合わせはチップセットとVGAカードによる
http://www2.bbspink.com/test/read.cgi/erog/999446678/329-404
取り合えず前、調べられる範囲で調べた結果だがこんな結果になった
個人的にはなんとも言えないという感じなので処理の都合で考えるといい
VGAのVRAMにアニメーションデータが入りきるならDirectDrawは100%有効
でなきゃ逆に遅くなる場合もある
アニメーションなら場合によってはオーバーレイサーフェイスが有効かも
取り合えず今24bitデータで持ってるなら
データ自体を16bitへ落すことを考慮すべし
それだけで大幅に変わるはず
あと本当にSetDIBitsToDeviceがボトルネックなの?
HDDとかじゃなくて?
0818デフォルトの名無しさん
NGNG結局EnumProtocolsAは、スタティックライブラリにありました。
(前はAが抜けていた)いやしかーーーし。
システムにはいっぱいDllが転がっているので、これを使えるようになるために
思い、GetProcAddressにこだわりました。
WSOCK32.DLLからGetProcAddressを使うには、
Kernel32.dllのGetModuleFileNameExが、ヘッダtlhelp32.hを用いて
使えることを参考にしたんですが、
typedef int (WINAPI* PENUMPROTOCOLS)(LPINT,LPVOID,LPDWORD);
int WINAPI EnumProtocolsA(LPINT,LPVOID,LPDWORD);
・・・・・・
fpEnumProtocols =(PENUMPROTOCOLS)GetProcAddress(hSockLib,"EnumProtocolsA")
とやればうまくいきます。EnumProtocolsAの宣言がないと、fpEnumProtocols(1,2,3);
の代入のところでプログラムが凍り、フリーライブラリすると画面が消えるはめはめマン
でした。あぁ、これでこれからはいざというときシステムDLLが使える(ます)
しかし、結局EnumProtocolsって何の役に立つんですか?
表示したらf・とか表示されて終わってしまいました。僕は疲れました。
・・・漏れはなかなかやる男でした。これからもいろんなことを教えてください。
0819デフォルトの名無しさん
NGNGとか、も知りました。externがグローバル宣言だつーのも
再認識しました。でもアンダーバーの意味がわかりません。。
あぁ・・・・・・
0820デフォルトの名無しさん
NGNGアンダーバーはMicrosoft独自拡張を意味する。
とヘルプにも書いてあると思うけど。
0821デフォルトの名無しさん
NGNG環境によっては、DIBSectionにしてそのHBITMAPで描画すると
わずかに速くなる場合もある。
0822811
NGNGそうなんだ〜。>XP=NT5.1
つまり、XPは2000との違いはインターフェースだけで
中身はほとんどカワランということ?(w
0823デフォルトの名無しさん
NGNGなにを今更・・・
0824デフォルトの名無しさん
NGNGアンダーバーが1つと2つでどう違うのかも、なぞです。
(僕にはヘルプもないんです汗)
0825デフォルトの名無しさん
NGNGその方法だと、DLLメインのプロセスでしか
ハンドルが定義されないため、フックを掛けた
他プロセスでは改めてOpenFileMappingを被フック
プロセスごとにやらないとだめです。
(主DllでのCreateFileMappingとCloseHandleも
結局一回づつはやりますが。)
>>809
assertありがとうございました。
0826デフォルトの名無しさん
NGNGなぜ無いの?
0827デフォルトの名無しさん
NGNGこないョ・・・(クラックなんかしてないョ・・・前は、ゲームとかは・・(謎))
0828デフォルトの名無しさん
NGNG俺のお気に入りにある目くるめく
参考HTMLの数々を見せてあげたい
0829デフォルトの名無しさん
NGNG0830デフォルトの名無しさん
NGNG0831デフォルトの名無しさん
NGNGお気に入りを圧縮するくらいはワケナイゾ
!??
0832デフォルトの名無しさん
NGNG適当に使ってるから、用法あってるのか心配になってきたよ。
ここ以外で一つよろしく http://www.codeproject.com/wtl/
0833デフォルトの名無しさん
NGNGなぜMSDN Onlineを使わないんですか
0834デフォルトの名無しさん
NGNG複雑すぎて使えない。関数の検索をして
ひっかかったものをお気に入りに入れるくらい。
>>833
0835デフォルトの名無しさん
NGNG0836デフォルトの名無しさん
NGNG0837デフォルトの名無しさん
NGNGDirectXのヘルプが英語ででてくるのでビビって読めない、の間違いだろ。
0838832
NGNGマジすか(;´Д`) 今やMFCやATLに変わるスタンダードだと思ってたよ。
あたしゃネット環境すら整ってない化石野郎なもので…。.NETなんてしりません。
こんなに便利なのに…、流行ってないならやっぱ使わない方が
良いのかなぁ。いや将来の事を考えての話です。レスどうもでした。
0839デフォルトの名無しさん
NGNGって事でC#やれ
0840デフォルトの名無しさん
NGNGTonyさんですか?( ´Д`;
>>825
え、フックでインストールされた時でも、そのプロセスでDllMainは呼ばれるよね?
違ったっけ。
0841デフォルトの名無しさん
NGNGMSのサイトからPlatformSDKのドキュメント落としてくれば?
0842デフォルトの名無しさん
NGNGMSDNがほぼ上位に引っかかるんだが。
0843813
NGNG>>817
>データ自体を16bitへ落すことを考慮すべし
>それだけで大幅に変わるはず
これが、少し面倒なので24bitでデータを持っているのですが、
勉強だと思って16bitでいけるように努力してみたいと思います。
>あと本当にSetDIBitsToDeviceがボトルネックなの?
>HDDとかじゃなくて?
メモリ上にデータがあるので、HDDは関係ないです。
SetDIBitsToDeviceをなしにするとfps 55くらいなんですが、
ありだとfps 45程度です。
>>821
どこかで見た気がします。
調査してみます。
0844813
NGNG>環境によっては、DIBSectionにしてそのHBITMAPで描画すると
>わずかに速くなる場合もある。
CreateDIBSection&BitBltにしたらfpsが1,2近くあがりました。
感謝。
0845デフォルトの名無しさん
NGNGつーか、不便には違いない<英語。sdkのヘルプみたいのも
あるけど、話してたのはそのヘルプのことじゃあなくて、
アンダーバーのことが書いてあるヘルプなの。
0846デフォルトの名無しさん
NGNGオンメモリにもてる程度のデータ量ならDirectDrawもいけるかもね
VRAM容量がふんだんにあることが認識できたらDirectDrawルーチンに
切り替えるとかやってみたら?
というか45FPSで納得できないんか?(´Д`;)
0847デフォルトの名無しさん
NGNGアンダーバー云々もMSDNに書いてあるんだが。
0848デフォルトの名無しさん
NGNGMSDNの「Windows 2000 アプリケーションの互換性」に、
「Windows 2000 では、特に Ultra 66 IDE デバイスのように、新しいデバイスを
サポートするときには境界合わせが多少異なる場合もあります。」
とあります。
「多少異なる場合」ってどんな場合で、どう異なるんですか?
0849813
NGNGDirectDrawへの変更も考えてみます。
>というか45FPSで納得できないんか?(´Д`;)
まだ、完成していないんです。(´Д`;
30fpsまではOKだと考えていますが、転送はけっこう時間を食っているので。
fps落ちたら、転送はあまり重要でなくなってくる・・・のだろうか。
0850デフォルトの名無しさん
NGNG目の酷使を避けることは僕の中で優先順位高いんです
0851デフォルトの名無しさん
NGNGてめえの都合なんか知ったことかよ。
目を使いたくなかったらvia voiceでも入れろ。
そんなのを2chで教えてもらおうなんて虫が良すぎる。
0852デフォルトの名無しさん
NGNG850 != 弱視 ? 禿同
0853デフォルトの名無しさん
NGNGオメーにオセーてもらったかどうかなんてわかんねーんだYO
どうせ低スキルの癖にYO
うせな
0855デフォルトの名無しさん
NGNG│□ ■2ch BBS ..− Microsoft Internet Explorer 囗曰区||
├───────────────────────┬─┤
│ファイル(F) 編集(E) 表示(V) お気に入り(A) モナー(∀) |::田|
├────────────────┬──────┴─┤
| ← → × 圍 合 | Q 》|
| 戻る 進む 中止 更新 ホーム | 検索 |
├────┬───────────┴──┬─┬───┤
│アド レス(D) | □http://www.2ch.net/2ch.html |▼|⇒移動|
├────┴───┬┬─────────┴─┴──┬┤
│ ├┤ ├┤
|LINUX || ||
│UNIX || ||
│プログラマ. ┌───────────────────────┐
│プログラム技| 2ch |
│ ├───────────────────────┤
│ | >>853 は不正な処理を行いました。 ┌───┐ |
│ | 残念ですが >>853 の人生を | 終了 | |
│ | 終了させてあげて下さい。(推奨) └───┘ |
│ | |
│ └───────────────────────┘
│特別企画 ├┤ ├┤
├┬──────┬┼┼┬────────────┬┼┤
├┴──────┴┴┴┴──┬─┬─┬─────┴┴┤
│□ エラーが発生しました | | |●インターネット |
└─────────────┴─┴─┴───────┘
0856デフォルトの名無しさん
NGNGCreateDIBSection()
0858gler
NGNGQueryPerformanceCounter();
この2つの使い方教えてください。
0859デフォルトの名無しさん
NGNGなぜMSDNを(以下略
0860gler
NGNG0861デフォルトの名無しさん
NGNG共通の基底クラスから派生したクラス。
ex)
class A;
class B : public A;
class C : public A;
のとき、BとCは相互にブラクラである。
ex)
class A;
class B {
A a;
};
class C {
A a;
};
のとき、BとCは相互にシスクラである。
0864デフォルトの名無しさん
NGNG0865デフォルトの名無しさん
NGNGの完成だ!バンザイ
ある関数の中の変数名だけ変えたいときとかあんだろ?
そういう風にしたのダ
リストビューは複数選択の選択されているものの番号インデックス
を得るListView_GetNextItem(orLVM_GETNEXTITEM同じだゴルぁ)
は再起的に使うことを中心に説明しとけよ。ちょっとてこずったゾ
ちなみに着色ルーチンも強化したんだゴルぁ。
ダイアログコールバック内でのstaticの大切さについて教えてください
僕はGetDlgItem(hDlg,...)使ってるけどHWND hLview=クリエイトリストビュー
はstatic HWND hLviewでないといけないんです。あとchar str[64]も
static char str[64]じゃないとだめです。なんとstrlen(str)は、strに
きちんと文字列が入ってるのにもかかわらず常に7とかいってます。なんで?
staticについて教えてください
0866デフォルトの名無しさん
NGNG0867デフォルトの名無しさん
NGNGこんなものなのでしょうか?
こんな感じです。
MessageBoxEx(Handle, &BoxMsg[1], &BoxCaption[1], MB_YESNO|
MB_ICONQUESTION|MB_APPLMODAL, LANG_ENGLISH )
0868デフォルトの名無しさん
NGNGMessageBoxEx() のヘルプから抜粋
> それぞれの言語にローカライズされた Windows 95/98 や Windows NT/2000 は一般に、
> 特定の言語セットのリソースだけを保持していることに注意してください。たとえば、U.S. 版
> は LANG_ENGLISH、フランス語版は LANG_FRENCH、ドイツ語版は LANG_GERMAN、日
> 本語版は LANG_JAPANESE を提供します。
俺も詳しくは知らんが、日本語版の Windows で実行する限り LANG_ENGLISH 使えんので
は?
0869デフォルトの名無しさん
NGNGさえぎられると消えちゃうんだけどどーしたらいいかな
0870デフォルトの名無しさん
NGNG0871デフォルトの名無しさん
NGNGソレが自然だとは思うが、alpha-blendでも使ってみるか?
0872デフォルトの名無しさん
NGNGディスプレイに油性マジックで書けば消えないよ!
0873デフォルトの名無しさん
NGNGまた書き直す
0874クロスボウとやら
NGNGマルチもモニタ環境で任意のモニタにウィンドウを表示させるには
どすればいいのでしょ?とりあえず、モニタの列挙とかやってみたいんすけど。
それ関係のAPIがあれば教えて下さい。
マルチモニタは、デュアルヘッドとかじゃなくて、ビデオカードが2枚
刺さってるタイプっス。DirectXには依存したくないです。
0875デフォルトの名無しさん
NGNGつか、マルチディスプレイの制御は、GDIですらDirectXに頼ってるから
DirectX以外に方法はないと思う。
0876デフォルトの名無しさん
NGNGによって
プレイバックツールを作成中に気付いたんですが
Windowsキー関連の動作がプレイバックされません
ログを取ってみると
イベント自体はしっかり投げていますが
単純に無視されているようです(前後の他の動作は問題ない)
これは仕様なんでしょうか?
参考までに環境
VC++6.0、Win2k&Win98
0877デフォルトの名無しさん
NGNG今度は消せなくなったんですけど(;_;)
どんなAPIで消せますか?
0878デフォルトの名無しさん
NGNG模型店でラッカー薄め液を買ってきましょう。
0879デフォルトの名無しさん
NGNG0880デフォルトの名無しさん
NGNG燃えないゴミの日に出しましょう。
きれいサッパリ消えます。
0881デフォルトの名無しさん
NGNGこういう事はできるんですか。
0882デフォルトの名無しさん
NGNG意味が分かりません。
MFC Appウィザード(DLL)で作ったDLLはDLLをロードできる言語でたいていロードできます。
(引数とかにクラスなんか使っていなければ。)
後、名前が変に変形するので前もってチェックして下さい。
0883デフォルトの名無しさん
NGNGでもMFC側でC用のインターフェースルーチンを作った方が10倍簡単
クラスインスタンスは void * で渡せ
0884超初心者
NGNGCreateFileで開いた通信リソースに、WriteFileで書き込みをするなどの操作をすると、
たまに「ERROR_OPERATION_ABORTED」エラーが返ってきます。ひどいときには
一度閉じないとどうにもならなくなっちゃいます。
もともとwin98で動いていたソフトでそのときはなんともなかったんですが
win2kで動かしてみたらこんなことが起こるようになってしまいました。
作った人はもういないし、私はCしかわからないし、ヘルプやらなにやら見てももう
お手上げです。
何でもよいのでヒントとかあったら教えてください。お願いします。。
0885879
NGNGその手があったか(・∀・)!
ありがとう!
0886881
NGNG「MFC の共有 DLL を使用」の方でやったらできました。
0887デフォルトの名無しさん
NGNG仮想キーコードリストに載ってなかったもんで、どうしたものやら。。
0888デフォルトの名無しさん
NGNG0889デフォルトの名無しさん
NGNGWH_JOURNALPLAYBACKってWH_WNDPROCとどうちがうの?
0890デフォルトの名無しさん
NGNG何故MSDNを(以下略
0891876
NGNG調べてたらMSDNに思いっきり書いてあったよ〜
仕様だそうだ・・・
さて、回避方法あるんかな・・・
0892クロスボウとやら
NGNGレスどうも。
>>GDIですらDirectXに頼ってるから
マジっすか?
なんとなくEnumDisplayMonitors()ってやつが使えそうです。
ttp://sysneitf.hoops.ne.jp/monitors.html
0893デフォルトの名無しさん
NGNGGetLastError() の値は調べた?
0894超初心者
NGNGはい、そうすると995ってエラーが返ってきちゃうんです。
非同期書き込みを行っているのですが、Witefile()が失敗(0返ってきた)したときの
GetLastError()の値は995(ERROR_OPERATION_ABORTED)か
997(ERROR_IO_PENDING)です。
995が返ってきたらGetOverlappedResult()で処理が終わるのを待とうとするのですが
これも失敗することがあって、このときのGetLastError()の値は995でした。
こんなときはどういう原因を考えればいいんでしょう・・・
0895デフォルトの名無しさん
NGNG995(ERROR_OPERATION_ABORTED)の意味は、
「The I/O operation has been aborted because of either
a thread exit or an application request.」
(スレッドが終了したか、アプリケーションが要求したから)
とあるな・・・
08961
NGNGファイル書き込みをする場合、
バッファリングは不要でしょうか?
それとも,バッファリングした方が効率が上がるのでしょうか?
0897デフォルトの名無しさん
NGNG相手が普通のファイルならファイルシステムレベルでキャッシュ&バッファリング
してるから、アプリで余計なことしない方がいい。
0898デフォルトの名無しさん
NGNG胴衣。漏れなんか、10バイトずつでも
毎回 WriteFile(...) してるぞ(ワラ
0899デフォルトの名無しさん
NGNGドロップされたかどうか分かる方法ってありますか?
0900デフォルトの名無しさん
NGNGキーボードフックして、適当にメッセージ置き換えてます。
なんとかFとかスペースなど、単体のキーはPostMessageでそのアプリに
送れるのですが、肝心なctrl+F等の複合キーの送り方が分かりません。
ctrlとFを同時に送ってもうまくいかなくて…何かご存じの方アドバイスお願いします。
0901デフォルトの名無しさん
NGNGそのハンドラでGetAsyncKeyStateで調べればいいのでわ?
0902デフォルトの名無しさん
NGNGWM_KEYUPとかWM_KEYDOWNをひっかけてるなら、lParamの上位ビット。
詳しくはMSDNで。
0903900
NGNGありがとうございます!>>901みて、アプリ側でctrl検出してたら駄目じゃん
…とか思って絶望してたところです。まだよく理解できてないのですが
できると分かっただけでやる気倍増です。感謝感激
0904デフォルトの名無しさん
NGNGGetAsyncKeyState(WM_LBUTTON)とやっても、右でも左でも0が帰ってきてしまうです。
つーか、ドロップされた時点ではボタンは離されてるんでこれでは駄目なようです。
やっぱり、OLE D&Dにするしかないのかなあ・・・
0905デフォルトの名無しさん
NGNG仮想キーコード間違ってない?
0906デフォルトの名無しさん
NGNG0907デフォルトの名無しさん
NGNGレス書いたときのtypoでした。すいません。
0908FTO
NGNGある矩形内のグラフィックを回転させて別の場所に画像を表示させるAPIとかってありますか?
やっぱり回転変換させてやらないとだめなんでしょうか。
0909デフォルトの名無しさん
NGNGないと思う。
0910デフォルトの名無しさん
NGNGWindows95が対象外になってしまうけど。
ひとつの案として言ってみた。
0911デフォルトの名無しさん
NGNG方法はないのでしょうか?(NOTIFYICONDATAのszTip程度の情報で良いのですが)
今できていることはタスクトレーのハンドル(クラス名は"TrayNotifyWnd")
を取得することぐらいです。
0912デフォルトの名無しさん
NGNGを捕まえてます。捕まえたとき、WM_LINEFROMCHARを送って行番号を
取得してるんだけど、キーアップの時はWM_LINEFROMCHARはうまく行番号
をとれるんですけど、マウスアップの時は、うまくいかない。
コントロールがそのとき同時にマウスアップのときにラインナンバーを
決定してるからかもしれないんだけど、どーもうまくやる方法ないかな。
EN_SELCHANGEのマスクを解除して(付けて?)良さげだけど、あんまり
メッセージ増やりたくないし、うまい方法ないかな
0913デフォルトの名無しさん
NGNGDelphi のコードですまんが、うまくいったよ。
procedure TForm1.Memo1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var
st,ed,ln:DWORD;
begin
SendMessage(Memo1.Handle,EM_GETSEL,WPARAM(@st),LPARAM(@ed));
ln := SendMessage(Memo1.Handle,EM_LINEFROMCHAR,WPARAM(ed),0);
Label1.Caption := IntToStr(Ln);
end;
0914デフォルトの名無しさん
NGNG//Lindex = SendMessage(hMyEdit,EM_LINEFROMCHAR,-1,0);
SendMessage(hMyEdit,EM_EXGETSEL,0,(LPARAM)&Pchr);
Lindex = SendMessage(hMyEdit,EM_EXLINEFROMCHAR,0,(LPARAM)(DWORD)Pchr.cpMin);
ShowInformation(GetParent(hMyEdit),500,50,Lindex,"%-d行目です ");
break;
WM_KEYUPのときも同様な処理でそっちはうまくいくんだけど、
こっちがうまくいかない。もういっそのことあきらめようかとも
思ってる。ちなみにmfcなしでイベントハンドラ云々って扱えるの?
つーか、、マウス押すと(Lindexは0を返す)
選択範囲があるとき(色が反転してるとき)、選択範囲の上で
もう一度クリックすると、そのときだけ正しいラインを返すのです。
0915デフォルトの名無しさん
NGNG0916デフォルトの名無しさん
NGNG世話かけました。。
0917913
NGNG>SendMessage(hMyEdit,EM_EXGETSEL,0,(LPARAM)&Pchr);
>Lindex = SendMessage(hMyEdit,EM_EXLINEFROMCHAR,0,(LPARAM)(DWORD)Pchr.cpMin);
>WM_KEYUPのときも同様な処理でそっちはうまくいくんだけど、
>こっちがうまくいかない。
EM_EXGETSEL も EM_LINEFROMCHAR も Lparam と Wparam の
設定が変なような気がするが?
0918デフォルトの名無しさん
NGNGEM_EXGETSEL
wParam = 0;
lParam = (LPARAM) (CHARRANGE FAR *) lpchr;
EM_EXLINEFROMCHAR
wParam = 0;
lParam = (LPARAM) (DWORD) ichCharPos;
(宣言はCHARRANGE Pchrにて)
おいらのヘルプじゃこうなってる。EXLINEFROMCHARとLINEFROMCHARでは
LPARAMとWPARAMが逆らしいんだけどなぁ。
で、結局、イベントマスク設定して、親ウィンドウでNOTIFYでWM_LBUTTONUPを
捕らえる方法でやるとうまくいきました。ほんとはサブクラス化のコールバック
内で全部一括して扱いたかったんだけどね。やっぱ、サブクラス化の方のコール
バック内ではWM_LBUTTONUP(DOWNは問題ない)の送られ方がちょっと違う。
他ウィンドウにあったフォーカスがコントロールに移る時だけはWM_LBUTTONUPは
送られてくるみたいだけど、いったんコントロールのキャレットにフォーカスが
移ると、LBUTTONUPはもう送られてこない。もよう。
0919デフォルトの名無しさん
NGNGメインWndProc内でCHARRANGE Pchrを宣言すると、
なぜか描画がおかしくなる。(これを消すと描画は問題ない)
static CHARRANGE Pchrとかやると、描画のおかしさが変化するし。
(Pchr自体使わなくてもそうなる)
PAINTSTRUCT paintをstatic PAINTSTRUCT paintとかやってもだめだしなぁ。
ちょっとメモリリークとかにも興味持ち出したし、この辺、どう?
はっきりいってただのCHARRANGE Pchrの宣言が引き金にはなってるんだけど、
CHARRANGEなんてPAINTSTRUCTとかHDCとかともかけ離れた存在のようにも
見えるし、関係性がわからない。BeginPaint,EndPaintとかの開放も(DeleteObjectとかも)
注意はしているのにですな。
0920デフォルトの名無しさん
NGNGいってるけど、気になる僕に一言とか二言もよろしくお願いしたいです)
0921どなたかご存知?
NGNGWM_USER+αでウィンドウメッセージを多数使用している画面があって、
且つ取りこぼし厳禁。
なんで、キューイング数の上限を知りたいのですが。
0922913
NGNGおー、エディットコントロールではなく、リッチエディットコントロール
ですね。びっくりした。
>>919
>サブクラス化の方のコール
>バック内ではWM_LBUTTONUP(DOWNは問題ない)の送られ方がちょっと違う。
そうか。元のウィンドウ関数は、最初に実行してるの? それとも後?
>919
>BeginPaint,EndPaintとかの開放
元のウィンドウ関数を、最初に実行してるんだったら、これは必要ないのでは?
WM_PAINT を処理する必要があるの?
0923デフォルトの名無しさん
NGNG頻度的には、どれくらいのもんなんでしょ?
空リソース量とかいった、そのときの状況に依存したりするもんなのかなぁ...
0924デフォルトの名無しさん
NGNGあぁ、ペイント処理は、まったく別問題なんだけど、
BeginPaintとEndPaintはWM_PAINT(WndProcの)でやってること
なんだけど、まぁ、つまり、とりあえずWM_LBUTTONUPの
あれを、NOTIFYでやってやっとこさ、うまくいったんだけど、
そのあと、今度は描画に問題が出てしまったもんだから、
(BeginPaintとEndPaintのことを)書いた。(描画のとこの
割り当てと開放とかの問題じゃたぶんない、と言いたかった)
ただCHARRANGE Pchrを宣言するだけでなぜか描画がおかしく
なる・・・と。
えーっと、CallWindowProc(org_proc...)は最後で呼んでるから、後、って
ことかな。
0925デフォルトの名無しさん
NGNGHWNDは?
0926913
NGNG>えーっと、CallWindowProc(org_proc...)は最後で呼んでるから、後、って
>ことかな。
今回の問題とは関係ないかも知れませんが、とくに元のウィンドウ関数の内容を
書き換える、などの特殊事情がないかぎり、サブクラスのウィンドウ関数では
もとのウィンドウ関数を最初に実行しておくことをお薦めします。特に、描画
関係では WM_PAINT に伴う、BeginPaintとEndPaint の特殊性から、先に元の
ウィンドウ関数を実行しておかないと、表示が変になることがあります。わた
しも以前経験しました。そして、サブクラスのウィンドウ関数で WM_PAINT を
処理するときは、GetDC() と ReleaseDC() を使った方が良いです。
>ただCHARRANGE Pchrを宣言するだけでなぜか描画がおかしく
これについては全く分かりません。すみません。
0927923
NGNGNULLじゃないです。
0928デフォルトの名無しさん
NGNG連続してSetTimer()を呼び出してみたけど、
2490個タイマーを作ったところで戻り値0になった。
GetLastError()は120。OSはWindows 98。
それまでは指定したのと同じ値が返ってきた。
今までもWM_TIMERのハンドラでタイマーIDは定数で
コーディングしてきたけどタイマーが動かなかった
ことはない。
0929デフォルトの名無しさん
NGNG変数を宣言しただけで挙動が変わる、というのならバッファオーバーランを疑うなあ。
それか、未初期化のポインタを使ってるとか。
0930デフォルトの名無しさん
NGNGMSDNのSetTimerの説明には、nIDEventパラメータで指定した値が
WM_TIMERのwParamに入ると書かれているから、定数で問題ないと思われ。
0931923
NGNGわざわざ実験どうもです。
自分も、返り値が違うといった場面に遭遇した事が無いんだよね...
そういうものなのか...
0932デフォルトの名無しさん
NGNGだよねー。
MSのサンプルとかも定数だし。
一応、SetTimer()の戻り値はタイマ識別子だから、
引数で100を渡して300が返ってきたら、要求したタイマ識別子は100でも
実際のタイマ識別子は300、ということでwParamには300が入ってくる
罠かと思って。
0933デフォルトの名無しさん
NGNG0934デフォルトの名無しさん
NGNG>>913
描画に関してはまったく疎かったんだけど、結局は、
case WM_CREATE:
で、
hWndRadio = CreateWindow(....);
の直後に、
hFont=(HFONT)SendMessage(hWndRadio, WM_GETFONT, NULL, NULL);
をやっていたのが原因だった。多分うまく取れていなかった。
直後だとコントロールフォント自身のフォント設定が
不安定っぽい感じだった。Sleep()とか使ってもだめだった。
結局hFont=(hFont)GetStockObject(GUI_DEFAULT_FONT);GetObject(...)
で、ややこしいlfをこれまたいろいろ試してやっと大丈夫になった。
WM_GETFONTでうまく取れたように見えてたのはなんかの偶然だった。
あぁ、つかれた。でも結局メモリリーク関係なかったけど、
おかげで外国産のいいものを手に入れた。英語で感謝してきました。
フォントがうまくいってたやつを、それでデバッグモードで起動すると
文字がおかしくなることも結構助けになたヨ。おかげでいまでは
デバグモードで起動しても問題なく動く。
あぁ、お疲れ様といってください
0935デフォルトの名無しさん
NGNG0936デフォルトの名無しさん
NGNGそれとも、クッキーは別関数で送るのでしょうか?
クッキーの送り方が解らないので、知りたいです。
0937デフォルトの名無しさん
NGNGイベント追加可能なDialogを後から挿入することって出来ますか?
普通にDialog挿入するとテンプレート作ってくれないですよね…。
今は仕方がないのでDialogベースの仮プロジェクト作って
あとから本プロジェクトにコピペしてるのですが色々、管理が面倒で…。
WTL、情報が少なくて参ってます。ご存じの方、どうか宜しくお願いします。
0938デフォルトの名無しさん
NGNG0940936
NGNG俺も(W
0941亜井 上男
NGNG同一ファイルに書き込みを行いたいんですが、どのような排他制御を
行えば完璧でしょうか。
0942デフォルトの名無しさん
NGNG0943デフォルトの名無しさん
NGNG0944デフォルトの名無しさん
NGNGlpszHeadersに"Cookie: CUSTOMER=WILE_E_COYOTE"とかを入れればよいだけでは。
HTTP Cookieの仕様はhttp://www.netscape.com/newsref/std/cookie_spec.htmlあたりで。
0945デフォルトの名無しさん
NGNG3つのことで困ってます。
・プログラム側からテキストを出力する方法
・ENTERで入力された行を取得する方法
・バッファの上限に行くと入力出来なくなるのを回避する方法
もしかしてエディット コントロール使うこと自体間違っているのかな?
誰か教えて。
0946デフォルトの名無しさん
NGNGエディットコントロール使うこと自体間違ってる。
教えたよ。
コンソールをアロケートするヨロシ。
0947デフォルトの名無しさん
NGNGエディットコントロール作ってあたかも一つのウィンドウの
ように見せる。行の取得はリターンキーのKeyonとかを
捕らえる。とかね
0948945
NGNG>>946
エラーやログ表示+若干のコマンド(オリジナル)が
実行出来るような物がほしいもんで。
コンソールだとちょっと使い勝手が…。
>>947
DOS窓のように、出力の一部だけ保持するような物が作りたいのですが、
エディットコントロールで文字吐きつづけるとバッファが一杯一杯になってしまうんで。
バッファが一杯にならないように始めに書いた奴から消していくには
どうしたら良いのやら…
0949デフォルトの名無しさん
NGNGコントロールに頼らず自分で描画するようにすればいいだろ?
0950デフォルトの名無しさん
NGNG問題だよね。・・・・(ひょっとしてできる人?)
だったりして(爆)
0952デフォルトの名無しさん
NGNG大きさにしてたいしたことないから、org_bufとbuf
をやって処理したほうが安全なのかな、
org_buf[1024]
buf[1024]
char *lpbuf
.......
if(strlen(org_buf)>1024-コンソール一行分の最大バイト)
lpbuf=strstr(org_buf,"\r\n")(みたいな)
strcpy(buf,lpbuf);
strcpy(org_buf,buf);
やればできるさ!
0953デフォルトの名無しさん
NGNG0954デフォルトの名無しさん
NGNGウインドウの一部に組み込んで使えるような奴がほしい。
たとえて言うならなんだろな?
VCのアウトプットウインドウに入力足した奴??
それをエディットコントロールで簡単に出来ないものかと考えたんだけど…
ちなみにコンソールって、AllocConsoleしかやったこと無いけど
ウインドウ側でコンソール閉じたときにメインプログラムが終了しないように出来る?
0955945
NGNG説明が下手で
(;´Д`)スマソ
0956936
NGNG遅レスすみませんでした。
ありがとうございました。
英語ドキュメントは何とか読んでみます。
0957デフォルトの名無しさん
NGNG子供のポップアップスタイルのダイアログボックス
は親の後ろに隠れません。隠れるようにしたいんだけど、
これがなかなかできそうでできません。どこのあたりに
どんなフラグくっつけたらいいのでしょうか。
0958デフォルトの名無しさん
NGNG0959デフォルトの名無しさん
NGNGだが、98%そのプログラムはクソプログラムだ。
0960デフォルトの名無しさん
NGNGメモリ空間が書き込み時コピーで処理されると理想です。
0961デフォルトの名無しさん
NGNG・cygwinのforkを使う
・forkではなく、CreateProcessで使える方法を考える
・MSに就職/ソースコード入手して、Win32にforkを実装する
お好きなのをどうぞ。
0962デフォルトの名無しさん
NGNGPOSIX サブシステムを使う、というのは?
0963デフォルトの名無しさん
NGNGなんで糞プログラムなのか理由を教えてほしいョ
0964デフォルトの名無しさん
NGNG0965デフォルトの名無しさん
NGNG>>959
俺も教えてほしいョ
NULLで作成すると、そのウインドウがタスクバーに表示される。
これをどうにかしたい。
0966デフォルトの名無しさん
NGNG0967デフォルトの名無しさん
NGNGモードレスダイアログを作りたいんだけど如何すればよろしゅう?
0968デフォルトの名無しさん
NGNGではいかんの?
0970デフォルトの名無しさん
NGNGそんなものが TT
マジありがとうございました
なんでみつからなかったんだろ、ダハハ
0971デフォルトの名無しさん
NGNG親ウィンドウのキャプションクリックしたとき全ヴ後ろに隠れてくれないと
ストレスがたまって来るから
0972デフォルトの名無しさん
NGNG0973デフォルトの名無しさん
NGNG0974デフォルトの名無しさん
NGNG0975デフォルトの名無しさん
NGNG0977>>597
NGNGモーダルダイアログで実現させたい、みたいなワケワカラン事
云うわけ?
0978デフォルトの名無しさん
NGNG0979デフォルトの名無しさん
NGNG957 のような質問は、ウィンドウの所有関係(たぶん親子関係も)を
良く知らないためだと思います。このような仕様は、Windows の動作
としても変ですし、ユーザにとってもストレスのあるものに違いありません。
質問者には、モードレスダイアログとモーダルダイアログとの違いをよく研究し、また
トップレベルウィンドウの相互の所有関係について調べることをお薦めします。
0981デフォルトの名無しさん
NGNGレス数が950を超えています。1000を超えると書き込みができなくなります。