Win32API 質問箱 Build5
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
NGNGやさしいお兄さんたちが答えてくれるかも。
でも、最低限Web検索ぐらいはしてね。
前スレ
Win32API 質問箱
http://pc.2ch.net/tech/kako/991/991576947.html
Win32API【2】
http://pc.2ch.net/tech/kako/1006/10067/1006783012.html
Win32API 質問箱 Build3
http://pc.2ch.net/tech/kako/1006/10067/1006783012.html
Win32API 質問箱 Build4
http://pc3.2ch.net/test/read.cgi/tech/1023361418/
参考
MSDN Online
http://www.microsoft.com/japan/msdn/default.asp
猫でもわかるプログラミング
ttp://www.kumei.ne.jp/c_lang/index.html
0002デフォルトの名無しさん
NGNG0003デフォルトの名無しさん
NGNG乙
0004デフォルトの名無しさん
NGNGMS、和解案準拠で各種の通信プロトコルとAPI公開へ
http://www.zdnet.co.jp/news/0208/06/nebt_01.html
米マイクロソフト、ウィンドウズのコードを一部公開へ
http://www.cnn.co.jp/business/K2002080600088.html
0005デフォルトの名無しさん
NGNG> やるなら、
> if (CharPrev(lpszPath, lpszPath+lstrlen(lpszPath)-1) != '\\')
> lstrcat(lpszPath, TEXT("\\"));
> とかだろ。
これは
if(lstrcmp(CharPrev(lpszPath, lpszPath+lstrlen(lpszPath)-1), TEXT("\\")))
lstrcat(lpszPath, TEXT("\\"));
ってことかな?
これも「も\\」になるのだけど。
0006デフォルトの名無しさん
NGNGチョット(・∀・)ワクワク!!
0007デフォルトの名無しさん
NGNGそんなのがあったのかー。MSならやりそうなこった。
だんだんWindowsで作るのが馬鹿らしくなるな・・・
0008977
NGNG> if(lstrcmp(CharPrev(lpszPath, lpszPath+lstrlen(lpszPath)-1), TEXT("\\")))
> lstrcat(lpszPath, TEXT("\\"));
> ってことかな?
if( *CharPrev(lpszPath, lpszPath+lstrlen(lpszPath)) != TEXT('\\') )
lstrcat(lpszPath, TEXT("\\"));
ってことではなかろうか。
0009デフォルトの名無しさん
NGNG0010デフォルトの名無しさん
NGNGただのライブラリだと知って愕然とした記憶が有るよ。
ファイル列挙するのに FindFileFirst&Next 使えって一体。
Open&ReadDirectory みたいな関数でさっくりと
ディレクトリハンドル開かせろ、読ませろ、とか思ってしまう。
0011デフォルトの名無しさん
NGNG0012デフォルトの名無しさん
NGNG仮に OleLoadPicturePath() 関数を使って画像を展開したとしても
少なくとも GIF に関しては特許料を支払う必要がある(とユニシス社は主張している)
JPEG に付いては知らん
0013デフォルトの名無しさん
NGNGスレ違いになるけど #include <dirent.h> でどうよ
0014JPEG特許問題
NGNGたしかに「GIF恐いからGIFだけ排除した」とか書いてる人見ますね。
でも、OleLoadPicturePathが勝手にGIF読んでるだけだから
折れは知らんと言うのはダメなのかな?
折れはJPEGを読みたいだけだ。文句はMSにすれ。なんて。
−−>訴えられたら負けデスか?
0015デフォルトの名無しさん
NGNG少なくともMSも味方はしてくれんと思うけど。
http://www.microsoft.com/DEVONLY/Unisys.htm
> Although Microsoft is licensed under these patents, Microsoft's
> license does not extend to software developers or third parties
> who use Microsoft toolkit, language, development or operating
> system products to provide GIF read/write ...
# 誰か裁判に持ち込んではっきりした判例を作ってくれないかなぁ。
0016デフォルトの名無しさん
NGNGこれをコピーしてるのはコピー機なんだから著作権料はゼロックス社に請求しろ
と言ってるようなもんだ
少なくともユニシス社的には
0017JPEG特許問題
NGNG英語じゃよく分かりませんが、確かにMSは味方してくれそうにないですね。w
MS独自開発の画像フォーマットでも作ってもらいましょうか。
WMFは却下。
>>16
いやいや、折れはゼロックスのコピー機を売ってる立場であり、
客が紙幣をコピーしようがこっちの知ったこっちゃ無いって立場の
つもりです。
折れ自身は、JPEGの表示がしたいだけなのだから、マニュアルにJPEG以外は
表示させないで下さいとでも書いておけば、完璧だと思ふ。
いろんな意見モトム。
ちょっと板ずれかも。
0018デフォルトの名無しさん
NGNGそやつを終わらせたい場合ってTerminateProcessしかない?
0019デフォルトの名無しさん
NGNGAPIで取得するにはどうしたらいいでしょうか?名前やインストールフォルダ、日付などを取得したいのですが。。。
MSDNを眺めてみて、あてずっぽうでMsiEnumProducts→MsiGetProductInfoとやってみたら、
何故か一部のリストしか取得できませんでした。なんでこんな中途半端な結果が???
0020デフォルトの名無しさん
NGNGGIFの場合はユニシスが「その手はダメだよ」と言っていたような覚えがあるけど
ソースが出てこない・・・誰か覚えている人ソースキボンヌ。勘違いだったらゴメンネ
0021デフォルトの名無しさん
NGNG>IEコンポーネント利用のソフトは“消尽理論”で対象外
これかかげとけば十分なんじゃないの?
0022デフォルトの名無しさん
NGNGそれで「も」も「表」も上手くいきました。
これで大丈夫・・・ですよね?他に落とし穴は無いかなぁ・・
0023JPEG特許問題
NGNGこれ見る限りでは全然問題無さそうですね。
たしかに、OleLoadPicture関連はMSが特許料を払っているはず
とは思ってましたが、”消尽理論”てのは知りませんでした。
皆さんありがとうございました。
0024デフォルトの名無しさん
NGNGIEコンポーネント自身の正規の機能であり、こうした動作も了解した上でMicrosoft
とUnisysはライセンスを結んでいるはず。もし制限があるのならば、Microsoft側が
きちんと明示しておくべきで、それがないのであれば問題ないと解釈すべき。
逆にいえばMicrosoftが明示している場合は制限されてもしょうがない、
ということだが、KBのQ193543では、
However, this license does not extend to third-party developers using
Microsoft development products to develop applications. Third-party
developers must have a license from Unisys in the form of a written
agreement.
と明示している。
0025JPEG特許問題
NGNG0026デフォルトの名無しさん
NGNGだからユニシス社的にはって言ってるじゃん
いくら「コピー機を売ってる立場であり〜」などと主張しようが
ユニシス社的には特許権使用者に当たるから無意味
>>23
消尽理論の記事は「そういう理論が世の中に存在する」だけであって
だから特許料を払わなくても訴えられないということにはならんだろ
ユニシス社のある米国でなく日本の、弁護士でなく一弁理士の発言を
支持するのは一向に構わんが相応のリスクを負うことにはなる
>>22
素直に GetFullPathName() 使った方が良いんじゃない?
0027デフォルトの名無しさん
NGNG数バイトだけチェックしてGIFだったら無視すれば。
0028JPEG特許問題
NGNGラジャ サンクス
うーん。GIFって拡張子だけ排除しよ。
それ以上の努力が必要?
なら鬱。
JPEG特許問題でもっと鬱。
もはや板ずれ。スマソ 無意味じゃないけど。
0029デフォルトの名無しさん
NGNGそれはインストーラに MSIを使ってるやつだけでしょう。
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
の各キーの "DisplayName"と "UninstallString" を見てなんとかする
しかないんじゃないの?
0030デフォルトの名無しさん
NGNGコンソールが接続されてないとGenerateConsoleCtrlEventは
使えないんだっけ?
0031デフォルトの名無しさん
NGNGGetFullPathName()をどのように使うのですか?
これってカレントディレクトリをくっつけるんですよね?
0032デフォルトの名無しさん
NGNG0033.
NGNG(;´Д`) ハゲシクドウイ。
0034デフォルトの名無しさん
NGNGサンクス。その方法で逝っときます。
0035デフォルトの名無しさん
NGNGそれぞれスレが立っているから、使い終わってからにしてほしいけども。
ユニシス社のGIF問題についてマターリ語るスレ
http://pc3.2ch.net/test/read.cgi/tech/1012141575/
JPEG特許問題
http://pc3.2ch.net/test/read.cgi/tech/1027428839/
0036デフォルトの名無しさん
NGNGあれはどうやれば実現できるのでしょうか?
ChangeDisplaySettingsで画面の解像度を変更することはできたのですが、
クライアント領域が画面を覆うようにはなりませんでした。
MoveWindowを使っているのかとも思いましたが、それだとマウスカーソルを
画面上部に持っていってもメニューが表示されません。
どなたか教えてください。
0037JPEG特許問題
NGNG面倒でもヘッダを見て判定しようと思ったんですが、ファイルの先頭に
"GIF"って書いてたらGIFファイルだと判定しても可ですか?
"GIF"って書かれたテキストにも引っかかりますが、そんな鬱な
テキストも滅却。
0038デフォルトの名無しさん
NGNGChangeDisplaySettingsで一時的に画面の解像度を変えるのはご法度。
どんな解像度でも動くようにするか素直にDirectX使え。
0039デフォルトの名無しさん
NGNGCDS_UPDATEREGISTRYとかわざわざフラグとして存在しないと思うのですが。
嘘ではないけど何か重要な説明をはしょったりしていませんか?
0040デフォルトの名無しさん
NGNG枠線なしにしてウインドウのサイズを画面と同じにして
一番上に表示
ではいけないの?
0041デフォルトの名無しさん
NGNGすべてデコードしてみて成功したらGIFファイルであるとみなす。
100%誤判定はないが判定した時点ですでに特許に抵触してるという罠
0042デフォルトの名無しさん
NGNGウィンドウスタイルをWS_POPUPにして、
クライアント領域が画面全体を覆うように、ウィンドウの位置・サイズを
変更してみたのですが、そうするとメニューが使用できませんでした。
(メニューは画面外に位置)
ゲームではよく、普段メニューは表示されていなくても、
マウスカーソルを画面上部に持っていくと、メニューが現れますよね?
ああいう風にしてみたいと思ったのですが。
0043デフォルトの名無しさん
NGNG0044デフォルトの名無しさん
NGNGそりゃそのままじゃ使えないでしょ。
WM_MOUSEMOVEを捕まえて、ウインドウ上部(つまりこの場合は画面上部)
にきたらメニュー表示するようにすればいいのでは?
004540=44
NGNGウインドウごと動かすと、ウインドウの中身も動いちゃうので、
メインウインドウはメニューなしにして、
メニューだけのウインドウを別に持つのがいいかも。
0046デフォルトの名無しさん
NGNG0047デフォルトの名無しさん
NGNGなるほど。ありがとうございます。
その方法で試してみます。
0048デフォルトの名無しさん
NGNG嘘だと思うなら、やってみれば。
確かに解像度は変えられるが、戻ったときに「うげ」となるから。
0049デフォルトの名無しさん
NGNGhttp://home7.highway.ne.jp/nomura_y/prog000.htm
0050デフォルトの名無しさん
NGNG各ウィンドウの位置・サイズがおかしくなるみたいですね。
ちなみにうちの98SEの場合は問題ありません。
0051デフォルトの名無しさん
NGNGだからCDS_FULLSCREENがあるんだろ
環境次第だというならうちのWin2kではDirectX使っても
ウィンドウが勝手に移動しますが何か?
0052デフォルトの名無しさん
NGNG> うちのWin2kではDirectX使ってもウィンドウが勝手に移動しますが
後始末はしっかりやってる? 俺の環境でも、後始末のタイミング次第で
ウィンドウサイズが復元されない場合があった。
0053デフォルトの名無しさん
NGNGDependency Walkerで見る限りでは明らかにChangeDisplaySettings
使ってるのにWin2kでもウィンドウサイズおかしくなったりしないんだけど
0054デフォルトの名無しさん
NGNGオーナー描画のコンボボックス(ドロップダウン)を作ったのですが、
リストから選択すると、テキストボックスに変な文字列が表示されます。
恐らくコンボボックスがテキストだと思ってアイテムデータのアドレスを
テキストボックスに渡しているのだと思うのですが、
CBS_HASSTRING をつけると WM_COMPAREITEM 飛んでこないし、
何かいい方法はないでしょうか?
というかそもそも作り方間違ってます?
0055デフォルトの名無しさん
NGNG005654
NGNGうーん、できればリアルタイムにソートしたいんですよね。
表示のたびに挿入し直しは無駄が多いような気がするので。
でも何となく雰囲気的に無理っぽい感じですね。
とりあえずソートしつつ挿入という方式でやろうと思いますが、
もしいい方法があったら引き続き情報お待ちしておりますので
よろしくお願いします。
0057デフォルトの名無しさん
NGNG(ただし、挿入ではなく上書きを使ったけどネ)
0058デフォルトの名無しさん
NGNGかなりレベルの低い質問で恐縮なのですが
ウインドウの背景を青にして
そのウインドウにTEXTOUT関数で文字を出力すると
文字が白い四角の中に表示されてしまいます。
どうすれば青い背景の上に文字を表示できるでしょうか?
よろしかったらお教えください。
0059デフォルトの名無しさん
NGNGSetBkMode( hDC, TRANSPARENT );
0060デフォルトの名無しさん
NGNGなるほど、TRANSPARENTっていう指定が
背景をそのまま残すっていう指定になるんですね。
参考になりました。ありがとうございました。
0061デフォルトの名無しさん
NGNG(エクスプローラで名前の変更で使うみたいな)
エクセルみたいに軽快にEditを使いたいのですが
どうすればいいんでしょうか?
0062デフォルトの名無しさん
NGNGの逆で
パスからIDListに変換するのに
使用するAPIって存在しますか?
あるなら教えていただきたいのですが。
IDListについていまいちきちんと理解していないので、
見当外れなら指摘してもらえると助かります。
よろしくでお願いします。
0063デフォルトの名無しさん
NGNGするにはどうしたらよいのでしょうか?
0064デフォルトの名無しさん
NGNG0065デフォルトの名無しさん
NGNG006663
NGNG表現が曖昧ですいません。
考え直してみたところ、判断したいのはダイアログではなくて
ウィンドウのサイズ変更ができないアプリであり、これはウィンドウスタイルに
WS_THICKFRAMEが含まれているかどうかを判定することにより解決しました。
0067デフォルトの名無しさん
NGNG単純に、
WNDCLASSEX wcex;
wcex.lpfnWndProc = (WNDPROC)(this->WndProc);
とするとコンパイルエラーになってしまいます。(型変換できないと言われる)
(static関数にすればコンパイルできますが、thisを参照できないので
困ってしまいます)
0068デフォルトの名無しさん
NGNGSetProp()でウィンドウハンドルにthisを登録すれば何とか使えます
WM_CREATEの時点では使えませんけどね
006968
NGNG捕捉、
http://techtips.belution.com/ja/vc/0009/
↑に詳しくのってた
0070デフォルトの名無しさん
NGNGこれでうまくいきそうです。
紹介いただいたサイトもお気に入りに追加しました。
ありがとうございます。
0071デフォルトの名無しさん
NGNGどこかにソース or 情報ありませんか。
(すれ立てるまでもない質問はここでに同じことを書きましたがスレ違い
でした。すんまそ。)
0072ssssss
NGNG0073ssssss
NGNGデバッガを作りたいということ?
VC++使ってりゃデバッグウインドウにそのまま表示されるけど、それじゃだめなの?
0074デフォルトの名無しさん
NGNGその、表示が出るVC++のデバッグウィンドウの部分だけを
独立したソフトとして作りたいのです。
0075デフォルトの名無しさん
NGNGMFCのソースで見たことあるな。
EditWindowを作って、新たに表示させる文字列を
REPLACEなんとかで文章の最後に置き換える形で追加していく。
0076ssssss
NGNGほれ
http://www.anticracking.sk/EliCZ/import/msdn_debug.htm
サンプルビルドしてみたけど、うまくいかん…
がんばってくれ。
0077ssssss
NGNGこれも
http://nps.vnet.ee/ftp/Docs/Asm/IczTutor/tut28.html
0078デフォルトの名無しさん
NGNGありがとうございます。
そろそろ終電だからその資料印刷して帰ろう。。。
007978
NGNGにもヒントがありました。
0080ssssss
NGNG残業中かよ!
0081デフォルトの名無しさん
NGNGIShellFolder::ParseDisplayName()
008262
NGNGありがとうございます。
早速試してみますね。
0083デフォルトの名無しさん
NGNG0084デフォルトの名無しさん
NGNG008583
NGNGボタンコントロールとかをサブクラス化した場合はサブクラス化ルーチンにWM_COMMANDが飛んでくるのにと思ってました。
激しく勘違い。何をサブクラス化してもWM_COMMANDは来ないのですね。
ところで、なんでサブクラス化ルーチンにWM_COMMANDが来ないのでしょう?
サブクラス化の意味が違う?
0086デフォルトの名無しさん
NGNG0087デフォルトの名無しさん
NGNGその部分を別にリンクする事で可能になります。
世の中にはDelphiとか そういう機能を内在した言語もあります
0088デフォルトの名無しさん
NGNG何でサブクラス化したいん?
0089デフォルトの名無しさん
NGNG009083
NGNG複数のアプリで同一のツールバーを使う場合、ツールバーをDLL化して、ツールバーが押された時の処理もDLL側で行った方がすっきりして良いかと思いまして。
EXE側もツールバーの事を意識しない方が楽ですし。
0091ssssss
NGNGサブクラス化云々の問題よりも、
そもそもWM_COMMANDはボタンコントロール(のウインドウ)に送られるメッセージではなく、
ボタンが押された結果他のウインドウ(親ウインドウ)に送られるメッセージだからでしょ。
だから、ボタンにWM_COMMANDが送られるわけはない。
0092デフォルトの名無しさん
NGNG0093デフォルトの名無しさん
NGNGタイトル名とアイコンを取得しようと思ったのですが、Delphiなどで
作られた一部のアプリケーションは二つのウィンドウが取得されてしまいます。
(例えばクラス名TApplicationとTFormMainの二つ)
しかもこの二つのウィンドウのアイコンが別々です。
そこで、タスクマネージャのように一つだけ取得し、なおかつアプリケーションの
正しいアイコンを取得するにはどうすればよいのでしょうか。
0094デフォルトの名無しさん
NGNGでそれらのウィンドウの関係は?
009583
NGNGサブクラス化って、サブクラス化したウィンドウに関する全てのメッセージを処理するものだと思ってたのです。
WM_COMMANDは仰る通り、考え方が違うのですね。
>>92
主にランチャー機能やタスク切換え機能ですね。
ヘルプ起動とかも行っていますが、これもランチャーに相当すると言えるかも。
あまり深く考えずに親ウィンドウ側でWM_COMMANDを処理してもいいんですが、各EXEに同じようなのを記述するのはいかがなものかと。
その部分だけ別ソースに書き出して工夫するのが良いのでしょうか?
0096デフォルトの名無しさん
NGNGランチャーの機能に関する一連の関数、又はクラスをDLLの方に閉じ込めて
親ウィンドウのProcedureから呼べば?
0097デフォルトの名無しさん
NGNG親から子にメッセージを投げ返せ。
0098デフォルトの名無しさん
NGNG>サブクラス化って、サブクラス化したウィンドウに関する全てのメッセージを処理するものだと思ってたのです。
きみはウィンドウ関数(プロシージャ)というものちゃんとを知らないんだね。
0099デフォルトの名無しさん
NGNGGetWindow(hWnd,GW_OWNER) でゼロを返すほうが真のメインウィンドウ
0100デフォルトの名無しさん
NGNGdbmonのソース。
Platform SDKに入ってると思う
010183
NGNG親で受け取ったWM_COMMANDがツールバーのものなのか判定するというのがいかがなものかと思いまして。
>>97
REFLECT_NOTIFICATIONで解決かと思ったのですが、使い方が分かりません。
しかしプラットフォームSDKの標準ヘッダーでは定義されていないですね。
MSDNを見ていたらATLマクロだということは分かりましたが、SDKなプログラムにREFLECT_NOTIFICATIONのみを実行させることは可能なのでしょうか?
>>98
はい。残念ながら知らないようです。
私の抱える問題を解消出来るような方法は御存じないでしょうか?
010383
NGNG複数のEXEで同様な判定処理を行う事になるからです。
大した事ではありませんが、見た目上、同じツールバーを備えるEXEでも、EXE側での処理如何ではツールバーの動作が異なる可能性が出てくるためです。
今回、私の作っているツールバーでは、主にランチャー機能を持たせる訳ですから、EXE側にとってはツールバーの処理は無関係な訳です。
今のところ、ツールバーをサブクラス化したルーチンで、WM_LBUTTONUPの処理時にTB_ISBUTTONPRESSEDを使ってツールバーのどのボタンが押されたか調べる事が出来ましたので、他に良案が無ければこの方法でいこうかなと思います。
010483
NGNGちょっと書き方に不備がありましたね。すみません。
>複数のEXEで同様な判定処理を行う事になるからです。
つまり結局の所、[各EXEのWM_COMMANDでLOWORD(wparam)==ツールバーのボタンか?]の処理が必要になるのが如何なものか? ということです。
0105102
NGNG私個人としては、
「ウィンドウプロシージャに飛んで来るWM_COMMANDの振り分け」自体面倒な処理では無いと思うが..
case WM_COMMAND:
switch (LOWORD(wp)) {
case ID_TOOLBAR:
OnToolBarMsg(hWnd, msg, wp, lp);
break;
....
とかじゃダメなの?
WM_LBUTTONUPだとウィンドウ外でクリック->ホールド->ツールバーの上でリリース
でもイベントトリガーに...
0106デフォルトの名無しさん
NGNGだから、REFLECT_NOTIFICATIONマクロと
実質的に等価なコードをかけや。
010783
NGNGcase WM_COMMAND:
switch (LOWORD(wp)) {
case ID_TOOLBAR:
この場合、LOWORD(wp)にはツールバーリソースIDではなくてボタンIDが入りますので、ボタンが複数あるとcase文を増やさねばなりません。
もちろん、面倒ではないですが。
>WM_LBUTTONUPだとウィンドウ外でクリック->ホールド->ツールバーの上でリリース
>でもイベントトリガーに...
ある意味、そのような操作をすると無駄なイベントは発生してしまいますが、TB_ISBUTTONPRESSEDを使ってツールバーのどのボタンが押されたか調べているので、実質的には問題は無いでしょう。
>>106
そのマクロと等価なコードがどんなものなのか分からないのです。
単にWM_COMMANDをツールバーに投げるだけですか?
DLLでツールバーとその親ウィンドウを作って、EXEには
親ウィンドウを張り付けりゃいいんでないの?
010983
NGNGそういう手がありましたね。一番素直な組み方かも。
フローティングツールバーみたくする時も、この方が応用が効いて良さそうです。
ありがとうございます。
0110デフォルトの名無しさん
NGNG011183
NGNG0112デフォルトの名無しさん
NGNG0113112
NGNG0114CRect
NGNG#include <windows.h>
#include "StdAfx.h" だけだと
CRect
が”定義されてません”のエラーになるんですが,
これは何をインクルードすれば使えるんでしょうか。
--------------------構成: a7 - Win32 Debug--------------------
コンパイル中...
a7.cpp
C:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\MyProjects\a7\a7.cpp(24) : error C2065: 'CRect' : 定義されていない識別子です。
0115デフォルトの名無しさん
NGNG0116デフォルトの名無しさん
NGNGMSDNに載ってるぞ
0117デフォルトの名無しさん
NGNG0118CRect
NGNGそれつかうんならSDKじゃないとやっと気付いた私。ごめ。
0119デフォルトの名無しさん
NGNGコンソールアプリ作る分には windows.h 読んどきゃ OK っぽいけど...
0120デフォルトの名無しさん
NGNG0121デフォルトの名無しさん
NGNGプリコンパイル済みヘッダファイル作成用だと思う
0122デフォルトの名無しさん
NGNGリストとエディットを作ったんだけど、その二つは横に並べるのね。
そんでお互いに接してる部分だけサイズ変更ってどうやるんでしょう?
↑エクスプローラのフォルダ表示エリアとファイル表示エリアみたいな関係にしたいのです。
フォルダ表示エリアの幅を広げると、ファイル表示エリアの幅が狭くなるって感じで。
CreateWindowのスタイルでWS_SIZEBOXとかやると、
4辺全部変えられるようになっちゃうし。
教えて下さいー。
0123デフォルトの名無しさん
NGNGIEのフレームみたいなのか?
あれはMFCではできるけどAPIだと自力でどうにかしろだったと思うが。
0124デフォルトの名無しさん
NGNGを作り、それぞれのウィンドウのサイズやZオーダーを変更したり最小化・最大化しようとして
それぞれのウィンドウへSendMessageしたのですが、最小化などはできるのですが
サイズ変更やZオーダーは変更できないウィンドウがあります。
具体的にはDelphi製のソフトが該当するようなのですが、
Zオーダーなどの変更方法としてこの方法は間違っているのでしょうか?
間違っているのならどのような方法をとればよいのでしょうか?
0125デフォルトの名無しさん
NGNGその上にもう一つウインドウがある。
0126デフォルトの名無しさん
NGNGメインフォームという構造になってる
たぶんその関係では?
0128124
NGNG取得するにはどうすればよいのでしょうか?
0129デフォルトの名無しさん
NGNG0130124
NGNG不可視ウィンドウとはクラス名TApplicationというやつぽいですが
これ以外の同キャプションをメインフォームと判断するのは
ちょっと乱暴なやり方でしょうか・・
0131デフォルトの名無しさん
NGNGLogonUser( TEXT( "Administrator" ), TEXT( "." ), TEXT( "password" ),
LOGON32_LOGON_INTERACTIVE, LOGON32_PROVIDER_DEFAULT, &hToken );
こんな感じなんですが、どうですか?
0132デフォルトの名無しさん
NGNGそうですねー。
IEのフレームみたいなやつ。
APIでは対応してないのですかー・・・
MFCってさっぱりわからんのであきらめますかな・・・
どーもでした。
0133122
NGNGしつれーい。
0134デフォルトの名無しさん
NGNG左右のウィンドウの間にフレーム用のウィンドウを作る。
そのウィンドウがドラッグされたら左右のウィンドウのサイズを調整。
0135デフォルトの名無しさん
NGNG列挙して不可視ウィンドウがオーナーになってる奴を探す
0136デフォルトの名無しさん
NGNG起動元のユーザーはTCB特権を持っていますか?
0137デフォルトの名無しさん
NGNGTCB特権って何ですか?
調べてみたんですけど、それらしいものがでません。。。
0138デフォルトの名無しさん
NGNGこれじゃないの? 手元の MSDN Library だと LogonUser() API の解説に
書いてあったんだが。
> LogonUser 関数を呼び出すプロセスは、SE_TCB_NAME 特権を備えて
> いなければなりません。
ついでにサポート技術情報から。
> 注意: ユーザー マネージャ [原則] - [ユーザーの権利] で、高度なユーザー権利の
> [オペレーティングシステムの一部として機能] をユーザーに許可することで
> 上記の権限をユーザーに持たせられます。
0139デフォルトの名無しさん
NGNGSE_TCB_NAMEを付加するくらいだったら最初からAdministrators
与えとけよというくらい危険
0140138
NGNG話が逸れるんだが、Win32 の特権について詳解している書籍とかって知ってる?
MSDN Library にはパラパラとは書いてあるんだが、全体像を把握しかねてて。
0141デフォルトの名無しさん
NGNG0142デフォルトの名無しさん
NGNGSleep関数の精度っていうのはどの程度なのでしょうか?
どうも1ミリ秒単位で正確ではないようなのですが。
やはり正確さを取るには
for(dwTime=timeGetTime()+10; timeGetTime()<dwTime; Sleep(0));
のようにするか、for文の中でQueryPerformanceCounterを回して
時間の差を判定するしかないのでしょうか。
でも、こうするとやたら重くなるのでできればSleepのような軽い関数が
あればいいなぁ・・・
0143デフォルトの名無しさん
NGNG0144ssssss
NGNG今回の場合に使えるかどうか分からないけど、
WM_NCHITTESTを処理すれば、
特定の辺だけサイズ変更できる(マウスでドラッグできる)
ってことができるんじゃないかと思います。
0145デフォルトの名無しさん
NGNG正確な時間を何の為に欲しいの?
Win32アプリだと QueryPerformanceCounterを使っても スレッドが割り込まれると駄目だしさ
0146YahooBB237224045.bbtec.net
NGNGする段取を初心者用に
書いたアーティクルはないもんでしょうか.
「猫でもわかる」その他検索しましたが見つけられません.
スージプラグインとか必須ですか?
0147142
NGNG違います。
timeGetTime()は1ミリ秒ですが
Sleepは最低5ミリ秒くらいの精度になります。
>>145
ある一定の間隔でポートから出力したいんです。
±0.1ミリ秒程度の精度が欲しいのですが、やはり無理なのでしょうか。
0148デフォルトの名無しさん
NGNGRDTSC
0149デフォルトの名無しさん
NGNGhttp://www.google.co.jp/search?q=StretchDIBits+jpeg
>>147
殆ど使われてない マザーのbeep機能を使ったらどう?
0151デフォルトの名無しさん
NGNG要求サイズを変更すればいいんでしょうか?
その場合元のメモリの内容は保障されてるのでしょうか?
よろしくお願いします。
0152デフォルトの名無しさん
NGNG01531
NGNG0154デフォルトの名無しさん
NGNGJPEGは特許がやばいからやめとけ。
悪いことは言わないから、おとなしくmalloc/freeを使っとけ。
0156DELL
NGNGVBの場合ならshape1.move x,y でできましたが、
APIはRectangle(hdc,x,y,x+10,y+10);
をどこのプロシージャで使えばいいか分かりません。
しかも上記のアルゴリズムでは移動するということではなく、
次々と新規に描かれていくように思えます。
だれか図形を移動させる方法教えてください。
0157デフォルトの名無しさん
NGNGVirtualProtectってCなの?
C++ならnew/deleteだと思われ
0158デフォルトの名無しさん
NGNGきみはこのスレで何を言ってるのかね
0159デフォルトの名無しさん
NGNGもしそうだと case WM_PAINT: でこれをつかったら
∞ループにはまりますよね.
0160デフォルトの名無しさん
NGNGhttp://www.matsusaka-u.ac.jp/~okumura/compression/jpegpat.html
0161151
NGNGいぢわるしないで教えてください。
malloc/free に当たる処理を作りたいんです。
>>157
realloc に当たる処理が無いですけどね < new/free
普通は std::vector 使うから。
というか VirtualAlloc が成功しないです…。
何が悪いんだろう…
とりあえず某 VB のサイトにあった引数を参考にして試してるのですが…。
VirtualAlloc (NULL, 4096, MEM_COMMIT, PAGE_READWRITE | PAGE_NOCACHE );
環境は Windows2k です。
アドバイスお願いします。
0162デフォルトの名無しさん
NGNGもしかしたら、NT系/非NT系によりますか?
0163デフォルトの名無しさん
NGNG最後のパラメータを false にすると発生しないと思う
> もしそうだと case WM_PAINT: でこれをつかったら
普通、そんなに頻繁にウィンドウリージョンを設定しないだろ
0164デフォルトの名無しさん
NGNG普通そんなこと誰もしない=誰も知らないバグが残ってる可能性がある
やめとけ。
0165デフォルトの名無しさん
NGNGノーキャッシュをはずしたらどうよ?
0166デフォルトの名無しさん
NGNGPAGE_NOCACHE
が怪しい。こんなものはまず使わん。
0167166
NGNG0169151
NGNGケコーンおめでとうございます。
ちょっと簡略化の為に嘘書いてました。
要求サイズをページサイズ分に切り上げる処理を書き間違ってて
中途半端なサイズを要求していた事が原因でした。
で、やっぱり VirtualProtect でサイズを変えることは出来ないんでしょうか?
0170コギャルとHな出会い
NGNG朝までから騒ぎ!!
小中高生
コギャル〜熟女まで
メル友
i/j/PC/対応
女性の子もたくさん来てね
小中高生大歓迎です
全国デ−トスポット情報も有ります。
全国エステ&ネイル情報あります。
激安携帯情報あります。
どうやっても無理。おとなしくmalloc/free使っとけって。
0172デフォルトの名無しさん
NGNG自分ででっかいプールをつくったら?
0173151
NGNGやっぱり Heap系じゃないと増分は無理なんですか?
そういう書き方だと教えてくれてるのか煽りなのか区別がつかないもので…。
>>172
でっかいプールを作るのに VirtualAlloc を使いたいんですよねー
0174デフォルトの名無しさん
NGNGグラフを書きたいといって、
右端で直線を引きながら
BitBlt(memdc, 0, 0, 520, 460, memdc, 1, 0, SRCCOPY);
(memdcは裏画面のデバイスコンテキスト)
というようにすれば右から左に流れるような直線が書けると
教えていただいたのですが、これだとやはり時間がかかってしまいます。
何か高速な画面の移動の方法は無いでしょうか。
0175デフォルトの名無しさん
NGNGXOR
0176デフォルトの名無しさん
NGNGなるほろ.
しかしそれではせっかく設定したリージョンが..
0177デフォルトの名無しさん
NGNG早レスありがとうございます。
XORっていうのは、
LineToを呼んで、背景色と色AのXORの色Bで直線を描画して、
今度は色Bの上から色Aで描画すれば背景色に戻る
っていうので合ってるでしょうか?
LineToを何度も呼ぶことになると思いますが、その方が高速なんでしょうか。
煽っているつもりは全くないのだが。
VirtualProtectはメモリの保護モードを変更するものなので、
サイズを変更することはできない(てか、ヘルプ読めよ)。
unixのbrkのような使い方をしたいのであれば、
あらかじめVirtualAllocで巨大な領域をreserveしておいて、
必要になった時点でcommitすることで、似たような動作にすることはできる。
単にクラスを識別するだけの役割しかないのに、
文字列の内容が関係すると思うか?
0181デフォルトの名無しさん
NGNG増やすときに、VirtualAllocの lpAdressに、予約済み領域の直後のアドレスを
指定(ページ境界に注意)してやればいいのでは?
0182デフォルトの名無しさん
NGNG試してみりゃ分かるやろ。
0184151
NGNG> サイズを変更することはできない(てか、ヘルプ読めよ)。
「要求するメモリのサイズ」って書いてあった(VirtualAllocで指定したサイズでなければいけないとは書いてなかった)ので
変更は可なのかなー等と思ってしまいました。
> あらかじめVirtualAllocで巨大な領域をreserveしておいて、
> 必要になった時点でcommitすることで、似たような動作にすることはできる。
なるほろ!これは気がつきませんでした。
ありがとうございます。
>>173
ありがとうございます。その手もありますね。
しかしライブラリ等の弄れない部分がOSからメモリー割り当てしてると失敗してしまいますね…(当たり前ですけど)
ポインタ比較に意味無くなってもいいからヒープ毎に独立したアドレス空間欲しぃ…。
とりあえず >>178 さんのアドバイスを元に頑張ってみようと思います。
皆さんありがとうございました。
0185デフォルトの名無しさん
NGNGScrollWindowとかScrollDCとか
0186DOSっていいな
NGNGこれと同じようなことをWindowsからできないのでしょうか。
別プロセス空間に2Gバイト近くのメモリーをそれぞれ確保しており、合計で
6Gバイト以上のアドレスを確保しています。この別プロセスのメモリーを共
有メモリーでランダムアクセスしたいのですが、
1:OpenProcessからReadProcessMemory, WriteProcessMemoryでは一旦コピー
してからのアクセスになるためランダムアクセスに向きません
2:ファイルマッピングでメモリーファイルにすると、アドレス空間が2Gバイ
トに限定されるため、大量に取得したメモリー全部にアクセスすることがで
きません。
別プロセスのメモリー空間のポインタを取得する(実アドレスに割り当てる)
APIってないでしょうか。
0187デフォルトの名無しさん
NGNG6Gの仮想メモリで何がしたいねん?
結局は単一の物理メモリやん。
0188デフォルトの名無しさん
NGNGwin32でできたっけ?
VirtualAllocVlmとか。
0190DOSっていいな
NGNG各プロセスはリニアに32ビット(4Gバイト)のアドレスしかアクセス
できませんが、(実際はOSの都合で2Gバイトしか確保できない)
別プロセスではそれぞれのセレクタが別の物理メモリー空間をアドレス
するようになります。
この辺はOSの仕事ですが、実際に確保できてしまいます。
>>186
たとえば、スキャナからの画像を9600BPIでA3全体を読み込むと
数Gバイトになります。もちろん今作っているのは、こんな馬鹿
みたいなこととは違いますが。。。
0191デフォルトの名無しさん
NGNGOSのメモリ管理限界より、実メモリが増えてなきゃ、
そもそも意味がないだろ。
0192DOSっていいな
NGNG確かに。
メモリーは誰かが金出して、10Gバイトくらい載るマザーボードと
メモリーを用意するだろう。
インテルCPUではFS,GSのセレクタレジスタが遊んでいるので、
それぞれ別空間をポイントできないかと考えたわけだ。
あるいは、OSからすれば、ページングで同じ物理メモリーを2つのプ
ロセスのリニアアドレスに割り当てればよいことで、簡単にバンク切り
替えができるのかと思って調べたが、見当たらなくてここで質問してい
ます。
0193デフォルトの名無しさん
NGNG> で、やっぱり VirtualProtect でサイズを変えることは出来ないんでしょうか?
MSDN Library を読んだ上で言ってるのか?
VirtualProtect は割り当てられたページの属性 (read/write/execute) を設定
する API。CPU がサポートする仮想記憶システムで使うデータベース(ページ
テーブルやディレクトリテーブル)の属性部分だけ仮想化したもの、といや良い
のかな。
俺も試したことはないんだが >>189 が言ってるように VirtualAllocVlm 系の
API を使うか、ファイルマッピング (CreateFileMapping) とかでどうかねぇ。
>>191
IA-32 だと、仮想記憶アドレスの限界以上の実メモリを使える。36bit PSE あ
たりのキーワードで検索すると出てくると思うけど。
0194DOSっていいな
NGNGVirtualAllocVlmって、64ビットのアドレスが返るのですね。
Borland C++Builderを使っているのですが、どうやって使う
のでしょうか。
0195デフォルトの名無しさん
NGNGgoogle で検索したら、トップで出てきたぞ…。
http://www.microsoft.com/japan/developer/library/jpwinpf/_win32_virtualallocvlm.htm
0196デフォルトの名無しさん
NGNG特許は最近話題になったものだけにあるわけではないぞ
0197151
NGNG私の質問はもう終わってるんだけどな…。
直後に似た API の質問だから混同してもしょうがないけど。
でもやっぱり後でもう一回来てよかった。
なんかその Vlm ってのも調べてみようっと。
あと、>>178 さんに教えてもらったやり方でバッチグーに実装できました。
マジでありがとうございました。
0198151
NGNGhttp://www.microsoft.com/japan/developer/library/jpwinpf/_win32_virtualallocvlm.htm
VirtualAllocVlm 関数は専用のリソースを割り当てるので、控えめに使ってください。
~~~~~~~~~~~~~~~~~~~~~~
↑ワロタ MS のドキュメントにしては珍しいあからさまに曖昧な表現。
0199デフォルトの名無しさん
NGNG>2:ファイルマッピングでメモリーファイルにすると、アドレス空間が2Gバイ
> トに限定されるため、大量に取得したメモリー全部にアクセスすることがで
> きません。
うそー?MapViewOfFile でマップするファイル位置を指定出来ただろ?64ビットで
0200デフォルトの名無しさん
NGNGWindowsから警告音が来てしまうんですが、
これを止める方法はないでしょうか?
0201デフォルトの名無しさん
NGNGMapViewOfFileEx() の方かね。
いずれにせよ返ってくるのは LPVOID だから「大量に取得したメモリー全部に
アクセスすることができない」と思うが、そこは手作業でファイルマッピングの
切り替えだろう。
(狭い仮想アドレスを使い回す以上、バンク切り替え相当の手間が掛かるのは、
仕方ないよな)
0202デフォルトの名無しさん
NGNG0203デフォルトの名無しさん
NGNG犯罪の匂いがする
0204デフォルトの名無しさん
NGNGいえ、そういうのじゃないですよ。
レジストリの特定のキーを削除したいんです。
とりあえず今考えてるのはレジストリをいじるだけのプログラムを作ってお
いて、それを別ユーザとして起動すればいいかな〜って思ってるんですが、
もう少しスマートな方法がないかと思いまして。
0205デフォルトの名無しさん
NGNG> レジストリの特定のキーを削除したいんです。
なぜ?
一般論として言えば、Administrator しか削除できないキーを一般ユーザが削除する
のは(仮にできたら)、致命的なトラブルになるぞ。本当に必要なら、そのユーザに
ローカルマシンの Administrator 権限を付与するのが正道と思われ。
0206デフォルトの名無しさん
NGNGそれでは、Administratorでない場合はどうでしょう?
他のアプリケーションの設定などを別ユーザからいじるということはできますか?
0207デフォルトの名無しさん
NGNG必要ならAdministrator権限をもらえって事だよ
そんな簡単に権限無視が出来るんじゃなんのためのユーザー管理だよ
0208デフォルトの名無しさん
NGNG0209デフォルトの名無しさん
NGNG0210デフォルトの名無しさん
NGNGttp://support.microsoft.com/default.aspx?scid=http://www.microsoft.com/Japan/s
upport/kb/articles/JP253/0/66.ASP
だから何だと言われても困る。
0211デフォルトの名無しさん
NGNGWindows2000でファイルを選択してマウス右ボタンのプロパティから概要タブで
タイトルやコメントとかを設定できますけど、
あれってどこに記録されているのでしょう & 設定するAPIはあるのでしょうか。
0212デフォルトの名無しさん
NGNGの下の方にある、福次ストリームを利用しているはず。
0213デフォルトの名無しさん
NGNG0214デフォルトの名無しさん
NGNG詳しく調べてないけどたぶんIPropertyStorageを使うんだと思う
http://msdn.microsoft.com/library/en-us/stg/stg/ipropertystorage_ntfs_file_system_implementation.asp
0215デフォルトの名無しさん
NGNGダイアログテンプレートで作成することはできますか?
なんかDLGITEMTEMPLATEの中はクラス名かIDが必要みたいなんですが、
ここにダイアログを直接置くことはできないんですか?
0217StretchDIBits
NGNGIMAGE_BITMAP, 0, 0, LR_LOADFROMFILE);
GetObject(hBitmap, sizeof(BITMAP), &bmp_info);
wx = bmp_info.bmWidth;
wy = bmp_info.bmHeight;
hdc_mem = CreateCompatibleDC(hdc);
SelectObject(hdc_mem, hBitmap);
StretchDIBits(hdc,0,0,wx, wy,
0,0,wx, wy,
pBits,&bmp_info,DIB_RGB_COLORS,SRCCOPY);
とした場合最終行のpBitsには"DIBのビットデータの先頭へのポインタ"
をいれるという説明なのですが,これはどうやって取得できますか?
0218API学くん
NGNGリッチエディットコントロールをSDKのC言語で組もうとしてる者です。
EDITSTREAM構造体のdwCookieとpfnCallbackメンバを設定して、
EM_STREAMINメッセージでストリームにデータを送ってリッチエディット
コントロールに表示させるらしいという事がわかりました。
しかし実際に表示させようとしても、やり方がわかりません。
具体的に言うとchar goku[30]="こんにちは"という、メモリ上のデータを
表示させようとするときdwCookieに何を指定するのか分かりません。
es.dwCookie = (DWORD)goku;のように指定しても駄目でした。
ファイルを読み込んでそれを表示する事は出来るのです。
dwCookieにCreateFileで作成したhFileを指定すれば、ファイルの内容が
リッチエディットコントロールに表示されました。
es.dwCookie = (DWORD)hFile;
という感じで大丈夫でした。
ネット上で調べたのですが情報がありません。
メモリ上のデータをリッチエディットコントロールに表示するにはどうすれば
いいか教えて下さい。
0219デフォルトの名無しさん
NGNGコピペじゃ駄目?
CHARRANGE cr;
cr.cpMin = cr.cpMax = -1;
SendMessage(hRich,EM_EXSETSEL,0,(LPARAM)&cr);
SendMessage(hRich,EM_REPLASESEL,0,(LPARAM)"こんにちわ");
SetWindowText(hRich,"こんにちわ");
でもいいかも。
参考→ttp://www.kumei.ne.jp/c_lang/sdk2/sdk_130.htm
0220デフォルトの名無しさん
NGNGStretchDIBits() → StretchBlt() じゃないの?
0221デフォルトの名無しさん
NGNG0222デフォルトの名無しさん
NGNGPlatform SDK にドキュメントついてきたと思うが。英語だけど。
0223API学くん
NGNGコピペという方法があったのですね。
リッチテキストを扱うからエディットストリームだという固定観念で調べてました。
普通のエディットコントロールも知らないで、いきなりリッチエディットを
作ろうとしたのが勘違いの元でした。
どうもありがとうございました。
0224APIビギナー
NGNGに落とすにはどんな方法がありますか?
0225デフォルトの名無しさん
NGNG2000/XPではCAPTUREBLTをお忘れなく
0226デフォルトの名無しさん
NGNGMSDNに入れば、「Subscriber Downloads」でダウンロードできるよ(藁
0227APIビギナー
NGNG>2000/XPではCAPTUREBLTをお忘れなく
を,どうも.猫でもできる,を参考にしてやって見ます.
ところでウィン98だと選択の度にWM_PAINTで書きなおして表示されて
いた画像が,Xpだと全く更新されないままになるってのは
何が原因でしょうか.
0228デフォルトの名無しさん
NGNGダイアログテンプレートで作成することはできますか?
なんかDLGITEMTEMPLATEの中はクラス名かIDが必要みたいなんですが、
ここにダイアログを直接置くことはできないんですか?
0229デフォルトの名無しさん
NGNG"外部参照 1 が未解決です。"
みたいなメッセージがでてきてエラーになるんですが、
そのまま元に戻す方法だれか知りませんか?
0231デフォルトの名無しさん
NGNG取りあえず他のスレにまで迷惑かけるなって。
0232デフォルトの名無しさん
NGNG>>230
すまんが意味がまったくわからん。
もう少しわかりやすい日本語を話してくれ。
0233デフォルトの名無しさん
NGNGOSボム
http://pc3.2ch.net/test/read.cgi/tech/1029678513/l50
ここのネタだよ。気にしなくていい。
日本語?
まぁお前ら天才だからこれくらいの日本語理解できるんとちゃうん?
お前は天才じゃなかったか。スマソ
>231->233
ここはWin32API質問箱だぞ?
スレに関係ない話題はやめろ荒らしめ
0235デフォルトの名無しさん
NGNGDELLさん、逆ギレですか?
0236DELL
NGNGとにかく、230の質問が解ればそれでいいのだ。
隣でVisualC++開いている。
2chで問題が解決すれば得だろ?
0237デフォルトの名無しさん
NGNG図星でした。
0238デフォルトの名無しさん
NGNGお前さぁ、自分で考えて書いたんじゃなかったのか?なぜコンパイルできん?
また、
どこかで見つけたブラクラを書き込め!
系のこの板でもっとも頭の悪い部類に入るスレかよ・・・。
0239DELL
NGNGお前さぁとか偉そうなこといってねぇで、
そのまま実行できんかったらコードを
新規作成したファイルにコピーすればコンパイルできることに気づけよ。
まぁ確かに俺の書いたコードは下らないものかも知れないが、
別にここはプログラム技術板なんだからブラクラより
マシだと思うぞ。
0240デフォルトの名無しさん
NGNG(劇藁嘲笑
0241デフォルトの名無しさん
NGNG0242DELL
NGNGなるほど参考になりました。
0243デフォルトの名無しさん
NGNG0244DELL
NGNG必死だな(藁
0245デフォルトの名無しさん
NGNGうわああああ
dumpbinも知らん
mlも使えない
スーパーDQNだぁぁぁぁ
HNのとおりデリられるべき香具師だな
0246デフォルトの名無しさん
NGNGHDCについて教えてください。
hDC = GetDC( hWnd );
hDCMem = CreateCompatibleDC( hDC );
hBmp = CreateCompatibleBitmap( hDC, 64, 64 );
SelectObject( hDCMem, (HGDIOBJ)hBmp );
上のコードの後に、
GetDIBits( hDC, hBmp, … );
としても、
GetDIBits( hDCMem, hBmp, … );
としてもうまく動きます。これはどういうことなのでしょう?
HDCならなんでもいいのでしょうか?
(ちなみに、NULLだとうまく動きませんでした)
0247デフォルトの名無しさん
NGNGどういうことも何も、
hDCMemはCreateCompatibleDCで作ったんだから、
hDCと互換性があるに決まってる。
試したことないけど、
やっぱ、プリンタのHDCとか使ったら駄目じゃない?
0248246
NGNG動作に互換性があるのはわかるのですが、
>SelectObject( hDCMem, (HGDIOBJ)hBmp );
としているわけですから、
GetDIBits( hDC, hBmp, … );
でうまくいくのが不思議に思いまして。
GetDIBItsやSetDIBitsの場合、デバイスコンテキストに
設定した値(SelectObjectで指定したオブジェクトなど)は
全く影響なしということでいいのでしょうか?
0249247
NGNGhttp://www.microsoft.com/japan/msdn/library/ja/jpgdi/html/_win32_getdibits.asp
によると、
「hbmp パラメータが示すビットマップが
デバイスコンテキストで選択されている場合、
この関数を呼び出さないでください」とあるんだが。
疑問の解消にはならないかも知れないが、
そういうことはしてはいけないらしい(逃
0250デフォルトの名無しさん
NGNGCreateDIBSection() と同じで、DIB_RGB_COLORS である限りは HDC は
まったく参照されないんじゃなかったっけ? (HDC は NULL でいい)
0251デフォルトの名無しさん
NGNGリストボックスに、文字を追加して行きたいと思い下記のようなコードを打ちました
SendDlgItemMessage( hWnd, IDC_LIST1, LB_ADDSTRING, 0, (LPARAM)Buff );
たしかに、文字はリストボックスに追加されたのですが、どんどん追加していくと
スクロールバーができ、入力している文字がリストボックスから見えない位置に
いってしまいます。
最後に出力した文字が、常に見える状態にするにはどうすればよいのでしょうか?
MFCだと、SetCurSel( m_ctl.GetCount()-1 );
でいいみたいなんですが、apiだとどうして良いのか、分かりません・・
0252デフォルトの名無しさん
NGNGそこまでわかっているならGoogleで
SendDlgItemMessage SetCurSel
で見つかる予感 ->
ttp://n76cd-01p05.ppp11.odn.ad.jp/old/a6050.html
これでいいんじゃないでしょうか。
0253デフォルトの名無しさん
NGNGerror C2065: 'CreateJobObject' : 定義されていない識別子です。
っていわれちゃう。
なんでだよヽ(`Д´)ノウワァァァァン
#include <windows.h>
#include <winbase.h>
#pragma comment(lib,"kernel32.lib")
int main(int argc, char* argv[])
{
HANDLE hJob = (HANDLE)CreateJobObject(NULL, "testjob");
return 0;
}
0254デフォルトの名無しさん
NGNGCreateJobObject は Windows 2000 以降の API だけど、
ちゃんとそれに対応した新しい Platform SDK 使ってるかね。
0255デフォルトの名無しさん
NGNGヘルプに
>対応情報
> Windows NT: バージョン 5.0 以降を使います。
って書いてあるよね。
実行環境のWindowsのバージョンに依存するときは、
_WIN32_WINDOWSや_WIN32_WINNTというマクロが必要だよ。
↑
をヘルプで引いてごらん。
#define _WIN32_WINNT 0x0500
とか、
>Visual C++ 6.0: To specify compiler options,
>go to the Projects menu and click Settings,
>then select the C/C++ tab.
とか、することになってるよね。
0256デフォルトの名無しさん
NGNG>「hbmp パラメータが示すビットマップが
>デバイスコンテキストで選択されている場合、
>この関数を呼び出さないでください」とあるんだが。
あ、本当だ。見落としてました。(^^;
>>250
>CreateDIBSection() と同じで、DIB_RGB_COLORS である限りは HDC は
>まったく参照されないんじゃなかったっけ? (HDC は NULL でいい)
なるほど、HDCはパレットの情報を得るのに使っているんですね。
調べてみると、SetDIBitsのところにも、NULLでいいと書いてありました。
ところが、実際にNULLを指定すると、なぜかエラー(戻り値=0)が
返ってきます。他のパラメータが間違っているのかな???
GetDIBits・SetDIBitsの前後を調べてみることにします。
とりあえず、ありがとうございました。>>247 >>249 >>250
0257デフォルトの名無しさん
NGNGよく読め
>>246はNULLだとダメだったとちゃんと言ってるぞ
GDI関数で第一引数にHDCを取るものは
どのドライバを呼び出すか決めるためにHDCを使うんだから
この場合ディスプレイドライバが作ったHDCならなんでもいいけど
NULLはダメ
0258256
NGNG>調べてみると、SetDIBitsのところにも、NULLでいいと書いてありました。
正確には、「無視されます」とあり、
「NULLでもいい」と書かれてあったわけではありませんでした。
失礼。
0259デフォルトの名無しさん
NGNGWin32APIだけで組めばプログラムのファイルサイズがかなり小さくなると
思ったのですが、実際にダイアログリソースを表示するだけの簡単なプログラムを
作ってみるとMFCで共通DLLを使ったものよりも大きくなってしまいました。
MFC(共通DLL使用)→28KB
Win32API→44KB
こんな具合です。
もうちょっと(せめてMFC版よりも)サイズを小さくするにはどうしたらよいのでしょうか?
0260デフォルトの名無しさん
NGNG必要な処理をDLLに持っていって本体はWinMain()のみにする。
0261デフォルトの名無しさん
NGNG0262デフォルトの名無しさん
NGNGサイズの比較になってねーぞ
MFC(共通DLL使用)→28KB + sizeof MFC42.DLL
0263デフォルトの名無しさん
NGNG#include "stdafx.h"
int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow )
{
keybd_event(VK_SNAPSHOT,0,0,0);
return 0;
}
昨日も聞いたんだけどサー,これでデスクトップのショットが取れないのはなぜ?
アクティブウィンドウしか取れない. alt 押してないのに.
証拠画面もうぷするか?
0264デフォルトの名無しさん
NGNGそんなことせんでもGetDC(0)したのをBitBltすれば良かろう。
つぅか誰にそのキーイベント送ってるのさ?
0265デフォルトの名無しさん
NGNGupx --best --crp-ms=100000 filename
とかどうよ?
0266デフォルトの名無しさん
NGNGその通りなんですけど,キーコードがちゃんと送れてないのがげせない.
>誰にそのキーイベント送ってるのさ
OSにです.ペイントで貼り付けると一部しか取れてないんです.
そのときのアクティブだけってことは
alt + Pscrn が送られてることになる.
げせねぇ
keybd_eventのヘルプの下の方は読んだか?
0268デフォルトの名無しさん
NGNGそんなこと言い出したらwin32apiだけだってdll使うっつーの
アフォですか? 比較するならmsvcrt.dllを使ったものと
比較すべきと言っているんだろ。
0270デフォルトの名無しさん
NGNGkeybd_event(VK_SNAPSHOT,1,0,0);
keybd_event(VK_SNAPSHOT,1KEYEVENT_KEYUP,0);
0271270
NGNG0272デフォルトの名無しさん
NGNGhttp://msdn.microsoft.com/msdnmag/issues/01/01/hood/hood0101.asp
簡単にサイズを小さくできるっていうライブラリ。
0273keybd_event
NGNGおさわがせしました
0275サービスしてね
NGNGレジストリの項目でServiceってのがあったので値を見てみたのですが特に変わってなかったです。
0276デフォルトの名無しさん
NGNGOpenSCManager, OpenService, ControlService, QueryServiceStatus
あたり。
0278デフォルトの名無しさん
NGNGアセンブラで書け
8kBぐらいにはなるだろ
0279デフォルトの名無しさん
NGNGなんせリンクするだけだから。
楽して小さくするならLIBCTINY。これ常識。
0280デフォルトの名無しさん
NGNGFDにぎっしりつめるつもりなのかしら。
0281デフォルトの名無しさん
NGNG高サイズはウイルスにとって致命傷ですから。
0282デフォルトの名無しさん
NGNGそっちか(^_^;)
0283デフォルトの名無しさん
NGNGでメニューハンドルの取得に失敗するんですが理由がわかりません。
どなたか教えてください。
0284デフォルトの名無しさん
NGNGMFC使うより小さくなるんか?
0285デフォルトの名無しさん
NGNGMAKEINTRESOURCE(IDR_PopMenu)でやってみたら?
0286デフォルトの名無しさん
NGNGサブキーを持つキーを一度で削除しようとしたところ
できませんでした。
ヘルプを見るとNT/2000では
サブキーを持つきーを指定することはできないと書いてありました。
2000でサブキーごとキーを削除するには
どうすればいいでしょうか?
サブキーを検索していってひとつずつ
削除するのが賢いやり方ですか?
それとも他に代用できる関数があるのでしょうか?
よろしくお願いします。
0287デフォルトの名無しさん
NGNGもちろんモノによるが、なる。
0288初心者です!
NGNG時々コマンドを実行しようとすると、VDDの形式が無効ですってエラーメッセージが出るのですがなんか関係あるのでしょうか?
原因がまったくわかりません!誰か教えてください!
0289デフォルトの名無しさん
NGNG>サブキーを検索していってひとつずつ
>削除するのが賢いやり方ですか?
いや、愚かなやり方です。
毎回そんなことを考えずに済むように
しておくのが賢いやり方です。
どうすべきか、わかりますね?
0290286
NGNGわかりません。
もうすこし具体的に言ってもらえませんか?
>毎回そんなことを考えずに
自分でサブキーを検索して消していく
関数を作っておけということですか?
0292デフォルトの名無しさん
NGNG消すキーの中にサブキーをデータとして入れちゃえ
とか言ってみるテスト
0293286
NGNG結論としてはWin2kでサブキーごとキーを削除するには
サブキーを検索していってひとつずつ
削除する、という流れで、
代用できる関数は用意されていないので
自作すべし。
ということで落ち着きました。
ありがとうございました。
0294292
NGNGサブキー名をデータとして
テスト失敗
0296デフォルトの名無しさん
NGNG実はリソースのヘッダをインクルードしてないとか...
外してる可能性大
0297283
NGNG285さん296さんありがとうございました。
お騒がせしました。m(_ _)m
0298デフォルトの名無しさん
NGNGipconfig /release で開放。
ipconfig /renew で再取得
をしたく、ipconfigと同様なAPIを、検索で頑張って探してみたのですが
結局わかりませんでした。
WindowsCEならあるようなのですが。。。
どなたかご存知の方、教えてください。
0299デフォルトの名無しさん
NGNGSHDeleteKey?
0300286
NGNGありがとうございます、
大当たりです。
試してみましたが無事一発で消えました。
実は自分でSHDeleteKey関数と
同じようなの自作してる途中でしたw
ありがとうございました。
教訓
サブキーごとレジストリのキーを削除する場合は
SHDeleteKey関数を使用する。
以下のコードをa.cとa.rcというファイル名で保存して、
rc a.rc, cl a.c a.res でコンパイルすれば2048バイトになる。
9x系で動作しなくていいなら、cl /O2 a.c a.res /link /align:16
で1056バイトになる。
#include <windows.h>
#define IDD_DIALOG 1
#ifdef RC_INVOKED
LANGUAGE LANG_JAPANESE, SUBLANG_DEFAULT
#pragma code_page(932)
IDD_DIALOG DIALOGEX 0, 0, 87, 79
STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Dialog"
FONT 9, "MS UI Gothic", 400, 0, 0x80
BEGIN
DEFPUSHBUTTON "OK",IDOK,27,53,50,14,NOT WS_TABSTOP
END
#else
BOOL CALLBACK DlgProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) {
switch (uMsg){
case WM_INITDIALOG:
return 1;
case WM_COMMAND:
if (wParam == MAKEWPARAM(IDOK, BN_CLICKED))
EndDialog(hWnd, IDOK);
return TRUE;
default:
return FALSE;
}
}
void Startup(){
DialogBox(GetModuleHandle(NULL), MAKEINTRESOURCE(IDD_DIALOG), NULL, DlgProc);
ExitProcess(0);
}
#pragma comment(linker, "/subsystem:windows /entry:Startup /merge:.rdata=.text")
#pragma comment(lib, "kernel32.lib")
#pragma comment(lib, "user32.lib")
#endif
0302デフォルトの名無しさん
NGNG教訓は2chでのレスは鵜呑みにしないってこった
0303デフォルトの名無しさん
NGNGキタ━━━━━━━(゚∀゚)━━━━━━━ !!!!!
0304デフォルトの名無しさん
NGNGただしIE3だか4だかが入ってないWin95では動作しない罠
Win95をサポート範囲外にするならどうでもいいかも
0305286
NGNGIE4.0以降の環境が必要みたいです。
ご報告。
0306デフォルトの名無しさん
NGNG0307デフォルトの名無しさん
NGNGタイミング(VSのSP○でインストールされるとかWindows98では標準でインストールされてるとか)
を知るにはMSDNのどこを見ればよいのでしょうか?
またはそれらが書いてあるサイトはあるでしょうか?
MSDNやgoogleで探してみたんだけど見つかりませんでした。
0308デフォルトの名無しさん
NGNGでもここ3年ぐらいはDLL問題を聞かないなあ。
みんなstatic linkにしちゃったのかな。
0309デフォルトの名無しさん
NGNG強制的にファイルをぶっ壊す事が出来ないかと思ってます。
普通にエディタとかでファイルを開いて内容を変更して
保存しようとしても、他のプロセスが使用中とか
いわれちゃうんですが、APIでどうにかなったりしませんか?
#実運用時に突然DBが壊れた状況を作り出したいのです
0310デフォルトの名無しさん
NGNGあなた神ですよね。
0311デフォルトの名無しさん
NGNG何かモジュールやライブラリがいるのでしょうか?
MFCでAppWizardを使うやり方はなんとなくわかったのですが、SDKでやる方法
がわかりません。どなたか教えてください。
0312デフォルトの名無しさん
NGNG使用するデータベースと、接続法法によるけど。ADO 使うなら msdao15.dll あたり
を #import して使う。
\\.\PhysicalDriveNをRaw I/Oすればできそうな気もするが、
それより安いハードディスクを買ってきて物理的にぶっ壊す
ほうが安上がりかも。
0314デフォルトの名無しさん
NGNG0315デフォルトの名無しさん
NGNGSDKで複数ページ印刷は難しいんですかね?
と言うか、総ページ数の取得ってできないものなんですか?
0316デフォルトの名無しさん
NGNG0317質問
NGNGPlaySound()ではムリなようだから
なにかほかのAPIがあれば教えていただきたいんですけど。
WinMEで。←絶対条件
0318デフォルトの名無しさん
NGNGMEが絶対条件とか言ってるようだと何も知らないみたいね・・・
0319デフォルトの名無しさん
NGNG起こってしまうんちゃうか。
システム的には正常で、アプリからは壊れているように見えることが
試験には必要なんでないの。
0320298
NGNGsystemかjavaでやることにします。
質問の仕方まずかったのかなぁ。
0321デフォルトの名無しさん
NGNG画面一番下にあるタスクバーの領域がとれません
CWnd *pDeskTop = CWnd::GetDesktopWindow();
CRect m_rect;
pDeskTop->GetWindowRect(&m_rect);
タスクバーの部分も含めて取るにはどうすればいいですか
GetSystemMetrics(SM_CXSCREEN)
GetSystemMetrics(SM_CYSCREEN)
0323デフォルトの名無しさん
NGNG0324デフォルトの名無しさん
NGNG>>322で完璧な答えが出ているのにお前がしゃべる必要があるのか?
0325デフォルトの名無しさん
NGNGビープ音を鳴らしたいのですが(スピーカーから出すのじゃなく)どうすればいいのですか?
0326デフォルトの名無しさん
NGNGじゃあ一体どこから・・・。
0327デフォルトの名無しさん
NGNGフォントをフィルタリングするにはどうすればよいのでしょうか?
フォント名文字列の先頭に @ が付いてるかどうかを調べるしかないですか?
フラグでもあるのかなーと思って質問してみますた。
0328デフォルトの名無しさん
NGNGWM_MOUSEMOVEの処理で、カーソル位置の情報を調べて、LoadCursorで変更し
ようと思ってます。
カーソル位置が、キャレットであるとか、ビットマップであるとか調べる方法が
わからないです。
0329デフォルトの名無しさん
NGNGBeep()なAPIでどうだ? 漏れは使ったこと無いが。
>>326
マザーから鳴るのを知らないのか?
(厳密にはマザーじゃないかも知れんが。)
とんだ坊やだな。
0330デフォルトの名無しさん
NGNGマザーボードに搭載されてる「スピーカ」からな。
とんだ赤ん坊だね。
0331デフォルトの名無しさん
NGNGM/Bに搭載されているブザーじゃねーのか?
ブザーとスピーカじゃ物が違うのだが、知ってるか?
0332デフォルトの名無しさん
NGNG0333デフォルトの名無しさん
NGNG0334デフォルトの名無しさん
NGNG0335デフォルトの名無しさん
NGNGそれってスピーカでは?
0336デフォルトの名無しさん
NGNG1.「スピーカー以外」と指定した質問者である>>325
2.つっこんだ>>326
3.よく知らないのにとりあえずマザー説を唱えて煽った>>329
4.おもしろがってる俺
0337デフォルトの名無しさん
NGNGスピーカーの原理ではあるがスピーカー機器ではないね。
だいたいそんなAPIがあるのか。
0339デフォルトの名無しさん
NGNG認識甘い。
君は車のクラクションがスピーカだと主張しているわけか。(藁
0340デフォルトの名無しさん
NGNGブザーは振動物に固体を当てて発音している。
それはともかく、Beep()ってのがあるのは確かだな。
0341デフォルトの名無しさん
NGNG0342デフォルトの名無しさん
NGNG0343デフォルトの名無しさん
NGNGブザー作って来い。
0344デフォルトの名無しさん
NGNGなんといやらしい。
0345デフォルトの名無しさん
NGNG0346デフォルトの名無しさん
NGNGハゲシクワラタ
ナイスネタ
てかネタだよな
0347デフォルトの名無しさん
NGNG0348デフォルトの名無しさん
NGNG0349デフォルトの名無しさん
NGNGマザーに直付けのちっこいブザーやら、リード線引いてきてちゃちいスピーカーを付けるパターンやらがあるから
とりあえずマザーと書いたんだが。
イメージ的にはあってると思うが、通じないかい?
漏れだけしか通じない罠なら逝ってきます。
0350デフォルトの名無しさん
NGNG0351デフォルトの名無しさん
NGNGHDC hdc2 = ::CreateDC(NULL, printernames[target], NULL, NULL);
DEVMODE dmMode = {0};
dmMode.dmSpecVersion = DM_SPECVERSION;
dmMode.dmSize = sizeof(DEVMODE);
dmMode.dmFields = (DM_PAPERSIZE | DM_ORIENTATION);
dmMode.dmPaperSize = DMPAPER_B5;
dmMode.dmOrientation = DMORIENT_PORTRAIT;
hdc = ResetDC(hdc2, &dmMode);
プリンタにB5横しか入ってないと、プリンタに「A4入れろやゴルァ」と出るんです。
90度傾けて印刷させるにはどうアプローチすればいいですか?
0352デフォルトの名無しさん
NGNGプリンタのプロパティで縦方向印刷に設定しる!
0353デフォルトの名無しさん
NGNGうーん確かにそれだと出るんですが・・・・
ユーザに設定させたり保存させたくないんですよぉ
0354デフォルトの名無しさん
NGNG正解!ダトオモウ...
>>328
各コントロールをサブクラス化してWM_MOUSEMOVEを引っかける
のが妥当かな。
どっちも地震無し。
0355デフォルトの名無しさん
NGNG用紙横=GetDeviceCaps(hdc2,VERTSIZE) * 100;
if(縦横のサイズ != B5サイズ){
MessageBox(hWnd,"B5にしてね(ハァト",NULL,MB_OK);
exit(1);
}
0356デフォルトの名無しさん
NGNGDEVMODEがどう変わるか調べて、
それに合わせてソースを書く(w
0357デフォルトの名無しさん
NGNG英語版には縦書きという概念がないから日本語化のとき
先頭に@があるかないかをフラグ代わりにしたの
>>328
WM_SETCURSORという専用のメッセージがあるからそっち使え
こんな感じか?
PRINTER_INFO_2 *GetDefaultDevMode(LPTSTR name){
PRINTER_INFO_2 *pinfo2 = NULL;
HANDLE hPrinter;
if (OpenPrinter(name, &hPrinter, NULL)){
DWORD size;
GetPrinter(hPrinter, 2, NULL, 0, &size);
if (GetLastError() == ERROR_INSUFFICIENT_BUFFER){
pinfo2 = (PRINTER_INFO_2 *)malloc(size);
if (!GetPrinter(hPrinter, 2, (LPBYTE)pinfo2, size, &size)){
free(pinfo2);
pinfo2 = NULL;
}
}
ClosePrinter(hPrinter);
}
return pinfo2;
}
HDC CreatePrinterDC(LPTSTR name){
PRINTER_INFO_2 *pinfo2;
HDC hdc;
pinfo2 = GetDefaultDevMode(name);
if (!pinfo2)
return NULL;
pinfo2->pDevMode->dmFields |= DM_PAPERSIZE | DM_ORIENTATION;
pinfo2->pDevMode->dmPaperSize = DMPAPER_B5;
pinfo2->pDevMode->dmOrientation = DMORIENT_PORTRAIT;
hdc = CreateDC(pinfo2->pDriverName, pinfo2->pPrinterName, NULL, pinfo2->pDevMode);
free(pinfo2);
return hdc;
}
0359デフォルトの名無しさん
NGNGキャンセルを検知するのは、どーすんでしょうか?
0360デフォルトの名無しさん
NGNGフックすれば?
0361デフォルトの名無しさん
NGNGですね。
03623ヶ月目
NGNGMFCのときはCFileFindクラスを使いますか?
サンプル等探してもCFileFindクラスを使用した例があまり見当たりません。
使い勝手等何か問題あるのでしょうか?
0363286
NGNG普通に便利だな、と思った。
0364デフォルトの名無しさん
NGNG0365デフォルトの名無しさん
NGNG0366デフォルトの名無しさん
NGNGありがとう!
0367デフォルトの名無しさん
NGNGなんだか危険な感じがしないでもない。
0368デフォルトの名無しさん
NGNG0369デフォルトの名無しさん
NGNG右クリック->プロパティ->バージョン情報
で出てくる情報を得たいんですけど、教えてください。
0370デフォルトの名無しさん
NGNGSDKだろうがMFCだろうがATLだろうが、ディレクトリ操作はSHFileOperation()
0373362
NGNG検索してみたんですが、
SP1だと複数のファイルを指定すると失敗するらしいです。
0374362
NGNG0376デフォルトの名無しさん
NGNGGetFileVersionInfoだったっけ
こんなわかりやすいAPI名で人に聞くとはお前PG向いてないよ。田舎帰れ
0377デフォルトの名無しさん
NGNGツールバーやリストボックスなどのコモンコントロールで、
背景に画像を設定するにはどうしたらいいですか?
検索しても背景色がせいぜいだったので教えていただけないでしょうか。
0378デフォルトの名無しさん
NGNGコモンコントロール・・・
それ、VB板で聞いたら?
0379デフォルトの名無しさん
NGNGVBスレね。
0380デフォルトの名無しさん
NGNGなんでVBなの?
0381デフォルトの名無しさん
NGNG378 が何か勘違いしてるんだろ。放置しといてやれよ。
0382デフォルトの名無しさん
NGNGCreateDC に DEVMODE 構造体を渡す前に (>>351 さんは代わりに ResetDC を
使ってるけど) DocumentProperties() を呼ばなくてもよいんですっけ。
DocumentProperties(NULL, hPrinter, pszPrinterName,
pDevMode, pDevMode,
DM_IN_BUFFER | DM_OUT_BUFFER);
みたいな感じ。
私が試している限り、あってもなくても関係なさそうだったんだけど
なんだか「偶然動いてるだけ」な感じがして気持ち悪いです。
MSDN によると「現在の設定を使うならこの DocumentProperties は不要」と
読めるんですよね。ここでもう混乱っす。
文書やネット上のサンプルコードや私が試した事をまとめるとこんな感じなんだけど:
上のようにして DocumentProperties を呼ぶと、"非"一時的に設定を変更
しちゃう。すなわち、次にアプリケーションを起動して DEVMODE を
取得してみると、前回 DocumentProperties で設定したモノが取得できる。
ていう解釈でよいと思いますか?
0383デフォルトの名無しさん
NGNG子ウインドウを作ると、その子ウインドウのほうが
アクティブになると思うのですが、
親ウインドウの方をアクティブにし続けるにはどうすればよいでしょうか?
今は、子ウインドウを作ったあとにSetActiveWindow関数を呼んで
親ウインドウに戻しています。
また、終了するまでアクティブでい続けるような
ウインドウを作ることはできるでしょうか。
誰かよろしくお願いします。
0384デフォルトの名無しさん
NGNG使いたくねー、こんなアプリ
0385デフォルトの名無しさん
NGNGアクティブでなくなったら終了する
0386デフォルトの名無しさん
NGNGいや、別にみんなに配るようなアプリを作っているわけじゃなくて
自分で使うのに、アクティブで無くなると困るって言うだけなんですが。
0387デフォルトの名無しさん
NGNG0388デフォルトの名無しさん
NGNG高速な描画、表示が条件なんですが、どのような方法がベストなんでしょう結局。
まず、バックバッファ相当のモノについて、
1.DIBSectionを使う
2.ただのメモリブロックを使う
3.DirectDrawSurfaceを使う(システムメモリ上??)
で、フレームバッファへの転送なんすけど、
1.Blt
2.アドレス拾ってmemcpy
とか考えられるんだけど、いったいどうすりゃストレスない描画ってできるんでしょう?
例えばフォトショップとかmameとか、ああいったのはどういった方法で実現してるんでしょうか?
0389デフォルトの名無しさん
NGNG>フォトショップとかmameとか
同列で語って良いのか・・・?
0390デフォルトの名無しさん
NGNGどちらにせよGDIとか使わずに表示まで持っていってますよね?
で、どちらも膨大なリソースを表示しているって意味では
まともにグラフィック処理してるって思うんですよ。
その方法は全然違うんだろうけど・・・
0391デフォルトの名無しさん
NGNG>どちらにせよGDIとか使わずに表示まで持っていってますよね?
マジで?
0392デフォルトの名無しさん
NGNG違うの??よく知らないんだけど。
つーか普通にDIBとかからBlt、StretchBltとかって全然重いと思うんです。
mameの60fpsとかって全然無理なレベルぐらい重いんだけど・・・
画面モードとかによるのかな?
0393デフォルトの名無しさん
NGNG君、DirectXとかその辺の基本理解してからしゃべってる?
0394デフォルトの名無しさん
NGNGあんまり。基本っつーと、どんなことかな?
0395デフォルトの名無しさん
NGNGハードウェアが「どんな操作を」支援してくれるのか、じゃないの?
0396デフォルトの名無しさん
NGNGMSDNのサンプルを見るとスレッドを使っているみたいです。
WinSock ではスレッドを使わずにできたような気がするんですが、
Wininet ではスレッドを使わない非同期通信はできるんでしょうか。
0397デフォルトの名無しさん
NGNGDelphiで作った2chブラウザでも見かけるけど・・・。
結局どうやったらできるのかな?
0398デフォルトの名無しさん
NGNGほんとにMSDN調べた?
http://msdn.microsoft.com/library/default.asp?url=/workshop/networking/wininet/tutorials/implement_async.asp
0399396
NGNG// Create a thread to handle the header and
// resource download.
cpContext->hThread = CreateThread(NULL, 0,
(LPTHREAD_START_ROUTINE)Threader,LPVOID(cpContext),
0,&cpContext->dwThreadID);
このぶぶんでThreadを作っているけど、これをやらないではできないのかという話です。
0400デフォルトの名無しさん
NGNGツールバーの場合はRebarをつかって背景画像をセットしてると思う。
0401デフォルトの名無しさん
NGNGhttp://www.codeproject.com/useritems/asyncwininet.asp
0402デフォルトの名無しさん
NGNG0403デフォルトの名無しさん
NGNGおれはGetACP() == _KANJI_CPで判定しているが、もっとうまい方法があれば、知りたい。
しかし、マルチリンガル版も視野に入れたら、GetACPしか無いような気もするんだが。
0404デフォルトの名無しさん
NGNGGetOEMCP()は?
0405デフォルトの名無しさん
NGNG0406デフォルトの名無しさん
NGNGよさげ。
0407396
NGNGふむ、ためしてみます。
0408デフォルトの名無しさん
NGNG常にGetModuleHandle(NULL)使ったらまずい?
効率を考えなければ特に問題はない。
0410デフォルトの名無しさん
NGNGありがとう
0411デフォルトの名無しさん
NGNG特に無断転載する輩の多い韓国版では動かなくしたいんですけど。
0412デフォルトの名無しさん
NGNGDLLなら保存しないとダメれすよ
0413377
NGNG試してみます。
0414デフォルトの名無しさん
NGNGそのOCXでエラーが発生した場合、VB側のOn Errorでそのエラーを捕まえたいんです。
その場合、OCX側でどのようなコードを書けば良いのでしょうか?
0415デフォルトの名無しさん
NGNGthrows Throuwable
0416デフォルトの名無しさん
NGNGCOMの偉い人がいってますた。
0417414
NGNGVB側のOnErrorで取れました。
が、
>416サソの「COMの境界を〜」って、如何いう意味なんですか?
いまいち意味が判らんのですが...出来ましたら、解説をお願いします。
0418デフォルトの名無しさん
NGNGライセンスを日本海ウェアか竹島ウェアに変更しる。
if(IDNO==MessageBox(,"竹島は日本の領土?",,MB_YESNO)) exit(-1);
0419デフォルトの名無しさん
NGNGくそMFCだとそのあたりが隠蔽されているから、わからないと思われ。
つーか、S_OKとS_FALSE以外のHRESULT直接返せ。
0420デフォルトの名無しさん
NGNGちょっと前にロケール識別子でFA出てる。
レジストリ変えられたらおしまいだから、色々複合してみるのもいいかもしれん。
0421デフォルトの名無しさん
NGNG0422デフォルトの名無しさん
NGNG話の流れからして Final Answer かな。
しかしFAなんて略すなや。
0423デフォルトの名無しさん
NGNG0424デフォルトの名無しさん
NGNGどうやればいいのか教えてください。
現在、セパレータの幅を指定して挿入しているのですが、
フラットスタイルにすると真ん中に縦線がに入ってしまい、
上下に線が見えてしまいます。
コンボボックスを大きくすれば解決するのですが、
見栄えが悪くなるのでどうしたらいいか悩んでいます。
バイナリエディタのBzが綺麗にやっているのですが、
どうやったら良いのでしょうか。
0425デフォルトの名無しさん
NGNG0426421
NGNG0427デフォルトの名無しさん
NGNG一行ずつ読みたいのですがみなさんどうやっていますか?
一行ずつ読むAPIはありませんよね?というわけで
1.Cライブラリ関数を使う
2.ReadFileで全部メモリに読んでから一行ずつ抜く
3.ReadFileで一文字ずつ読んで改行を見つける
のどれかになるのかなと思ったのですが、ライブラリ関数は使いたくない
ということと、3.では遅くなるということを考えた場合、2しかないですか?
0428デフォルトの名無しさん
NGNG2.5 ReadFileで少しずつ読んで改行までを使う
っていうかどうしてライブラリが使いたくない?
0429デフォルトの名無しさん
NGNGなぜfgetsを使いたくない?
0430デフォルトの名無しさん
NGNG一行の長さがわかんないんで。。。
0431デフォルトの名無しさん
NGNG分からないんなら、どこのメモリに読み込むの?
0432デフォルトの名無しさん
NGNGファイルサイズ分バッファを獲得してもいいけど、無駄といえば無駄だから。
0433デフォルトの名無しさん
NGNGPerl使え。
0434デフォルトの名無しさん
NGNGSetDIBitsToDeviceでJPEGをディスプレイに表示させようと思っています。
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/gdi/bitmaps_6145.asp
↑を参考に書いてみましたが、描画されませんでした。
自力でJPEG展開は出来ましたが、気になって仕方がありません。
どなたかご存知の方、手順を教えてください。
0435434
NGNG0436デフォルトの名無しさん
NGNG出来ないのならあんたに問題有り
0437デフォルトの名無しさん
NGNGそれなら不可能。プリンタのDCへStretchDIBits汁
0438壁紙がかわらん
NGNG#include "stdafx.h"
int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow )
{
SystemParametersInfo( SPI_SETDESKWALLPAPER, 0, "C:\\sample.bmp", SPIF_UPDATEINIFILE | SPIF_SENDWININICHANGE );
return 0;
}
全く変化しません.(?_?) win98se + VC6
0439デフォルトの名無しさん
NGNGこれが読めなくて
そろそろ一年。。
これはなんと発音すればいいのでしょう?
デルピ??
0440439
NGNGすみません、すれ違いとは思ったのですが、
どこで聞いてもすれ違いっぽいので書き込みました。
申し訳ない。
0441デフォルトの名無しさん
NGNG0442439
NGNGおかげ様で人前で
「でるぴ」
などと発言し、恥をかかなくてすみました。
ありがとうございます。
0443デフォルトの名無しさん
NGNG0444439
NGNGそうなんですか、
とりあえず
「でるふぃ」でいきますねw
ありがとうございました。
0446439
NGNGあっ。。
デルファイ
って書いてあるw
情報ありがとうございます。
でも自分で言うのもなんですが、
低レベルな質問ですねぇ。
0447デフォルトの名無しさん
NGNGディスプレイには使えないのですか?
言われてみると、そんな気もします・・・。
サンクス。
0448デフォルトの名無しさん
NGNGそのあとさらにSetWindowRgnであっさり新しいリージョンに置き換わると思ったら
置き換わらないYO!
これってウィンドウ破棄してリージョンセットしなきゃ無理でつかね?
0450デフォルトの名無しさん
NGNGそれでいいなら漏れのPCもうだめぽ(´д⊂
0451デフォルトの名無しさん
NGNGhfile = CreateFile("aa.bmp", GENERIC_WRITE, FILE_SHARE_WRITE,
NULL,CREATE_ALWAYS, 0, NULL);
とすると aa.bmp が全く指定した覚えのないディレクトリ内に作成されてしまう
んですが,原因はなんでしょうか.
途中で PaintDesktop() とかしてるんでカレントが変わってしまってるってこと?
0452デフォルトの名無しさん
NGNG0453デフォルトの名無しさん
NGNG0454デフォルトの名無しさん
NGNGofn.lpstrFilter = "BMP files(*.bmp)\0*.bmp\0\0";
同時に jpg も表示するにはどう書けばええんですか?
(*.bmp,*.jpg) とか色々試したがだめや
0455デフォルトの名無しさん
NGNG0456デフォルトの名無しさん
NGNG0457デフォルトの名無しさん
NGNG0458デフォルトの名無しさん
NGNG#include<windows.h>
LRESULT CALLBACK WindowProc(HWND,UINT,WPARAM,LPARAM);
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR CmdLine,int CmdShow)
{HWND hwnd;MSG msg;WNDCLASS wc;
wc.style=0;wc.lpfnWndProc=WindowProc;wc.cbClsExtra=0;wc.cbWndExtra=0;
wc.hInstance=hInstance;wc.hIcon=LoadIcon(NULL,IDI_APPLICATION);
wc.hCursor=LoadCursor(NULL,IDC_ARROW);wc.hbrBackground=(HBRUSH)(COLOR_WINDOW+1);
wc.lpszMenuName=NULL;wc.lpszClassName="Hello";
if(RegisterClass(&wc)==0)return 0;
hwnd=CreateWindow("Hello","Hello World",WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,
CW_USEDEFAULT,NULL,(HMENU)NULL,hInstance,0);
if(hwnd==NULL)return 0;ShowWindow(hwnd,CmdShow);UpdateWindow(hwnd);
while(GetMessage(&msg,NULL,0,0)){TranslateMessage(&msg);DispatchMessage(&msg);}
return msg.wParam;}
LRESULT CALLBACK WindowProc(HWND hwnd,UINT message,WPARAM wparam,LPARAM lparam)
{switch(message){case WM_DESTROY:PostQuitMessage(0);return 0;}
return DefWindowProc(hwnd,message,wparam,lparam);}
こんな俺はセンス内でしょうか
0459デフォルトの名無しさん
NGNG原因がありえますかね.SystemParametersInfo の返り値は毎回0です.エラー
#include "stdafx.h"
int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow )
{SystemParametersInfo( SPI_SETDESKWALLPAPER, 0, "森.bmp", SPIF_UPDATEINIFILE | SPIF_SENDWININICHANGE );
return 0;}
0460デフォルトの名無しさん
NGNGアクティブディスクトップを設定しても解除しても
上のプログラムは駄目.
0461デフォルトの名無しさん
NGNG0462デフォルトの名無しさん
NGNG画像を表示させるにはどうやればよいですか?
0463デフォルトの名無しさん
NGNG0464デフォルトの名無しさん
NGNGネタうざい
0465壁紙変わらん
NGNGSystemParametersInfo( SPI_SETDESKWALLPAPER, 0,s , SPIF_UPDATEINIFILE | SPIF_SENDWININICHANGE );
としたら成功でした.
lpszFileName,ってのは即文字列じゃだめなのか.
CreateFileMapping + MapViewOfFile でメモリにマッピングして
自力の loop で改行探せば?
0467デフォルトの名無しさん
NGNGこのメッセージは16進数でいうといくつですか?
教えてください。
0468デフォルトの名無しさん
NGNG0469デフォルトの名無しさん
NGNGなぜかwinuser.hをインクルードしても定義されていませんってでるんですよね。
windows.hをインクルードしてもたしか自動的にインクルードされるような
気もするんですが。
気のせいだったらすみません。
とりあえず自分でdefineしてみることにします。
0470デフォルトの名無しさん
NGNG0471デフォルトの名無しさん
NGNGOFFICEアシスタントだけ、キャプチャーできません。
CreateCompatibleBitmapとBitBltを使用しています。
どなたか、お知恵をお貸しください。
環境はVC 6.0、Windows2000です。
0472467
NGNGあ、そうですね。
_WIN32_WINDOWSの大きさを0x400以上に定義してみようかと思います。
ありがとうございました。
0473デフォルトの名無しさん
NGNGセットするほうのリージョンは毎回新しいの生成してる?
0474デフォルトの名無しさん
NGNG最初に作って使いまわしてる・・・(;´Д`)
0475デフォルトの名無しさん
NGNGそこらへんにころがっているフリーのキャプチャソフトでもとれないし。
もしかしてマウスカーソル?
0476デフォルトの名無しさん
NGNGhttp://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnapiover/html/api-overview.asp
ZDNet(http://www.zdnet.co.jp/news/0208/29/ne00_msapi.html)によると、
>WindowsがWindows Server製品と連係する際に使用する113種の通信プロトコル
らすぃ。
ぱっと見たところ、Shell Functionsが一番数が多いみたいだ。
なんか面白そうな奴見つけたら紹介して( ゚д゚)ホスィ…
0477デフォルトの名無しさん
NGNG>WindowsがWindows Server製品と連係する際に使用する113種の通信プロトコル
とは別物だな。
0478デフォルトの名無しさん
NGNG0479デフォルトの名無しさん
NGNG0480デフォルトの名無しさん
NGNGこのAPIでワークグループを変更できるみたいなんですが
使い方がさっぱりです。
できればVB用の使い方を教えてください。
0481デフォルトの名無しさん
NGNG0482480
NGNGPrivate Declare Function NetJoinDomain Lib "netapi32.dll"_
(ByVal lpServer As String,_
ByVal lpDomain As String_
ByVal lpAccountOU As String,_
ByVal lpAccount As String,_
ByVal lpPassword As String,_
ByVal fJoinOptions As Long_
) As String
こうやったんですが、原文はOPTIONALな部分も
VBではoptionalを指定しちゃうとその後ろの引数を全部optionalに
しなきゃいけないのでoptionalは外しました。
0483デフォルトの名無しさん
NGNGどれが隠しだったの?
0484デフォルトの名無しさん
NGNG今回は隠しAPIであるSHCreateDirectoryを新たに公開した。
・・・ってあんまり得した気がしない。
0485デフォルトの名無しさん
NGNGあんまり見当たらない・・・
0486デフォルトの名無しさん
NGNG0487デフォルトの名無しさん
NGNG使ってみたんですけれど、取り込んだデータ色数はディスプレ
イの設定に依存してしまいます。
get_HandleからDIBSECTIONを参照する方法と、Renderを用いる
方法の2とおり試してみましたが、ダメでした。
やはりライブラリですか?
何か良い方法がありましたら教えてください。
0488デフォルトの名無しさん
NGNG0489デフォルトの名無しさん
NGNGそういう方法も面白そうです、できればWindows APIで…
0490デフォルトの名無しさん
NGNGWM_USERCHANGED なんてあれば楽なんですが。
0491デフォルトの名無しさん
NGNG質問するときは、あげてもいいんじゃない?
というわけで、代わりにage
0492デフォルトの名無しさん
NGNGDirectShow
0493デフォルトの名無しさん
NGNGたまぁに右側に一個だけ離れているソフトがありますけど、
あれはどうやっているのでしょうか?
0494デフォルトの名無しさん
NGNG0495493
NGNG自己解決しました。
ヘルプってか〜。
0496デフォルトの名無しさん
NGNG>>12
0497487
NGNGDirectShowですか。情報不足なので調べてみます。
>>496
GifもJpegもやっかいなことになってしまいましたねぇ。
今回は個人用ということで、見逃してください…。
0498デフォルトの名無しさん
NGNGエラーダイアログが表示されます。
LoadLibraryが失敗したときにはNULLが返ってくるだけで良いので、
このダイアログを表示させないようにするにはどうすればよいのでしょうか?
0499デフォルトの名無しさん
NGNG0500デフォルトの名無しさん
NGNGarigatou
0501デフォルトの名無しさん
NGNGCAPTUREBLT
0502デフォルトの名無しさん
NGNGプロキシの設定だけはIEを参照して実際の接続はWinsockで
やるような場合、今までは自動構成スクリプトに対応するのが
面倒だったけどWinInetの新たに公開された関数で楽になった。
あとSwitchToThisWindow使うとフォアグラウンドロックを回避
できるのかな? (未確認)
0503デフォルトの名無しさん
NGNGどの関数?
0504デフォルトの名無しさん
NGNG(に限らず他にもあるかもしれないけど未確認)は、
API自体は既出なわけだけど、それはAPIに隠し機能があったとか
ドキュメントに隠し事項があったとかそういうことけ?
0505デフォルトの名無しさん
NGNG該当ページをWinInetで検索すればすぐ見つかるだろ…
まあいいや
DetectAutoProxyUrl
InternetGetProxyInfo
公開前からDependency WalkerでWININET.DLLを覗いて
「MSずるいよなー」とか思ってたから漏れ的には一番うれしい
0506デフォルトの名無しさん
NGNGFreeResourceとかFillMemoryに至っては何が新しいのか
さっぱり分からないです。
あとMultimediaのところにSndPlaySound(大文字)ってあるけど
これはsndPlaySound(小文字)とは違うの? なんかクリックすると
sndPlaySound(小文字)の説明が出てくるんだけど。
0507デフォルトの名無しさん
NGNGSDKは有償でなかった?
0508デフォルトの名無しさん
NGNG過去ログ見てないんか>>476
0509デフォルトの名無しさん
NGNGはじめて公開した関数はほとんどパラメータの説明しかないし
FreeResourceは現在return 0;だけの実装なのにいかにも
いろいろやってそうな説明してるし(たぶん昔のSDKの解説切り
貼りしたんだろう)NtCreateFileに至ってはZwCreateFileの
置換し忘れがあるし(w
0510デフォルトの名無しさん
NGNGきっとこんな感じでリスト作ったはず。
0511デフォルトの名無しさん
NGNG将来無くなるかもしれんと断りのあるもの、明らかに単なる計算ルーチンなもの
も結構あってなんだかつまらんです
0512デフォルトの名無しさん
NGNG今回は仕方なく公開しただけで
問題はサードパーティーには「将来なくなるから使うな」とか何とか
言っておきながら「Microsoftのミドルウェア」は
しっかり使ってるというダブルスタンダード
0513デフォルトの名無しさん
NGNGIsUserAdminとかInternetGetProxyInfoは手間がかなり違う。
自分でダイアログ用意すれば作れるからって
コモンダイアログがいらないってことにはならないでしょ
0514デフォルトの名無しさん
NGNGそういう「これ以外に手段がありません」というやつだけ抜き出してほしかったり
0515デフォルトの名無しさん
NGNGSingle-Threaded Apartments
いきなり挫折しますた(w
0516デフォルトの名無しさん
NGNGというものを挙げてみます。
__WSAFDIsSet - 直接使わずFD_ISSETマクロで使う。
RtlConvertSidToUnicodeString - ConvertStringSidToSidを使う。
IsNetDrive - GetDriveTypeとWNetGetConnectionで代替できる。
OpenRegStream - SHOpenRegStream*を使う。
PathGetShortPath - GetShortPathNameでよい。
SHCLSIDFromString - CLDIDFromStringを使う。
SHCoCreateInstance - CoCreateInstanceを使う。
SHCreateDirectory - SHCreateDirectoryExで代替できる。
FreeResource - Win32では何もしないので不要。
RtlCharToInteger - strtolやwcstolでよい。
RtlUnicodeToMultiByteSize - WideCharToMultiByteでよい。
ExtDeviceMode - 16ビット時代の遺物。DocumentPropertiesを使う。
RtlCompareMemory - memcmpでよい。
RtlExtendedIntegerMultiply - __int64による乗算でよい。
RtlExtendedLargeIntegerDivide - __int64による除算でよい。
RtlUniform - CryptGenRandomで代替できる。
RtlUnwind - 直接使わず構造化例外処理を使う。
RtlIsNameLegalDOS8Dot3 - XP以降ならCheckNameLegalDOS8Dot3を使う。
IsBadHugeReadPtr - 過去の遺物。IsBadReadPtrを使う。
IsBadHugeWriteOtr - 過去の遺物。IsBadWritePtrを使う。
NtQuerySystemTime - GetSystemTimeAsFileTimeを使う。
RtlLocalTimeToSystemTime - LocalFileTimeToFileTimeを使う。
0517デフォルトの名無しさん
NGNG0518デフォルトの名無しさん
NGNG改行される部分のポインタを取得したいのですが
よい方法はないでしょうか?
DrawText関数は描画した高さを返すので困っています。
0519518
NGNG0520デフォルトの名無しさん
NGNGBSD socketでどうなのかは知らないけどWinsockではマクロだよ
winsock.h見てみ
0521デフォルトの名無しさん
NGNG0522デフォルトの名無しさん
NGNG0523デフォルトの名無しさん
NGNGよくわからんがGetCurrentPositionExでも試してみたら
0524デフォルトの名無しさん
NGNG最後の3文字良いね。
0525デフォルトの名無しさん
NGNG○WNDCLASSEX
じゃなかったっけ?
0526デフォルトの名無しさん
NGNGEWX_FORCEIFHUNG
のフラグつけたらどうなるんでしょうか?
想像では
EWX_FORCEフラグに置き換えられるのではないかと思います。
確認できる手段がなくて困っているのですが、
ご存知の方、教えてもらえませんか?
0527デフォルトの名無しさん
NGNG最後の3文字良いね。
0528526
NGNGなんでこのタイミングで書き込んでしまったのか
自問自答。。
0529デフォルトの名無しさん
NGNG0530デフォルトの名無しさん
NGNGhttp://pc3.2ch.net/test/read.cgi/tech/1023359282/605-
RASPPPoEをインストールして調べてみたところ、
szDeviceTypeはRASDT_Isdnになるようです。
ここでいうISDNとはISDNボードを使った1.5Mの接続とかの
ことで、64KのふつうのISDNはRASDT_Modemになるので
RASDT_Isdnもブロードバンド扱いすればいいかと。
0531デフォルトの名無しさん
NGNGCOMポートになりすまさない内蔵ISDNとか使うとRASDT_Isdnになるよ
0532デフォルトの名無しさん
NGNGこれはどう解釈したらいいのでしょうか?
int test()
{
return ::GetLastError() != ERROR_SUCCESS;
}
::GetLastError() != ERROR_SUCCESS;が
真なら1を返し、そうでなければ0を返すというだけのものでしょうか?
test()がintの戻り値を返すようにサンプルではなっているので
気になっています。
intなのに1 or 0しか返さないのでしょうか?
それともなんらかの場合、GetLastError()の値を返したりしますか?
0533デフォルトの名無しさん
NGNGMSDNの「return」見てみな。
ちなみに「真なら1」とは限らない。
0534デフォルトの名無しさん
NGNG条件演算子は真なら1、偽なら0を返す。
これは言語で規定されている。
スレ違いだけどな。
0535デフォルトの名無しさん
NGNGそれをいったら BOOL 自体 int だしな
windef.h 見てみ
0536532
NGNG見てみましたが、特にこの問題と関係ないように思えたのですが。。
>535
それはわかってますが、
0 or 1しか返さない仕様の関数に
int型の戻り値を要求するのがおかしいな、と思いまして。
0 or 1ならBOOL型で十分じゃないかと。
>534
つまり
GetLastError() != ERROR_SUCCESS
の条件式が先に 0 or 1に評価され、
それがreturn 0 or 1に
なるという流れでよろしいでしょうか?
つまり、
GetLastError() != ERROR_SUCCESS
は条件式なので、0or1の値しかなりえないと。
あってます?
0537デフォルトの名無しさん
NGNGbool型ならじゃなくて、条件演算子ならってかいてあるじゃん
まぁ、規定されてるのはC++だけだが。
0538デフォルトの名無しさん
NGNG0539デフォルトの名無しさん
NGNGCならint型の1/0になる。
BOOLは単にintをtypedefしたもの。
で、API関係の解説はCでも使えるように大抵Cで書いてあるんじゃないのかな。
0540デフォルトの名無しさん
NGNGあるウインドウハンドルの
親ウインドウのハンドルを取得するAPIってありますでしょうか?
良かったら教えてください。
0541デフォルトの名無しさん
NGNGあるウインドウの親ウインドウのハンドルを
そのウインドウのハンドルから取得できるようなAPIは無いでしょうか
ですね。
よろしくお願いします。
0542デフォルトの名無しさん
NGNGGetParent
0543デフォルトの名無しさん
NGNGありがとうございました。
0544デフォルトの名無しさん
NGNG0546デフォルトの名無しさん
NGNGにある APIについてなんですが、
>対応情報
> Windows NT/2000:Windows NT 3.1 以降
> Windows 95/98:Windows 95 以降。Windows 95 用の再配布可能なファイルとして利用可能。
> Windows CE:対応していません
「再配布可能なファイルとして利用可能」とは、どういうことですか??
この APIをコールする実行ファイルを、一般に配布して良いということですか?
0547デフォルトの名無しさん
NGNG具体的にどのAPIなんだYO
0548デフォルトの名無しさん
NGNGIE5に含まれるとか、そんな意味だろ。この場合、IE5は再配布可能だから、Win95
でも利用可能ということになる。
よく、対応情報の回りを読んでみそ。
0549546
NGNGMakeSureDirectoryPathExistsとか。
...って、MSDN英語版では、どう記載されてるのかと思って見てみたら
>Requirements
> Windows NT/2000/XP: Included in Windows 2000 and later.
> Redistributable: Requires DbgHelp.dll 5.0 or later on Windows NT 4.0 and Windows 95/98/Me.
こういうことか。すなわち、DbgHelp.dllが必要で、この DLLを再配布して良いと。
0550デフォルトの名無しさん
NGNGSHCreateShellFolderView(Ex)
相当の処理は自前でIShellView書く以外に無いのでしょうか?
0551デフォルトの名無しさん
NGNGあれは「2000/XP上で」Microsoftのミドルウェアが使っているAPIを
公開した、という名目なのでそれ以前でもひそかに使える可能性はある。
でもIE5が必要とか。
0552デフォルトの名無しさん
NGNG連続したクラスタに割り当てられる可能性が高くなったりしますか?
0553YahooBB237224170.bbtec.net
NGNGもぐりこんで**を調べる」というようなのを読んだ記憶があるんだが,
どうやればそんなことが出来るんでしょうか.
0554デフォルトの名無しさん
NGNGんなことより、あんたの
名前欄はなんなんだ??
0555デフォルトの名無しさん
NGNGフックをかけると潜り込める
0556YahooBB237224170.bbtec.net
NGNGこっちが聞きたいよ.fusianasan としたらこれが出た.(今回も)
もちろんプロバイダはYBBですが,板の仕様?
それより実行中の別プログラムの何をフックするんですか?APIがある?
0557デフォルトの名無しさん
NGNG皆を代表して聞くが
なんで
「fusianasan」と入れる?
0558デフォルトの名無しさん
NGNGウインドウをフックする
0559fusianasa
NGNGなんか特別な意味がある?
どっかでみて適当に書いただけだが.
こんかいは fusianasa と書いてみました.
window handle を入手するんですね.どうも.
たぶんまた聞きますのでよろしく.
0560デフォルトの名無しさん
NGNGデータの一部をリストビューで表示させてるときって
データをどうやってもつんですか?
自分のデータを保持してると
リストビューにも同じ内容のデータが出来て
メモリがもったいない気がする
0561デフォルトの名無しさん
NGNGこっちのスレの最初のほうでちょっと議論があった
Windows Programing for C/C++(Not MFC)
http://pc3.2ch.net/test/read.cgi/tech/1018239290/l50
漏れは重複して持たない主義。ただMVCの分離が…
0562デフォルトの名無しさん
NGNG仮想リストビュー(オーナーデータ)でがんがれ。
0563
NGNGthx
ちょっと読んできます
0564デフォルトの名無しさん
NGNGAddAccessAllowedAceEx関数を使用し継承を設定したのですが、設定したフォルダの中に新しいフォルダを作成すると「継承元なし」のフォルダが出来てしまいます。
継承元を親フォルダに設定するにはどうしたらよいでしょうか?
OSはWindowsXPで、VC++のバージョンは6.0です。
0565デフォルトの名無しさん
NGNGこちらの方が適当だと思いますので、質問し直させてください。
VB6.0、Windows2000で、OpenPrinter関数でプリンタのハンドルが取れません。
ローカルプリンタだと大丈夫なのですが、\\SERVER\PRINTERといった
ネットワークプリンタだと失敗してしまいます。
ネットワークプリンタの場合、方法を変える必要があるのでしょうか?
0566デフォルトの名無しさん
NGNGウィンドウプロシージャをフレンド関数としてそのクラスにもたせています。
(メンバ関数のアドレスを取るのは望ましくないですよね?)
インスタンスはたくさんあるけれどもWndProcはひとつなので、
WndProcから見るとどのインスタンスに属するメッセージなのかが区別できません。
これを解決するために、CreateWindowでインスタンスポインタ(this)をWM_CREATEに
渡してSTLのmapにhWndとthisポインタを格納し、メッセージに応答するときは
hWndからthisをサーチしてインスタンスを決定する、という方法をとっています。
なんだか泥臭いので、もっといい方法はないでしょうか。
こういったことはよくありそうだと思うんですけど。
0567デフォルトの名無しさん
NGNG他に定番の方法としては、
・SetWindowLong でhWndにthisポインタを関連付けて置いて、
WndProcでGetWindowLongで取り出し。
・サンクを使う。つまり、thisポインタを埋め込んだマシンコードを
実行中にメモリに作ってしまって、それをWndProc替わりにする。ATLとか参照。
0568デフォルトの名無しさん
NGNGVirtualAllocの割り当て単位がページ毎だし、
サンク作る毎にメモリ確保してたら4kずつ取られてくよね
0569デフォルトの名無しさん
NGNG0570デフォルトの名無しさん
NGNGPAGE_EXECUTE属性をつけにゃならんだろうが
0571デフォルトの名無しさん
NGNG#include <stdio.h>
int main ()
{
unsigned char *p;
unsigned char x[] = {
0xB8,0x7B,0,0,0, // mov eax,123
0xC3 // ret
};
p = malloc( sizeof( x ) );
memcpy( p, x, sizeof(x) );
printf("%d\n",(*((int (*)(void))&x))());
printf("%d\n",(*((int (*)(void))&p))());
}
BCC32 on WinXPで実行したけど、violation出えへんかったで。
0572566
NGNGサンクですが、要するにメモリにマシン語書いておいてそこに突入させる
わけですよね? そいつをWndProc代わりにするってのがよくわかりませんが・・・。
何にしても最後にはWndProc呼んでやらないといけないですよね?
アセンブラはPC-98時代にぶいぶい言わしたくらいで最近はとんといじってません。
0573デフォルトの名無しさん
NGNG> そいつをWndProc代わりにするってのがよくわかりませんが・・・。
引数の hWnd を、アセンブラコードの部分でこっそり this とすり替えるんだよ。
0574デフォルトの名無しさん
NGNG通るかも知れないけど、EXECUTE属性のないメモリ上でコードを実行させるのは行儀悪いだろ
0575デフォルトの名無しさん
NGNG文句があるなら、Microsoftにいってくれ。
0576デフォルトの名無しさん
NGNGデフォルトで実行属性がつくから、問題ない。
そんなの処理系・環境依存だろって意見はあるかも知れんが、そもそも
VirtualAlloc とか言ってる時点で Win32 環境限定の話だしさ。
0577デフォルトの名無しさん
NGNGおおよそのところ
memcpy( buf,
//---------------------------------
mov dword ptr [esp+4] this
jmp WndProc - (buf + α)
を意味するコード
//---------------------------------
, size
);
SetWindowLong( GWL_WNDPROC, buf );
こんな感じにすると、第一引数としてhWndが入ってたはずの部分に
thisポインタの値が入った状態でWndProc関数に飛ぶので、
あとはテケトーに。
0578デフォルトの名無しさん
NGNGこんなことどこに書いてある?
0579566
NGNG行儀悪いのは大好きなのですが、hWndとthisをすり替えるってのが
ちょっとキモチワルイです。
ひとつ思ったんですが、これって誰かにサブクラス化されたらえらいことになりますね・・・。
0580デフォルトの名無しさん
NGNGecxにthisを入れてjmpすれば、
少なくともvcでは正常にthisが使えるよ。
0581デフォルトの名無しさん
NGNG公式にドキュメント化されてるかは分からないなぁ。
ただ、俺は少なくともプロセスヒープは「read/write/execute可能」という前提で
プログラミングして(いちいち GetProcessHeap && VirtualProtect なんて
やってない)。MS が出してるコードも、そうなってるしさ。
0582デフォルトの名無しさん
NGNG> ひとつ思ったんですが、これって誰かにサブクラス化されたらえらいことになりますね・・・。
なんで?
0583デフォルトの名無しさん
NGNG特殊キーの状態はGetKeyStateで取得できるのですが、
それ以外のキーの状態を取得するAPIはありませんか?
0584583
NGNG0585デフォルトの名無しさん
NGNGGetKeyboardState
0586デフォルトの名無しさん
NGNGできますた! ありがとうございます。
0587デフォルトの名無しさん
NGNG0588デフォルトの名無しさん
NGNGGetKeyboardState()で特殊キーも取得できちゃったんで、
全部コレにしてしまいました。
その、GetKeyState()で、例えばzキーやxキーを取得できるとして、
速度的にはどっちが早いんですか?
0589デフォルトの名無しさん
NGNG0590デフォルトの名無しさん
NGNGほぼ同時に実行したいのですが、どうしたらいいですか?
いつもはPeekMessageを使ってるプログラムで暇な時にSleepしてると
フリーズしたみたいになるので、その間だけGetMessageを使いたいんですが。
GetMessageを呼んだ時に送られるメッセージとかってありますか?
0591デフォルトの名無しさん
NGNG>>589
えと、ゲームを作ってて、俺マシンはK6-2の500MHzなんですよ。
んで、1フレームにイロイロ処理をしてると秒間10フレーム逝くか逝かないかで。
なんで、なるべく時間をかけたくないワケです。
0592デフォルトの名無しさん
NGNG電波ですか?
>GetMessageを呼んだ時に送られるメッセージとかってありますか?
これがあったら無限ループ
0593デフォルトの名無しさん
NGNG入力くらいスレッド分けろよ。
WM_KEYDOWNが来た時点でイベント起こしたりSwitchToFiberしたり汁。
そもそも、ループ毎に検出しなきゃならないのはジョイスティックくらいで、
キーボードなんかはイベントで十分。
0594デフォルトの名無しさん
NGNGアクションゲーなんですが、スレッド使うんですか? それはちょっと。
0595デフォルトの名無しさん
NGNG500mm秒ほど寝かせてPeakMessage使え。
スレッドの切り替え時間が十数mm秒だからほかへの影響もほとんどないし、
反応が悪くなることもない。
0596デフォルトの名無しさん
NGNGMsgWaitForMultipleObjects
0597デフォルトの名無しさん
NGNG500mm秒って50cm秒でしょうか?
ってどのくらいの長さですか?
0598デフォルトの名無しさん
NGNG多分>>595は500�_秒と表現したかったんだろうけど、
ホントは500マイクロ秒と言いたかったのではないと予測。
0599デフォルトの名無しさん
NGNG親ウインドウにメッセージを返すのに、どの変数を
どういう風に設定すれば良いのかがわからないのです。
0600デフォルトの名無しさん
NGNG何のメッセージを返すの?
自前で処理したいメッセージなら処理してリターン、
それ以外はDefWindowProcにそのまま渡せばいいんだけど。
0601デフォルトの名無しさん
NGNGWM_QUERYENDSESSION
で検出したのはいいのですが、
lParamがシャットダウンも再起動も
共に0になってしまいます。
見分ける方法はないでしょうか?
WinXP、VC.NETです。
0602デフォルトの名無しさん
NGNG0603デフォルトの名無しさん
NGNG自作のエディットコントロールで、NotifyメッセージをEDIT互換にしたいとかじゃないの?
見分けても意味ないだろ。
0605601
NGNG見分ける方法はあるのですか?
それともないのですか?
0606デフォルトの名無しさん
NGNG何をやりたいのか、もう少し具体的に書いてみれば? 代案が出てくるかも
知れんぞ。
0608601
NGNG別スレですこし話したのですが、
ファイルを定期的にバックアップするツールを作っています。
その機能の一部に
終了時、バックアップをとる
というのがあるんですが、
これを実装するためです。
別スレでは、シャットダウン時は
重い作業厳禁、といわれたのですが、
ファイルのコピーなので仕方ないかな、と思って開発進めてます。
シャットダウン時にコピーすると応答が無い、という
ダイアログが出てしまいます。
ですから
WM QUERYENDSESSIONでFALSEを返し
システムからのシャットダウン要求を中断、
WM ENDSESSION中側でファイルの処理、
その後ExitWindowsExでシャットダウン
とするように動かしたいのですが、
一度止めて、ExitWindowsExする時に、
シャットダウンならシャットダウン、
リブートならリブート、と引数を変化させる必要が
あり、どうしても必要な情報と思ってます。
0609デフォルトの名無しさん
NGNGそんな感じって...自分でまともに説明もできんのなら
標準のEditコントロールでも使っとけ。
通知したい時点で
SendMessage(GetParent(hwnd),
WM_COMMAND,
MAKEWPARAM(GetDlgCtrlID(hwnd), EN_CHANGE),
(LPARAM)hwnd);
のような感じで呼び出せばいい。
0610デフォルトの名無しさん
NGNGMFCスレで、そのソリューションを提示した者だ。
if ( lParam & ENDSESSION_LOGOFF )
でちゃんと区別つけられたよ(Win2000)。
0611601
NGNGすみません、毎度毎度ご迷惑おかけします。
あたりです。
そんな定数あるとは知りませんでした。
winusuer.h内のしかも
ExitWindowsExの近くに
#define EWX_LOGOFF 0
#define EWX_SHUTDOWN 0x00000001
#define EWX_REBOOT 0x00000002
#define EWX_FORCE 0x00000004
#define EWX_POWEROFF 0x00000008
#if(_WIN32_WINNT >= 0x0500)
#define EWX_FORCEIFHUNG 0x00000010
とあり、他のも区別できそうです。
.hへ定数を調べにいくという考えは持ってませんでした。
次から気をつけたいと思います。
ありがとうございました。
0612601
NGNG勘違いしてました。
これはExitWindowsExの引数に使う定数ですね。
>610さんのおっしゃられてる方法だと、
確かにログオフは検出されますが、
シャットダウンか再起動かは判別できないようです。
簡易的にはWM_QUERYENDSESSIONの
lParamが1か0かで同じ判断ができるようです。
喜びのあまり、てっきり
EWX_SHUTDOWNをENDSESSION_SHUTDOWNと
勘違いしていたようです、すみません。
ENDSESSION_LOGOFFもあるならと
ENDSESSION_SHUTDOWN
なども探してみましたがどうやらログオフしかないようです。
シャットダウンと再起動を見分けることはできないのでしょうか?
0613デフォルトの名無しさん
NGNGWM_CLOSE -> WM_DESTROY -> WM_QUIT
の順番でいいんでしょうか?
WM_DESTROYでオブジェクトの解法とかしてるんですけど
なんかの解法忘れがあるっぽくて、終了後CPU占有率が70%くらいになってしまう...
0615613
NGNGはずかちー・・・
0616デフォルトの名無しさん
NGNG0617613
NGNGイカレたOSでコンパイルしたexeって
やっぱイカレてるのかな
0618デフォルトの名無しさん
NGNGGetForegroundWindow を使えば、取得できないことはないですが
ちょっと違うんです。
あとは、GetDesktopWindow から下がっていくぐらいしかわからなかったっす。
関数の引数に与えてやれる情報は、何もないっす。
具体的には、DLL からその呼び出されているウインドウのハンドル
を取得したいのです。
DLLに直接ウィンドウハンドルを渡してやるとかは、ナシっす。
それをやりたくないのでありまして・・・。
0619デフォルトの名無しさん
NGNGWndProcの第一引数にハンドルが入ってくるが
0620デフォルトの名無しさん
NGNGこれは、田舎のひなびた小さな学校のHPを100万ヒットの
人気HPにしてあげようという運動です。現在のターゲット校は上記です。
多くの皆さんクリックしてあげて下さい。
HPに飛んだら、2,3回更新していただくと、もっとありがたいです。
どんどんコピペして他の板にまいてください。
0621bloom
NGNGhttp://www.leverage.jp/bloom/start/
0622デフォルトの名無しさん
NGNGどのウインドウのWindowProc中か知りたいということ?
スタックをさかのぼるしか方法ないと思うが
0623618
NGNG実行しているプログラム=プロセスのことで、あってるのかな。
具体的にいいますと、a.exe ってのが、x.dll を使ってるとします。
このとき、a.exeが、自分自身ってことです。
そして、やりたいことというのは、x.dll からa.exe のウィンドウハンドルを
取得したいのです。
もしかして、DllMainの第一引数でOK???
もうちょっと調べてみます〜。
0624デフォルトの名無しさん
NGNG一つのプロセスは複数のウインドウを所有できることを忘れてないか?
0625デフォルトの名無しさん
NGNGまずこれを理解しよう。
コマンドラインで使うようなプログラムはウインドウを持たないし、
Exploror等は1プロセスでいくつものウインドウを持ってる。
0626デフォルトの名無しさん
NGNGまぁ、プロセスが持つウィンドウを全部調べたいと仮定して、EnumWindows & GetWindowThreadProcessId が妥当なところだろう。
0627618
NGNGなんとかできあたみたいです。
アドバイス役にたちました。どもッス。
0628デフォルトの名無しさん
NGNG0629デフォルトの名無しさん
NGNGこれってシステムの背景色で透過させることはできないのでしょうか?
システム背景色は設定で変えられるので、ビットマップの周辺に灰色を塗っただけじゃ
浮いてしまう可能性がありますし、ダサいので・・・。
それと、メディアプレーヤ6.4のツールバーのようにツールバーを下の方に移動したいのですが、
SetWindowPosを受け付けてくれません。完全に下にへばりつかせるか、上にへばりつかせるかしか
できないようです。これもなんとかならないでしょうか。
0630デフォルトの名無しさん
NGNG0631デフォルトの名無しさん
NGNG「bitblt 透過」でgoogleしる。
0632デフォルトの名無しさん
NGNGマスクを生成して自前で透過処理を行え、ということでしょうか?
0633デフォルトの名無しさん
NGNG0634デフォルトの名無しさん
NGNGネタ?かなり笑ったんだけど…
0635デフォルトの名無しさん
NGNG0636デフォルトの名無しさん
NGNGこれは漏れのプリンタ(MJ-900C)がボロいからでしょうか?
0637
NGNG0638デフォルトの名無しさん
NGNG3回も出やがった
0639あ
NGNG何を聞きたいのかよくわかりません。
検索エンジンにでも聞いてください。
0640638
NGNGCライクにベタ打ちしてる間は動いてたけど
DirectXの初期化とかをまとめてクラス化してったら出るようになった
んだけど、なぜか初期化の前で出る
わけわかめ
0641デフォルトの名無しさん
NGNG0642デフォルトの名無しさん
NGNG>For example, to move in the range from 2 gigabytes to 4 gigabytes set
>the contents of lpDistanceToMoveHigh to zero, or ・・・
^^^^^^
なんで 0 なんですか?1なら納得なんですが...
nSize = (nSizeHigh * (MAXDWORD+1)) + nSizeLow
ですよね???
0643デフォルトの名無しさん
NGNGSetFilePointerのリファレンスは読んでないけど、それを見る限り間違ってないように思うけど?
2G〜4Gなら、32ビットに収まる範囲だろ?上位DWORDはゼロでいいんじゃないの?
4G〜8Gが、上位DWORD=1になるんじゃない?
0644デフォルトの名無しさん
NGNGサンプル通りLARGE_INTEGER使えって事だ
0645642
NGNGDWORD SetFilePointer(
HANDLE hFile, // ファイルのハンドル
LONG lDistanceToMove, // ポインタを移動するべきバイト数(下位32ビット)
PLONG lpDistanceToMoveHigh, // ポインタを移動するべきバイト数(上位32ビット)
DWORD dwMoveMethod // 開始点
);
確かにそうなんですが、下位32ビット lDistanceToMove は符号付って
書いてあるんです...もしかして、lpDistanceToMoveHigh が
Non-NULLのときは、lDistanceToMoveは符号無しとして扱われるのかな?
//実験すればすぐ分かりそうなもんですが...
今カキコしてる環境では実験できないもんで(;´Д`)
0647デフォルトの名無しさん
NGNG> Non-NULLのときは、lDistanceToMoveは符号無しとして扱われるのかな?
そりゃそうでしょ。両方が符号ビット持ってどうするのよ。
0648デフォルトの名無しさん
NGNG644じゃないけど
32ビットで符号つきならMSBと31ビットだけど
64ビットなら符号を上位32ビットに移せば下位32ビットの
MSBは符号を示す必要がなくなるじゃん。
下位32ビットで4GBまで表現できるわけでしょ。
0649デフォルトの名無しさん
NGNG0650デフォルトの名無しさん
NGNGウィンドウプロシージャに WM_CREATE が送られるとき、その lParam に渡すために使われます。
0651デフォルトの名無しさん
NGNGMSDN参照。
ウィンドウを生成したときに WM_CREAT メッセージが
WinProcに飛んでくるがそのときに lParam 値に設定される。
使い方はお好きなようにどうぞ。
0652651
NGNG0653642
NGNGこんな夜更けにどうも。勉強になりますた。
>For example, to move in the range from [0] to 4 gigabytes set
>the contents of lpDistanceToMoveHigh to zero, or ・・・
こう書いてくれれば...
0654デフォルトの名無しさん
NGNGfrom 2 to 4 で問題ない。その少し前から文脈をよく読め。
0655636
NGNG>>636
ひょっとして
CreatePen(PS_SOLID, 0, RGB(204, 204, 204))
とかで作ったペンで線書いても綺麗に出ないんでしょうか?
MSDN にそれっぽいことが。。。
中間色の直線を綺麗に出す方法どなたか教えてください。
0656デフォルトの名無しさん
NGNG画面の色数がハイカラーやフルカラーなら普通に問題なく出るよ。
256色の場合はパレットを操らないとだめ・・・
0657デフォルトの名無しさん
NGNG0658デフォルトの名無しさん
NGNGカラープリンタで1ドットの太さの線を描いてもディザリングの
処理のせいで思ったよりで綺麗に出ないんじゃないの
0659デフォルトの名無しさん
NGNG中間色がそのまま出る、昇華型プリンタを買ってくる。
0660デフォルトの名無しさん
NGNGそれらに渡さないでを全て引き受けるような方法ありませんか?
0661デフォルトの名無しさん
NGNG0662あ
NGNGメッセージをフックする。
>それらに渡さないでを
そんなことしたらえらいことになるぞw
0663デフォルトの名無しさん
NGNGフックというものですね、少し調べてみます。
>>662
>>それらに渡さないでを
>そんなことしたらえらいことになるぞw
そうなんですけどね、これができないと困るんですw
画面上でペイントみたいにお絵かきしたいんですが(お絵かきが最終目的ではありませんが・・・)
マウスのイベントをデスクトップや開いてるアプリに取られるとうまくいかないと思ったので。
0664デフォルトの名無しさん
NGNG#define STRICT
#include<windows.h>
LRESULT CALLBACK WindowProc(HWND hWnd,UINT iMes,WPARAM wPrm,LPARAM lPrm)
{
switch(iMes){
case WM_DESTROY: PostQuitMessage(0); break;
case WM_MOUSEMOVE:
if(wPrm & MK_LBUTTON){
HDC hDC = GetDC(hWnd);
if(hDC){
int y = HIWORD(lPrm);
int x = LOWORD(lPrm);
HBRUSH hb=SelectObject(hDC,CreateSolidBrush(RGB(255,0,0)));
Ellipse(hDC,x-8,y-8,x+8,y+8);
DeleteObject(SelectObject(hDC,hb));
ReleaseDC(hWnd,hDC);
}
}
break;
}
return DefWindowProc(hWnd,iMes,wPrm,lPrm);
}
--- 続きます ---
0665664
NGNGint WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR CmdLine,int CmdShow)
{
HWND hWnd;
MSG msg;
WNDCLASS wc;
memset(&wc,0,sizeof(wc));
wc.lpfnWndProc=WindowProc;
wc.hInstance=hInstance;
wc.hCursor=LoadCursor(NULL,IDC_ARROW);
wc.lpszClassName="Hello";
if(! RegisterClass(&wc))return 0;
hWnd=CreateWindow("Hello","Hello",WS_TILEDWINDOW,
CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,
CW_USEDEFAULT,NULL,NULL,hInstance,0);
if(! hWnd)return 0;
ShowWindow(hWnd,SW_SHOWMAXIMIZED);
while(GetMessage(&msg,NULL,0,0)){TranslateMessage(&msg);DispatchMessage(&msg);}
return msg.wParam;
}
0667デフォルトの名無しさん
NGNGLOGBRUSHでDIBペンやHATCHペンではダメでした。
0668デフォルトの名無しさん
NGNG意味不明
0669デフォルトの名無しさん
NGNG斜め45度に傾いた直線型のペンを作りたいとか?
0670デフォルトの名無しさん
NGNG全てフックするなり、ログを取るなりできるデバッガ/ツールを御存知ないで
しょうか。
# いまのところ ollydbg と言うデバッガを使っているものの、DLL 内の
# エントリポイント全てにブレークポイントを設定するのは困難なので、
# もう少しいいデバッガ/ツールが欲しくなっています。
0671デフォルトの名無しさん
NGNGただいま戦闘中!!!
嫌いな人はこちらへ漏れなく串つき
http://live.2ch.net/test/read.cgi/festival/1029826982/l30
頭のいい人限定
0672グローバルIPの取得方法
NGNGIpconfigで書き出したテキストから読み込む方法と
試したのですが、あまりいい方法だと思いません。
みなさんどうしてます?
0673デフォルトの名無しさん
NGNG0674デフォルトの名無しさん
NGNGOCNとか犀ネットの専用線なら吐く。
吐かないのはADSLでマスカレードかかってる場合。
0675デフォルトの名無しさん
NGNG漏れは672じゃないが、
モデム直結なら、グローバルIPを吐くんじゃないの?
当方、ルータユーザーだから分からんが。
0676デフォルトの名無しさん
NGNGなお、ADSLのようにグローバルIPを変換しているような鯖は、
グローバルアドレスは実際の鯖のIPとは別なので、
あらかじめ外向けのホスト名を自分でセットしておく。
int setinetaddrbyname(struct sockaddr_in &addr, const char *s) {
struct hostent *hp;
if ((hp = gethostbyname(s)) == NULL) { // 引けない
return -1;
} else if (hp->h_addrtype != AF_INET) { // IPv6/NetWare?
return -1;
} else {
addr.sin_addr.S_un.S_un_b.s_b1 = hp->h_addr_list[0][0];
addr.sin_addr.S_un.S_un_b.s_b2 = hp->h_addr_list[0][1];
addr.sin_addr.S_un.S_un_b.s_b3 = hp->h_addr_list[0][2];
addr.sin_addr.S_un.S_un_b.s_b4 = hp->h_addr_list[0][3];
return 0;
}
}
0677使えねーPaintDesktop
NGNGActivDesktop のときに取れません.
方法はあります?
0678使えねーPaintDesktop
NGNG0679グローバルIPの取得方法
NGNGそうなんですよねぇ
うちはADSLモデム直なのでipconfigでもいいのですが
環境によって使えないのはどうかと思いまして
>>676
非常に申し訳ないのですが理解不能です^^;
676さんの書き込みをヒントになんとか頑張ってみます。
分からなかったときはまた書き込むと思いますが
そのときはよろしくお願いします。
ありがとうございましたー
0680デフォルトの名無しさん
NGNG>>669
>斜め45度に傾いた直線型のペンを作りたいとか?
そうです、ペンの形が45度傾いた物です、説明不足でした。
LineToで線を引いたときに、傾きと同じ角度の線をひくと細く、
傾きと垂直な方向に線を引くと太くなるようなペンを作りたいのです。
落書き機能を実現するためで、ペンの形を色々変えたいのですが、
丸と四角はPS_ENDCAP_ROUNDとかで実現できたのですが、斜めに傾いた
ものはつくれませんでした。
0681デフォルトの名無しさん
NGNG/ ←こういうやつ?
◆ 右下に引きずるとこうなって
/ 右上に引きずるとこうなるってやつだよな?
/
0682デフォルトの名無しさん
NGNGすが、自分の作ったプログラムのウィンドウ上ではSetCursor()API
を使用するだけで可能ですが、それ以外のウィンドウではウィンドウ
のシステムで設定されているカーソルになってしまいます。
どなたか、自分のプログラム以外のウィンドウ上のマウスカーソルの
変更方法を知っている方はいらっしゃいませんか。
0683_
NGNGで、[インストール]するとドライバが入るわけですが、
あれってどういう機構になっているんでしょうか?
なにかinfファイルを処理するコマンドに食わせているのか、
シェル?にそういう機構が組み込まれているのか。
インストーラからドライバを入れたいのだけど...。
どうしたらいいのか検討つきません。
どなたかご存知の方いらっしゃいませんか?
0684デフォルトの名無しさん
NGNG> うちはADSLモデム直なのでipconfigでもいいのですが
> 環境によって使えないのはどうかと思いまして
それは、しょうがない。そもそもルーター経由の場合は、ルーターのグローバル
アドレスの情報はルーターにしかないから取り様が無い。
ところで、何でグローバルアドレスを知りたいの ?
ついでに、一つのマシンに複数の IP アドレスが持てることは知ってるよね ?
0685デフォルトの名無しさん
NGNG> なにかinfファイルを処理するコマンドに食わせているのか、
> シェル?にそういう機構が組み込まれているのか。
explorer で関連付けされてるよ。うちのマシンだと...
C:\WINNT\System32\rundll32.exe setupapi,InstallHinfSection DefaultInstall 132 %1
となっている。
0686デフォルトの名無しさん
NGNG遅レスですみません。そうです、そういうペンです。APIで設定次第で
できるようなものではないですか? PS_ENDCAP_FLATというのがあったんですが
あれはペンの角度がラインの角度と勝手に垂直になってしまうのです。
0687_
NGNG例えば、席をはずしたいがスタンバイはしたくない場合に
使いたいと思っています。
google などで検索してもわかりませんでした。
0688デフォルトの名無しさん
NGNG角度から計算して線の太さを変えてみたらどうか、と思ってみるテスト。
あるいはPolygonで平行四辺形を描くとか。
0689デフォルトの名無しさん
NGNG> 自分のプログラム以外のウィンドウ上のマウスカーソルの変更
勝手にされたらウザいからやめれ
0690デフォルトの名無しさん
NGNGデスクトップキャプチャソフトとか作りたいんでないかい?
ドラッグで範囲指定できるような
0691デフォルトの名無しさん
NGNG何も問題ないわけだが
0692デフォルトの名無しさん
NGNGあ、そっか。普通に計算して描画させればいいですね。
なるほど、ペンを使うことばっかり考えてました、
0693デフォルトの名無しさん
NGNGマウスカーソルも変更されてるから>>690の言ってるような可能性もないわけではない。
0694デフォルトの名無しさん
NGNGマルチディスプレイ環境で、ディスプレイを指定して
(たとえばセカンダリ・ディスプレイに)Windowを
作るにはどうすればいいのでしょうか・・・
たとえば1024*768のディスプレイが2つ左右に並んでいる場合、
createWindowの引数でWindowの位置を(1300,200)とかに
すれば一応右側のディスプレイにWindowを作ることは出来ますが、
これだとディスプレイが上下にある場合に対応できない、等の
問題が生じてしまいます。必ずセカンダリディスプレイの中央に
Windowを生成したい、というときにはどうすればいいのでしょう??
0695デフォルトの名無しさん
NGNGEnumDisplayMonitors/GetMonitorInfo (98/2000以降ゆえ注意)
あたりでセカンダリディスプレイの座標系を調べて
そこにMoveするというのはどうかなあ
やったことないので実験結果プリーズ(はぁと)
0696デフォルトの名無しさん
NGNGEnumDisplayMonitors/GetMonitorInfo
0698デフォルトの名無しさん
NGNG>問題が生じてしまいます。必ずセカンダリディスプレイの中央に
>Windowを生成したい、というときにはどうすればいいのでしょう??
ユーザが二つのモニタを左右に配置しているか上下にしているか
コードで知ることはできるのだろうか?
コード上では、いつも左右に配置していると仮定するとよいのでは?
0699デフォルトの名無しさん
NGNGinfファイルの書式についてはPlatformSDKに簡単な説明があったはず。
ただ、深くまで知ろうとすればDDKが必要。
>>687
WindowMessage、SystemCommand(詳細忘れた。MSDN探せば直ぐ見つかる)
0700デフォルトの名無しさん
NGNG第一引数のインスタンスハンドルの値が不変であることは保証されてますか?
クラスのprivateメンバに組み込もうか
必要になる度に呼び出そうか悩み中
0701デフォルトの名無しさん
NGNG不変というのが変数(第一引数)の値のことを言ってるのか
実際のハンドルのことを言っているのかよくわからん。
ハンドルは不変だし、
変数の方もローカルな変数である以上、
自分で書き換えるような真似をしなければ不変。
0702デフォルトの名無しさん
NGNGというか、日本語間違えました
要はOSから割り当てられたアプリケーションのハンドルが
アプリケーションが終了するまで不変かどうか知りたかっただけです
ありがとう
0703デフォルトの名無しさん
NGNG>702=>700
で
>701へのレスでした
0704デフォルトの名無しさん
NGNGsocketで接続しデータを読み込む際
非同期で読み込みたいのですが
WSAAsyncSelec を利用するのはわかりましたが、
それ以外の方法はないのでしょうか?
(ウインドウを使わずにやりたい)
0705デフォルトの名無しさん
NGNGWSAEventSelect
0706デフォルトの名無しさん
NGNG0707デフォルトの名無しさん
NGNG0708デフォルトの名無しさん
NGNG0709デフォルトの名無しさん
NGNG書き換えたんですが、つまみをぐりぐりいじったときの描画が微妙です。
こういったことを紹介しているサイトなどはありますでしょうか?
0711デフォルトの名無しさん
NGNG自前でゴリゴリ書かないとダメですか?
0712デフォルトの名無しさん
NGNG自分で書くしかないのでは
0713デフォルトの名無しさん
NGNGいや、80文字目で、とか。。。
まぁ自分でやるのは別にいいんですけど、
そういうワードラップ用コールバックが指定できる関数ありませんでしたっけ?
0714694
NGNG>>696
>>698
ご返答ありがとうございました。
> やったことないので実験結果プリーズ(はぁと)
> ユーザが二つのモニタを左右に配置しているか上下にしているか
> コードで知ることはできるのだろうか?
> コード上では、いつも左右に配置していると仮定するとよいのでは?
こんな感じでマルチモニタの情報をもらえました。
(モニターを上下に配置したときの例)
(1つ目のディスプレイについて)
仮想モニタ上の位置(rect): (0, 0, 1600, 1024)
デバイス名: \\.\Display1\Unit0
(2つ目のディスプレイについて)
仮想モニタ上の位置(rect): (0, 1024, 1024, 1792)
デバイス名: \\.\Display1\Unit1
0715694
NGNGちなみに一つ目が1600*1024で二つ目が1024*768だった
時の例です。
0716デフォルトの名無しさん
NGNGソニータイマー関数はありますか?
0717デフォルトの名無しさん
NGNG画面に描画をしつづけると、10秒後ぐらいから描画がされないく
なってしまう現象があります。(内部での処理は正しく続く)
これってXPになってからの仕様なのでしょうか?
ちとすれ違いスマソ
0718デフォルトの名無しさん
NGNGOSに処理を返さないってどういう意味よ。
GetMessageやPeekMessageを呼ばないってこと?
もしそうなら、WM_PAINTの処理とは他のところで
直接描画してるってこと?
> 描画がされないくなってしまう現象があります。
> (内部での処理は正しく続く)
描画がされなくなるってどういう画面になるのよ。
正しく続くって、デバイスコンテキストの取得も
描画関数の戻り値も調べてみて成功しているってこと?
もっと具体的に説明しよう。
0719717
NGNG舌足らずですみません。
> GetMessageやPeekMessageを呼ばないってこと?
> もしそうなら、WM_PAINTの処理とは他のところで
そうです。
InvalidateRect(hWnd, &rc, TRUE);
UpdateWindow(hWnd);
で直接WM_PAINTを呼んでいます。
他のケースではモードレスでダイアログを立ち上げて
時間のかかる処理中で進捗状況を
SetDlgItemText(hWnd, IDM_CURRENT_STATUS, sTmp);
でループ中で書き換えています。
> 描画がされなくなるってどういう画面になるのよ。
画面が真っ白になってしまいます。
> 正しく続くって、デバイスコンテキストの取得も
戻り値は調べてなかったです。
これがおかしくなってたのかな?
ちと調べてみます。
0720デフォルトの名無しさん
NGNG>InvalidateRect(hWnd, &rc, TRUE);
>UpdateWindow(hWnd);
ループ中にメッセージ処理しなきゃ意味ないよね?
0722デフォルトの名無しさん
NGNGあ、それなら俺の環境(Win98SE)も似た現象が発生するよ。
Winを起動してからかなりの時間使った後に限ってだけど、
自前の画像ビューアとかIEとかで、大きな画像を表示させると、
描画されずにクライアント領域が全部真っ白(背景色)になる。
この時、小さい画像なら描画される。
(まるでシステムリソースが残っていないような感じ)
普通のメッセージループを使って、WM_PAINTでの応答で
BeginPaint
StretchDIBits
EndPaint
としているだけなんだけどね。
API関連の戻り値は全部成功を返してくるので、
アプリケーションレベルでは異常を認識できない。
1つのマシンだけで起きるので、ビデオカード(G400)の
ドライバに関連する問題かなって思って諦めてる。
>>720
ループなど必要なし。
自スレッドのウィンドウなら、
UpdateWindowを呼んだ時にWM_PAINTが送られてくる。
0723722
NGNG0724722
NGNG0725717
NGNGあ、Win98SEでも発生するんですか。
手持ちのマシンではThinkPad X24 のXPで発生するのと
客先のマシンで発生してます。(機種は不明)
自作のXPマシンでは問題ないのでやっぱりVGAのドライバに
依存するんでしょうかね。
(ただこちらでは起動後の時間には関係なく発生しますけど)
情報ありがとうございました。
客先には仕様だと言って逃げることにします。
0727デフォルトの名無しさん
NGNG(メーターの表示板みたいな形)んですが,何が原因でしょうか.
0728デフォルトの名無しさん
NGNGウィンドウからはみ出したとか・・・
0729デフォルトの名無しさん
NGNGクライアントのサイズ←→ウィンドウのサイズの差分だけ欠けてるとか。
0730デフォルトの名無しさん
NGNG0731デフォルトの名無しさん
NGNGウィンドウのサイズ変更もできない
ただ白い四角形が表示されるだけのウィンドウって作れますか?
0732デフォルトの名無しさん
NGNGもちろん。
0733デフォルトの名無しさん
NGNGVAIOシリーズにだけOEM供給されています
0734デフォルトの名無しさん
NGNGhttp://www.users.gr.jp/ml/archive/delphi/25766.asp
ここ見ると、
規約 順序 後始末
stdcall 右から左 関数
pascal 左から右 関数
cdecl 右から左 呼び出し側
と説明されてますが、
__pascalコールで呼び出す必要のあるWin32APIってありましたっけ。
一部(wsprintfなどは__cdecl)を除いて、__stdcallですよね?
windef.hを見てもPASCALは__stdcallと定義されてるし。
x86を前提とした場合は__pascalは使われないと考えて良いのでしょうか?
0735デフォルトの名無しさん
NGNG0736デフォルトの名無しさん
NGNG0737びひゃ〜ん ◆CplusNDg
NGNGstatic CWnd* PASCAL GetFocus( );
0738びひゃ〜ん ◆CplusNDg
NGNG「__pascal、__fortran、__syscall
の各呼び出し規約はサポートされなくなりました。」
と書いてある。>>734にあるようにPASCALはマクロだったのね。逝ってきます。
0739734
NGNGいや、ですから、そのPASCALの元定義は__stdcallになってます。
(windef.h参照)
0740デフォルトの名無しさん
NGNG741をよく読め。
> windef.hを見てもPASCALは__stdcallと定義されてるし。
0741734
NGNG>>738
あ、サポート外ってことでしたか。
これですっきりしました。
調べていただいた方々、ありがとうございまいた。
0745 ◆BkH732nY
NGNGサンプル等あったら教えて下さい。
0746デフォルトの名無しさん
NGNG構造体もなにもバイナリで渡すだけだと思うのだが。
0747デフォルトの名無しさん
NGNGやはりMAPIでしょうか?数行でできないでしょうか?
0748デフォルトの名無しさん
NGNGつーかそんな変なの使わずともsocketで数〜十数行だと思うが。
0749748
NGNG0750デフォルトの名無しさん
NGNG0751デフォルトの名無しさん
NGNGいや SMTP等をもってくるのが めんどくて
0752デフォルトの名無しさん
NGNGあと、数〜十数は言い過ぎ。
確かに、送信部分だけならそうなるけど、
q-printとかbase64エンコードも事実上必須だし。
0753デフォルトの名無しさん
NGNG送信だけならbase64だけでいい
あと必要なのはShift-JISからJISの処理だね
しかしbase64もShift-JIS->JISもSMTPとは関係ない
MIMEとSMTPをごっちゃにしないほうがいいよ
0754デフォルトの名無しさん
NGNG読めないのか?
0755デフォルトの名無しさん
NGNG0756デフォルトの名無しさん
NGNG送信ボタンは手で押せ。
0757デフォルトの名無しさん
NGNG敢えて言えば、バイトオーダーや型のサイズの違い(time_t が 32bit か 64bit か)
に気をつけよう、ってとこかね。
0758デフォルトの名無しさん
NGNGクライアントが終了すると、LIBのスレッドがクリーンナップを
経ずに強制終了してしまいます。
クライアント ==> DLL ==> LIB
DLL in
LIB in
クライアント in
クライアント out <<-- ここでLIBのスレッドが強制終了
LIB out
DLL out
スレッドを使っているLIBを安全にDLLから呼び出す方法はありますか?
もう一つ、クライアントでMFCを使っていると、LIBで確保しているメモリの
誤リーク検出をして、非常に鬱陶しいので、こっちもお願いします。
0759デフォルトの名無しさん
NGNG送信だけならMIME/base64自体不要だと思うが
0760デフォルトの名無しさん
NGNG待てばいいのでわ?
0761750
NGNG0762デフォルトの名無しさん
NGNG添付ファイルはど〜やんの?
0763デフォルトの名無しさん
NGNG送信前にすべてのデータは整っている
mimeも必要派:
>一番楽なのはどれですか?
こんな事を言っている奴が下準備を済ませているとは考えられない
0764デフォルトの名無しさん
NGNGSJIS垂れ流しだけはやめてほしい。
0765デフォルトの名無しさん
NGNGメールが切れるとサーバー設置した会社に苦情をつけるな、たぶん。
0766デフォルトの名無しさん
NGNGSMTPでUTF-7で送るのはどちらが
罪深い行為でしょうか?笑い、
0767758
NGNGPROCESS_DETACHの前にLIB内のスレッドが閉じられてしまうんです。
スレッドのメッセージキューにも、何の通知もないし、お手上げ状態です。
0768デフォルトの名無しさん
NGNG添付ファイルでSJIS生のテキストどころかバイナリファイルまで平気で
送られまくってるのにメール本文になるととたんに叩かれるのが
不思議でなりません。どちらもmultipartの一員なのに。
0769デフォルトの名無しさん
NGNG0770デフォルトの名無しさん
NGNG添付ファイルはエンコードして送ってると思うが・・・
0771デフォルトの名無しさん
NGNGデータの頭の方だけ recv して、その内容に応じた別プロセスを生成します。
別プロセスに、起動側の SOCKET を渡したいので、以下のようにしてみました。
sock を以下のように引数にしてプロセスを起動します。
AnsiString SockName = AnsiString((unsigned int)sock);
AnsiString Cmd = "HogeChildProc.exe" + " " + SockName;
CreateProcess(NULL, Cmd.c_str(), NULL, NULL, true, NORMAL_PRIORITY_CLASS, NULL, NULL, &SupInf, &ProInfo);
HogeChildProc側で、
以下のように引数から SOCKET socket を作成します。
unsigned int ui = (unsigned int)ParamStr(1).ToInt();
SOCKET socket = (SOCKET)ui;
その後、
この socket にて recv を試みるんですが、うまくいきません。
もしかして、
呼び出し側で、一度 recv しているといまく行かないのでしょうか?
0772デフォルトの名無しさん
NGNGあと一度recvしたら受信バッファからデータは消える
消したくないならrecvの引数にMSG_PEEKを指定しる
引数に親のプロセスIDを追加して、子プロセスでDuplicateHandleしれ。
また、もしOSが9x系なら、親が明示的にハンドルを継承可能としてやる
必要がある。
プロセスセーフってどういう意味?
0775デフォルトの名無しさん
NGNGプロセスチーズってどういう意味?
数種類のナチュラルチーズを加熱溶解し、乳化剤を加えて乳化させ、
それを型に入れて作ったものがプロセスチーズです。
0777デフォルトの名無しさん
NGNGありがとうございます。正常動作するようになりました。
0778771
NGNG>>772
サイズ 10 のうち、4 だけ読み込んでも受信バッファから消えてしまうのですか?
>>773
CreateProcess の fInheritHandle を true にしてますが、
これだけではダメで、DuplicateHandleも必要ということですか?
0779デフォルトの名無しさん
NGNG10bytes中4bytes読んだのなら受信バッファには6bytes残る
0780771
NGNG>>773
http://support.microsoft.com/default.aspx?scid=kb;ja;JP150523
ここを見てみると、
NTでは、特に DuplicateHandle は要らなそうだと思ったんですがどうなんでしょうねぇ?
>>779
ですかぁ
ちゃんと、SOCKETを継承できれば
親で先っちょだけ読んで、子で残りを読めるということですね
0781デフォルトの名無しさん
NGNG一応、フォルダパスを取得 → SHGetFileInfo で実現できてるんですが、
もっとストレートに取得できないかな...と。
0782781
NGNGお気に入りのフォルダのアイコンを、ユーザが変えていると破綻するので...
0783デフォルトの名無しさん
NGNGできますでしょうか?
0784デフォルトの名無しさん
NGNG0785デフォルトの名無しさん
NGNG起動して、そのソースコードの分からない(自作じゃないアプリ)を
強制終了することもできますが?
0786デフォルトの名無しさん
NGNG制御って具体的にはどんなふうに?
0787デフォルトの名無しさん
NGNG何で破綻するのかわからん。
変えていればその変えているアイコンを取得できると思うが。
0790デフォルトの名無しさん
NGNGありがとうございます。
ソフトを軌道した後にプログラムから操作(例えばファイルを開くなど)を加えることはできるんでしょうか?
0791デフォルトの名無しさん
NGNGコマンドライン引数を与えて起動させれば開くんじゃないの?
0792デフォルトの名無しさん
NGNGはい いいえのプログラヌを造りたいのですが
______
↑
之の名前がわかりません
0793デフォルトの名無しさん
NGNGそうですか。
0794デフォルトの名無しさん
NGNGガッカリだ!
0795デフォルトの名無しさん
NGNG0796デフォルトの名無しさん
NGNG0797711
NGNG子プロセスで recv しようとしたら
10093 WSANOTINITIALISED WinSockシステムが初期化されていない。
って怒られたので、WSAStartup() を追加した。
すると今度は
10038 WSAENOTSOCK 指定されたソケットが無効である。
って出るし・・・
訳わからんです(ToT)
結局、
ちゃんと SOCKET が継承されていないんだろうなぁ(´ヘ`;)ハァ
今日は帰って、頭冷やして明日やりますです。
レス下さった方、ありがとうございましたm(__)m
ではでは
0798デフォルトの名無しさん
NGNGMB_YESNO
0799771
NGNG自己レス
訂正 711→771(汗
0800デフォルトの名無しさん
NGNGべつにCreateProcessしなくても逝けるぞ
メニューの動作をエミュレート(WM_COMMAND送信)するとか、
手作業の段階をWM_KEYDOWNとかkeybd_eventとかで再現するとか。
0801デフォルトの名無しさん
NGNG0802デフォルトの名無しさん
NGNG普通に動くが。
cl -DADDR=0 -DPORT=12345 a.c -Feserver.exe wsock32.lib
cl -DADDR=0x7f000001 -DPORT=12345 a.c -Feclient.exe wsock32.lib
cl a.c -Fechild.exe wsock32.lib
#include <winsock.h>
int main(int ac, char **av) {
SOCKET s, c; char buf[128]; struct sockaddr_in sin;
PROCESS_INFORMATION pi; STARTUPINFO si = {sizeof si};
WSADATA data; WSAStartup(MAKEWORD(1, 1), &data);
#ifdef PORT
s = socket(PF_INET, SOCK_STREAM, 0);
sin.sin_family = AF_INET; sin.sin_port = PORT;
sin.sin_addr.s_addr = htonl(ADDR);
#if !ADDR
bind(s, (struct sockaddr *)&sin, sizeof sin);
listen(s, 1);
c = accept(s, NULL, NULL);
recv(c, buf, 4, 0); printf("server: %.4s\n", buf);
sprintf(buf, "child %d", c);
CreateProcess(NULL, buf, NULL, NULL, TRUE, 0, NULL, NULL, &si, &pi);
WaitForSingleObject(pi.hProcess, INFINITE);
#else /* ADDR */
connect(s, (struct sockaddr *)&sin, sizeof sin);
send(s, "0123456789", 10, 0);
#endif /* ADDR */
#else /* !PORT */
recv((SOCKET)atoi(av[1]), buf, 6, 0); printf("child: %.6s\n", buf);
#endif /* !PORT */
closesocket(s); return 0;
}
0803デフォルトの名無しさん
NGNGUINT uScanCode = MapVirtualKey( VK_INSERT, 0 );
GetKeyNameText( uScanCode << 16, keyname, sizeof(keyname)-1 );
とすると Ins ではなく Num 0 が得られ VK_NUMPAD0 との区別ができないのです。
他に VK_PRIOR, VK_NEXT, VK_END, VK_HOME, VK_LEFT,
VK_UP, VK_RIGHT, VK_DOWN, VK_DELETE などもうまくかないようです。
0804デフォルトの名無しさん
NGNGif(vk == VK_APPS ||
vk == VK_PRIOR || vk == VK_NEXT ||
vk == VK_END || vk == VK_HOME ||
vk == VK_LEFT || vk == VK_UP || vk == VK_RIGHT || vk == VK_DOWN ||
vk == VK_INSERT || vk == VK_DELETE ||
vk == VK_NUMLOCK) ext = 1 << 24;
GetKeyNameText((uScanCode << 16) | ext, keyname, sizeof(keyname)-1);
0805デフォルトの名無しさん
NGNGどうもありがとうございます。
0806デフォルトの名無しさん
NGNGTryEnterCriticalSection を使おうと思ったのですが、
そんな関数ないよって言われてしまいます。
MSDN を見ると winbase.h で宣言されていて kernel32.lib に入っているようなのですが、
windows.h をインクルードしていてもそんな関数ないと言われ、
シグネチャだけ書いてごまかしてコンパイルしても
リンク時にちゃんと kernel32.lib を引き渡していても
CCriticalSection.obj : error LNK2001: 外部シンボル ""int __cdecl TryEnterCriticalSe
ction(struct _RTL_CRITICAL_SECTION *)" (?TryEnterCriticalSection@@YAHPAU_RTL_CRI
TICAL_SECTION@@@Z)" は未解決です
math.exe : fatal error LNK1120: 外部参照 1 が未解決です。
と言われてしまいます。
どうしてでしょうか?
0807デフォルトの名無しさん
NGNGWindows 95/98:サポートされていません。
ヘッダー:winbase.h 内で宣言
インポートライブラリ:kernel32.lib を使用
NT系であることを明示しろ。
リンクエラーはextern "C"
0808デフォルトの名無しさん
NGNGありがとうございます。
#define _WIN32_WINNT 0x0500
で逝けました。
0809質問
NGNGWin98SEでVc6sp5を利用して
画像の印刷プログラムを書いています。
プリンタを示すDCにStretchDIBitsで
300*400程度のイメージを書き込むことには成功するのですが。
色々問題が発生します。
1 デジカメで撮影した1600*1600くらいの画像を貼り付けると失敗して表示されない。
2 そこそこのサイズを2枚はると失敗して何も表示されない。
3 困ったことにエラーが帰ってこない。
そこでプリンタDCを使わないでスクリーンから生成したメタファイルを
使って同じようにDIBを貼り付けてみたところ。
同じ症状になりました。
なにか解決方法はあるのでしょうか?
0810デフォルトの名無しさん
NGNG貼り付けようとしてるDIBは正しいか?
(ファイルに保存してペイントとかで開けるか?)
StretchDIBitsでディプレイに表示することができるか?
SetStretchBltModeでHALFTONEとか指定してないか?
あと、JPEGとかPNGを書き込もうとしてるけど、
ドライバが対応してない(あるいはバグがある)とか?
0811画像分割は避けたい。
NGNGStretchDIBitsで画面表示も印刷も出来ます。
BltModeは無指定です。
データはBI_RGBのDIBで、Jpegではありません。
小さな画像なら印刷も画面表示も成功します。
ただ
300万画素程度のデジカメで撮影したデータをA4一杯に広げて印刷を
かけると失敗します。
自己レスみたいですが
画像印刷について方々を調べて廻ると、
1 印刷はStretchDIBitsを使わないと失敗する。
2 24bit無圧縮のDIBを使う事、DDBは印刷できない。
3 大きなBitmapは分割して転送する。
とあります。
多分今回の問題は転送するデータが巨大?だった為でしょう。
しかし これはあくまでプリンタードライバーを経由する
問題の為であり、印刷時に限って起こる問題と思います。
メタファイルを画面のDCから取得する場合は
その制限を受けないものと考えられますが、
実際は同じ症状になります。
うーん困った。
画像分割は処理がめんどくさすぎる。
第一成功するかどうかわからん。
0812デフォルトの名無しさん
NGNGそのプリンタでは
GetDeviceCapsでRASTERCAPSを取ったとき、
RC_STRETCHDIBがないとか(w
0813デフォルトの名無しさん
NGNG719,722辺りに書かれている症状と少し似てるね。
0814デフォルトの名無しさん
NGNG0815デフォルトの名無しさん
NGNGZオーダーのこと?
それとも、単なる座標のこと?
まぁ、どちらにしてもSetWindowPosを使う
0816
NGNG症状は同じですね。
小さな画像は正常に動作し、大きな画像は真っ白になるが
APIは全て正常値を戻す。
こちらも原因調査中です。
新たにわかったことは
1 1024*1024以上のBitmap?の転送は失敗しやすい。
2 16BitのAPIを通過する処理はリソース制限を非常に受けやすい
現在画像分割処理で調査中・・あぁー面倒だぁ。
これで失敗したら手詰まりだぁ。
0817デフォルトの名無しさん
NGNG>>816
症状の切り分けとして、
単に巨大な画像を送るとコケやすいのか
拡大して、巨大にするとコケやすいのか
を判別してみたら?
SetDIBitsToDeviceとかで、等倍でデカいのを送ってみるとか
0818817
NGNG単なるミスです。他意はありません。
0819デフォルトの名無しさん
NGNGWM_GETTEXTなどはいくらSendMessageしても届いてないようです(Spy++で確認)
よろ
0820デフォルトの名無しさん
NGNGは昔の時代にはそのまま通った気がする。
いまはNTの時代だからプロセス境界を真っ当に超える
フック+共有メモリ(FileMappingによる)あたりが妥当か。
0821デフォルトの名無しさん
NGNG0822819
NGNGども。
共有メモリを作ってそこに吐き出させようとしているのですが
メッセージ自体が届きません。
フックとおっしゃってますから、メッセージでテキストを吐かせるというアプローチ自体がちがうと言うことかな?
フックって具体的に何をフックしますか?
いろいろ聞いてスマソ
>821
COMを全く理解してない物で・・
0823デフォルトの名無しさん
NGNG0824デフォルトの名無しさん
NGNGそれは、「他のアプリケーション」のコードに
手を出せることが条件では?
「他人のアプリケーション」でも有効なのか?
0826819
NGNGその可能性も疑ったのですがSpy++で確認したところ
ターゲットに送っているハズです。
ちなみに時プロセス内に用意したエディットには正しく処理されます。
ウインドを選んでメッセージを投げる部分はプログラムになっているので
手で打ち間違えたとかそう言う可能性はなさげです
0827デフォルトの名無しさん
NGNG0828821
NGNG結論から言うと、NT4では可能(Advanced Windowsのターゲット)。ならば、2000やXP
でも可能ではなかろうか?
ミソは、user32内で、WM_GETTEXTLENGTHを最初に呼び出し、共用メモリーにその長さ
を割り当て、次にWM_GETTEXTを実行する(アプリケーション側はWM_GETTEXTLENGTH
呼ぶ必要はない)。ということろを考えると、823の予測が正しいと思われ。
そもそも、自プロセス内のHWNDしか取れないAPIを呼び出して、それを利用している
という可能性は?
0829デフォルトの名無しさん
NGNG> WM_GETTEXTなどはいくらSendMessageしても届いてないようです
WM_GETTEXTは他のプロセスでも取得できますが?
0830デフォルトの名無しさん
NGNG猫でもわかるプログラミングで紹介されてるけど、そのとおりにやってもうまくいきません。
あと、ラジオボタンのどの項目がチェックされてるかを調べるのにはどうすれば?
0831819
NGNG10回に1回くらいはWM_GETTEXTが4バイトのテキストをコピーしてくれます
でもそれらをローカルにReadProcessMemoryすると内容は'00'でした。
0832あ
NGNGもうちょっと詳しく書いたら?
うまくいかないならどう上手くいかないのかを
書くのが礼儀と思うんだが。
0833画像印刷、分割失敗
NGNG>>813
>>816
StretchDIBの処理を改良して
巨大Bitmapを100*100に分割して転送するように処理を修正しました。
結果
20枚?程転送すると急に何も転送しなくなり(APIはエラーを戻さない)
(つまり虫食いの画像が出来上がる。)
さらに転送するとhDCの他のデータも全て消えてしまいます。
(先に書き込んだ部分も含めて)
書き込み先のコンテキストはメタファイル、PrinterDC共に失敗でした。
考察
bitmapの転送はサイズが巨大でも、書き込む回数が多くてもダメと言うことです。
お願い!!
もうメタファイルは諦めるしかないかも。
頼むーー誰かヒントをください
0834デフォルトの名無しさん
NGNGhttp://www.kumei.ne.jp/c_lang/sdk/sdk_31.htm
↑ここの
Button_SetCheck(GetDlgItem(hWnd, IDC_RED), BST_CHECKED);
これで、IDC_REDがオンにセットされます。 関数では
((void)SendMessage((hwndCtl), BM_SETCHECK, (WPARAM)(int)(check), 0L));
となります。(check)のところにBST_CHECKEDまたは、BST_UNCHECKEDがきます。 これに対して、ボタンの状態を取得するには、
Button_GetCheck(hwndCtl);
関数では、
((int)(DWORD)SendMessage((hwndCtl), BM_GETCHECK, 0L, 0L));
の部分を自分のプログラムに実装したんですが、
Button_SetCheckとButton_GetCheckは定義されてないとかコンパイラ言われるし、
SendMessage使ったらコンパイルはできるけど、起動したら使ってない時と変わらないです。
助けてください
0835デフォルトの名無しさん
NGNG> でもそれらをローカルにReadProcessMemoryすると内容は'00'でした。
WM_GETTEXTは他のプロセスでも直接取得できますが?
ReadProcessMemoryは何のために?
0836デフォルトの名無しさん
NGNG> Button_SetCheckとButton_GetCheck
#include <windowsx.h>
> SendMessage使ったらコンパイルはできるけど、
> 起動したら使ってない時と変わらないです。
目的のラジオボタンのウィンドウハンドルは
間違いなく取得できてるの?
実際にはSendMessageをどのようにソースに記述したの?
0837819
NGNGホントだ・・。どうもありがとうございます。
実はゴールはエディットではなくて試しにエディットを使ってただけなので
もうしばらくReadProcessMemoryなどの使い方をチェックしてみます。
(たぶんこの方法でもうまくいくはずだしこれで動かせないと困る……)
0838デフォルトの名無しさん
NGNGBOOL CALLBACK DlgProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
switch(uMsg) {
case WM_INITDIALOG:
((void)SendMessage(hDlg, BM_SETCHECK, (WPARAM)(int)BST_CHECKED, 0L));
break;
以下省略
0839デフォルトの名無しさん
NGNG右上のバッテン押したら終了するようにするにはどうすればいいですか?
0840836
NGNGダイアログウィンドウに送信してどうすんのよ?
というか上に書いた回答をもっとよく読め。
SendMessage(GetDlgItem(hDlg, コントロールID),
BM_SETCHECK, BST_CHECKED, 0);
または
SendDlgItemMessage(hDlg, コントロールID,
BM_SETCHECK, BST_CHECKED, 0);
または
CheckDlgButton(hDlg, コントロールID, BST_CHECKED);
0841836
NGNGラジオボタンの場合、初期化時以外は
CheckRadioButtonをおすすめする。
0842デフォルトの名無しさん
NGNGモーダルかモードレスかで答えが変わってくる。
つーか出来てないということはモードレスかな?
0843デフォルトの名無しさん
NGNG教えてください
0844デフォルトの名無しさん
NGNGだからモーダルとモードレスどっちなのよ?
0845デフォルトの名無しさん
NGNGモードレスです
0846デフォルトの名無しさん
NGNGWM_COMMANDで かつ LOWORD(wParam)がIDCANCELのメッセージか、
または WM_CLOSEメッセージを
捕まえて DestroyWindowすべし。
WM_COMMANDで処理したいなら、WM_CLOSEメッセージにはFALSEを返すべし。
0847デフォルトの名無しさん
NGNG詳細キボンヌ
0848デフォルトの名無しさん
NGNGそれくらい、includeディレクトリの中見て自分で調べろよ。全部大文字ってことは
マクロだから、見りゃわかるだろ。
0850デフォルトの名無しさん
NGNG逆切れかっこ悪い。それぐらい自分で調べられないなら、あきらめろ。
0851あ
NGNGおまえこそ知らない人に
ものを教えてもらう立場にあるというのに
なんだその口の利き方は?
まぁいい。マジレスしてやる。
>847
>848と同じだがincludeディレクトリの中身見ればわかる。
というより右クリック定義うんたらで飛べるはず。
もし、即ヘッダ見るということを思いつかないなら
まだAPIは早い。
Cでもやってるべし。
0852デフォルトの名無しさん
NGNGDWORD a;
WORD b = ( WORD ) a ;
WORD c = ( WORD )( a & 0xFFFF ) ;
LOWORDの define は c ですね。
で、何でわざわざ c のような変換をするのか分かりません。
bより c のような変換の方が安全(?)とかそういうのがあるんでしょか?
0853デフォルトの名無しさん
NGNGchar ch = -1;
WORD c = LOWORD(ch);
とやった場合であっても、c = 0xff となって欲しい。
もし、WORD b = (WORD)ch; と展開すると、b = 0xffff となる。
からじゃないかな?
識者の突っ込みキボーン。
0854デフォルトの名無しさん
NGNGWIN32環境ならばどちらでも変わらない(別に0xFFFFを付ける必要はない)
けど、仮にWORDが16ビットより大きいサイズの処理系が
あったとすれば、そこでは 0xFFFFが大きな意味を持つ。
ちなみに俺のVC++5.0はヘッダファイルが古いからか
#define LOWORD(l) ((WORD)(l))
と定義されてるよ。
>>853
どちらの場合も結果は 0xFFFFですが。
0856852
NGNGどうもです。
>仮にWORDが16ビットより大きいサイズの処理系があったとすれば
ということで納得です。
0857デフォルトの名無しさん
NGNG4バイト……
……ポインタのサイズ?
0858デフォルトの名無しさん
NGNGWordってどういう意味がある変数型なの?
あと、Doubleが付くことで意味が違ってるの?
0859デフォルトの名無しさん
NGNGASCII文字1文字分
=1バイト=8bit
DWORD
ASCII文字2文字分
=2バイト=16bit
0860デフォルトの名無しさん
NGNGWORD
ASCII文字2文字分
=2バイト=16bit
DWORD
WORD2個分
=4バイト=32bit
0861デフォルトの名無しさん
NGNGそれじゃ Character だよ。
WORD は、もともとはプロセサが普通に処理できるデータの大きさ。
C 言語言うところの int と同じ概念。
MS が使いだしたのが、8086〜80286 の頃だったので、16bit になって
今日に至る。DWORD はその倍のビット幅 (=32bit)
0862デフォルトの名無しさん
NGNGプッ
0863デフォルトの名無しさん
NGNGWORD =16bit(2byte)
DWORD=32bit(4byte)
QWORD=64bit(8byte)
が慣例だね。
> WORD は、もともとはプロセサが普通に処理できるデータの大きさ。
のようにCPUにより異なるから注意しよう!
ってここアセンブラのスレだったっけ?
0864デフォルトの名無しさん
NGNGプッ、そんなんでアセンブラしてるつもりになってるよ
0865デフォルトの名無しさん
NGNG正しくは、定義により異なる。
0866デフォルトの名無しさん
NGNGぷぷっ
0867デフォルトの名無しさん
NGNGsagesage
0868デフォルトの名無しさん
NGNGHSPでいうredraw 0とredraw 1のような感じのAPIってありませんか?
0869デフォルトの名無しさん
NGNGCreateCompatibleBitmap
etc...
0870868
NGNGそれならそれでオッケーでス。ありがとうさようなら。
もう会うことは余り無いでしょう。
0871デフォルトの名無しさん
NGNGマーフィーの法則 第23条の18より
0872デフォルトの名無しさん
NGNG0873デフォルトの名無しさん
NGNGむしろ>871のは文章じゃなくて文なわけだが
0875デフォルトの名無しさん
NGNGウケタ
0876デフォルトの名無しさん
NGNG「〜やつほど〜やつが多い」は明らかに変だが。
0877デフォルトの名無しさん
NGNGアセンブリ:アセンブリ言語。言語名。
アセンブル:アセンブリ言語を機械語コードに直すこと。
・・・と思う。
0878デフォルトの名無しさん
NGNG> アセンブラー:アセンブルするひと。
ふつーは処理系の方を指す。nasm とか gas とか。
0879デフォルトの名無しさん
NGNG0880デフォルトの名無しさん
NGNGアセンブリ言語を機械語コードに直すソフトのことだよね?
昔、「ブリをブラでブルする」と覚えた気が・・・。
0881デフォルトの名無しさん
NGNGhttp://pc3.2ch.net/test/read.cgi/tech/1016991911/l50
0882デフォルトの名無しさん
NGNG0883デフォルトの名無しさん
NGNGSetClassLongでもまあできないこともない。
0884デフォルトの名無しさん
NGNGコンパイラはBCC5.5.1です
0885デフォルトの名無しさん
NGNG0886デフォルトの名無しさん
NGNG0887デフォルトの名無しさん
NGNG0888デフォルトの名無しさん
NGNGところで追加質問になってしまうんですけど
printfとかで64bitの整数を文字列にする事ってできないんですか?
%dだとintサイズだし、色々調べてllとか付けて見てもNGでした
0889デフォルトの名無しさん
NGNG> printfとかで64bitの整数を文字列にする事ってできないんですか?
使ってるライブラリによる。Borland は知らんが VC の MSVCRT.DLL だと
プリフィクス I64 だね。
0890デフォルトの名無しさん
NGNGヘルプによると "%Ld" らしい。
0891デフォルトの名無しさん
NGNG試しに
lpstrDefExt = "txt\0htm\0ini\0doc\0";
みたいな感じでやってみましたが駄目でした。
フックを使って lpstrDefExt を変更するという手も考えたのですが、
フックを使うとプレースバーが表示されなくなってしまうようです。
どなたかおねがいします。
0892デフォルトの名無しさん
NGNG古い OPENFILENAME の代わりに、FlagsEx が追加された新しい OPENFILENAME を使えばいいんじゃないかな(推測)。 #if (_WIN32_WINNT >= 0x0500) で囲まれてるやつ。
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/userinput/commondialogboxlibrary/commondialogboxreference/commondialogboxstructures/openfilename.asp
0893デフォルトの名無しさん
NGNG無事表示できました
ありがとう
0894891
NGNGありがとうございます。
その方法で解決できました。
プロジェクトの上の方で
#define _WIN32_WINNT 0x0400
って決定がされていたので
#pragma pack( push, 1 )
typedef struct tagOFN2000 {
DWORD lStructSize;
(中略)
void * pvReserved;
DWORD dwReserved;
DWORD FlagsEx;
} OPENFILENAME2000;
#pragma pack( pop )
と途中で宣言し、
(必要ないかもしれませんが)次のように場合分けしておきました。
ofn.lStructSize = ( bWin2000MeLater ? sizeof(OPENFILENAME2000) : sizeof(OPENFILENAME) );
GetSaveFileName( (OPENFILENAME *)&ofn );
0895デフォルトの名無しさん
NGNGこれってどうやったら出来るんだろう?
SDKでやってるのかな?
0896デフォルトの名無しさん
NGNG対象 URL
http://sakashita.strangeworld.org/source/up0768.jpg
--------------------------------------------------------------------------------
mailto ストーム
アンカータグではないタグで mailto: の記述が見つかりました。
メール作成ウィンドウがたぁっくさん出てきてしまうかもしれません。
パワーのないマシンでは,ブラウザがフリーズする可能性があります。
--------------------------------------------------------------------------------
FDD アタック / concon クラッシャー等 [img タグ等]
IMG タグや JavaScript 等により file スキーマを参照します。
ブラウザの設定によってはフロッピーディスクドライブに不要なアクセスが続いたり, OS がクラッシュする可能性があります。
0897デフォルトの名無しさん
NGNGム板に、しかも今時こんなブラクラ貼るなんて(・∀・)イイセンスしてるな。
0898デフォルトの名無しさん
NGNG0899デフォルトの名無しさん
NGNGグローバル変数とメッセージ、どちらで伝えるべきですか?
0901デフォルトの名無しさん
NGNGCreateWindowの引数という手もあり
0902デフォルトの名無しさん
NGNGどうやらこれがよさそうですね、ありがとうございます。
0903デフォルトの名無しさん
NGNGそんなことってできるのでしょうか?
0904デフォルトの名無しさん
NGNGGetDlgItem(IDCANCEL)でキャンセルボタンのCWnd*とれたかも
0905904
NGNGCPropertySheetの派生クラスを作ってOnInitDialog()をオーバーライドして
CPropertySheet::OnInitDialog() ;
CWnd *pwndCancel = GetDlgItem(IDCANCEL) ;
pwndCancel->ShowWindow(SW_HIDE) ;
こんな感じか(あってるかどうかしらん)
0906デフォルトの名無しさん
NGNGスレ違い。
0907904
NGNG904,905はMFCの場合
0911デフォルトの名無しさん
NGNG0912デフォルトの名無しさん
NGNG0913デフォルトの名無しさん
NGNG0914デフォルトの名無しさん
NGNG0915903
NGNG「戻る」「次へ」に対してキャンセルができないのは確かにダメダメだと思いますが、
「完了」があるなら「キャンセル」は要らないと思うのですけれども
どんなもんでしょうか?
んで、やっぱり GetDlgItem() しないとダメなのですかね?
あんまり美しくねーなー…
0916デフォルトの名無しさん
NGNG凡人には理解できません。
どういう論理ですか?
0917デフォルトの名無しさん
NGNGあなたの作るソフトは一生使わないと心に固く誓いますた。
0918デフォルトの名無しさん
NGNG0919デフォルトの名無しさん
NGNG殆どのPCでは印刷に成功するのですが、中には印刷出来ないPCがあります。
印刷まで行かないPCの失敗箇所は、
CreateCompatibleBitmapで作ったビットマップを
SelectObjectで選択するところでNULLが返却されています。
機種またはPCごとの設定で何か違いがあるのでしょうか?
私自身まだ詳しくないので、わかりづらい説明で申し訳ありません。
0920デフォルトの名無しさん
NGNGそれに対して、つまりキャンセルしたいんですよ。何の動作も行わせたくなかったり、設定内容を保存したくなかったり。
0921デフォルトの名無しさん
NGNGネタか?
0922デフォルトの名無しさん
NGNG0923デフォルトの名無しさん
NGNGネタにしたいから焦ってるのか?
どうして、920が903=915と同一人物だと
思っているのか小一時間問い詰めたい
0924デフォルトの名無しさん
NGNG0925デフォルトの名無しさん
NGNG0926デフォルトの名無しさん
NGNG0927903
NGNG�@何とかウィザードにようこそ!(戻る|次へ|キャンセル)
�A条件1設定(戻る|次へ|キャンセル)
�B条件2設定(戻る|次へ|キャンセル)
�C次へを押すと実行します(戻る|次へ|キャンセル)
〜ここで実行〜
�D実行しますた(戻る|完了)
だと思ってたけど違うの?ひょっとして
�@何とかウィザードにようこそ!(戻る|次へ|キャンセル)
�A条件1設定(戻る|次へ|キャンセル)
�B条件2設定(戻る|次へ|キャンセル)
�C完了を押すと実行します(戻る|完了|キャンセル)
〜ここで実行(ウィザード閉じる)〜
�D実行しますた(メッセージボックス)
だったりする?
0928デフォルトの名無しさん
NGNGアタマだいじょうぶ?ぼく
0929デフォルトの名無しさん
NGNG0930デフォルトの名無しさん
NGNG実行した後で戻れるプログラムって、怖いけど見てみたい。
0931デフォルトの名無しさん
NGNGhttp://pc3.2ch.net/test/read.cgi/software/1032017120/
このスレから飛んできたのですが、教えて下さい。
IEの起動がMozillaよりも速いのは、MSが隠しAPIを使っているからだと
言っているのですが、そんなことってあり得るんですか?
勿論、隠しAPI使うことは否定しませんが、それで速度にものすごく差が出るんですか?
0932903
NGNG前者の�@と�Dには「戻る」はないです。
そういうのってなかったっけ?
0933デフォルトの名無しさん
NGNGそれなら最初からそう説明しないと、ずっとキャンセルボタンが無いのかと思われるよ。
そういうウィザードはある。もしくはキャンセルボタンなどの使わないボタンを使用不可にするとか。
0934デフォルトの名無しさん
NGNGどのようにすればよいのでしょうか?
0935デフォルトの名無しさん
NGNGReadFileEx, WriteFileEx使えばええんでわ?
0936デフォルトの名無しさん
NGNG単にIEがOSの一部だから、起動時にロードされてるんだろ
隠しAPIの10や20使ってるとは思うが・・・
0937771
NGNG亀レスでスマソ
CreateProcessするところを、別スレッドを起こして
その中でやっていたためにうまく行かなかったようです。
ソケットは、プロセスセーフではない、だけでなく、
スレッドセーフではない、ということでしょうか?
0938デフォルトの名無しさん
NGNG隠しAPIごときで差が出ることほとんど考えられないな。
0939903
NGNG言葉足らずでスマソン。
でも後者のスタイルが一般的なのならそっちにしようかと思います。
後学のために使わないボタンを使用不可にする方法も
一応知っておきたいのですが、やっぱ GetDlgItem() なんでしょうか。
0940デフォルトの名無しさん
NGNGスレッドセーフの意味がわかっているのかと小一時間・・・(略
0941デフォルトの名無しさん
NGNGとりあえずGetLastError()でも見てみたら
0942デフォルトの名無しさん
NGNGPropSheet_SetWizButtons()とか。あと MFCの CPropertySheet あたりを参考に汁!
キャンセルボタンは、ずーと表示で、「次へ」を「完了」ボタンに変えるのが標準っぽいよ。
0944デフォルトの名無しさん
NGNGそんなに非表示にしたいなら、実際にやってみりゃいいのに。
::ShowWindow( ::GetDlgItem( hWizDlg , IDCANCEL ) , SW_HIDE );
でできたよ。
0945デフォルトの名無しさん
NGNG0946デフォルトの名無しさん
NGNGビットが立っていないのですが、これはXP/2000でも同様でしょうか?
NT4.0以降でファイルをオープンせずに、デバイスかどうかの判別をするには
どうしたらいいのでしょうか?
0947デフォルトの名無しさん
NGNGCreateFileMapping -> MapViewOfFile -> GetMappedFileName
の3段攻撃で。
0948945
NGNGTHX。E:\test.txt を試したら、"\Device\HarddiskVolume4\test.txt" と
返ってきて面食らいましたが。
//うーん、でも、GetMappedFileName が 9xでは使えないのか...
0950デフォルトの名無しさん
NGNG0951デフォルトの名無しさん
NGNG因みにフレームとはウインドウを仕切るフレームのバーの事を指しています。
0952デフォルトの名無しさん
NGNGAPIでアルファブレンディングを実装するにはどうしたらいいのでしょうか?
ピクセル単位でブレンドしたい画像それぞれのRGBを取得して
計算を行えばいいのでしょうか?
計算の方程式は簡単に思いつくのですが、それでは恐ろしく遅いと思うので
一応ゲームに使う予定なので、もっと早い方法はないのか……と
思っているところです。
0953デフォルトの名無しさん
NGNGスプリッタのこと?
完全に自分で実装するしかないよ。
WM_LBUTTONDOWNが来たときにSetCaptureして〜てな感じで。
>>952
AlphaBlend(
HDC hdcDest,
int nXOriginDest, int nYOriginDest,
int nWidthDest, int hHeightDest,
HDC hdcSrc,
int nXOriginSrc, int nYOriginSrc,
int nWidthSrc, int nHeightSrc,
BLENDFUNCTION blendFunction
);
0954デフォルトの名無しさん
NGNG構造体のリファレンスが載ってる本もしくはHPってしりませんか?
0955デフォルトの名無しさん
NGNGお前は
今朝までに作った構造体の数をおぼえているのか?
0956デフォルトの名無しさん
NGNG英語版のMSDNへ逝けよ。
0957あ
NGNGお前は今まで食べたパ(以下略
0958デフォルトの名無しさん
NGNG0959デフォルトの名無しさん
NGNG例えばどんなフォントでも12ptならば高さ0〜X以内におさまる、と言えるのでしょうか?
言えるのならばXの値を取得する方法を教えてください。
0960デフォルトの名無しさん
NGNGフォントサイズが12ptなら高さ上限は12ptだと思うが?
0961デフォルトの名無しさん
NGNG>>950 次スレは?
0962デフォルトの名無しさん
NGNGスプリッタと言うんですか。
http://www.kumei.ne.jp/c_lang/sdk2/sdk_117.htm
こういうやつです。
しかしこのやりかたでは、3つ以上に分割できない。
どうやって実装するのかイメージが掴めません。
もうすこしヒントを頂けないでしょうか?
0963デフォルトの名無しさん
NGNG0964デフォルトの名無しさん
NGNG楽をしたいのならスプリッタ専門のウインドウを作るといいよ
勿論、その分リソース消費することになるけど。
それがイヤなら実装でがんばるしかない。
0965デフォルトの名無しさん
NGNG0966デフォルトの名無しさん
NGNG文字ってなんだよボケナス。
SJISの上位バイト判定ならIsDBCSLeadByteでも使っとけ。
0967デフォルトの名無しさん
NGNGネタで言ってんのかマジで言ってんのかわからん。
0970デフォルトの名無しさん
NGNG勿論固定ピッチのフォントです
>>966
文字コードとかに依存しない方法が知りたいんです。
たとえば、昔PC98であった2バイト半角文字とか、UNICODEのキャラクタとかのように、
文字列のバイト数で簡単に判別出来ない事があるので
指定のグリフの属性がhalf-widthかfull-widthか知りたいのです。
勿論、そんなAPIが無いので困っているのですが…
http://www.microsoft.com/japan/developer/windows/techart/FixedPitchFont.asp
ここで明らかにされたようにXP以外の環境だと、
固定ピッチでも全角が常に半角の2倍の幅になるとは限らないので
GetCharWidth32()で得た値を信じて文字を描画していくことが出来ないのです。
今まではSJISだったので単純に(文字列のバイト数*半角文字の幅)で幅が計算
出来たのですが、UNICODE化するとそうも行かず困ってます。
0971デフォルトの名無しさん
NGNG例の和解で公開されたものから1つ例を挙げるとShowJavaConsoleか。
これのおかげで速くなってるとはまったくもって思えないけど
0972959
NGNGおなじ12ptでもフォントによってTEXTMETRICのtm.tmHeightは異なるので
上限があるのかなと思ったのですが…
0973デフォルトの名無しさん
NGNGふつーGetTextExtentPoint32()で一々数えると思うが。
0974デフォルトの名無しさん
NGNG0975デフォルトの名無しさん
NGNGhttp://pc3.2ch.net/test/read.cgi/tech/1032548635/
0976デフォルトの名無しさん
NGNGUnicodeか・・・ちなみにギリシア文字(アルファとかベータとか)は全角だと思いますか?半角だと思いますか?
0977デフォルトの名無しさん
NGNGんなVB厨みたいなこと言うなよ。
全角に決まってるじゃん
固定ピッチフォントで確かめれば一発でわかるじゃん。
ちったー自分で試してみろよ
0978デフォルトの名無しさん
NGNGぎゃはは! マヌケなDel厨発見。
コードページって知ってるか?
それ以前にUnicodeって知ってるか?
けっこう笑えたんで晒しとくね。
0979デフォルトの名無しさん
NGNG固定ピッチのCourier Newで試してみたところ、半角ですた。
0980デフォルトの名無しさん
NGNG実は自分がVB厨?
( ´,_ゝ`) プッ
0981デフォルトの名無しさん
NGNG0982デフォルトの名無しさん
NGNG> ちったー自分で試してみろよ
( ´,_ゝ`) プッ
0983デフォルトの名無しさん
NGNG自分が限られた環境の中で生きていることを忘れているらしい…
0984デフォルトの名無しさん
NGNGV B 厨 必 死 だ な (藁
くらいが関の山だろな。
自業自得なんで同情はできんが。
0985デフォルトの名無しさん
NGNG「俺がやったときはそうだった」とかな。
0986デフォルトの名無しさん
NGNGMSDNのヘルプに
> C ランタイムライブラリの関数を使うスレッドは、CreateThread 関数と ExitThread 関数ではなく、
> _beginthread 関数と _endthread 関数を使うようにしてください。
と書いてあったのですが、これは何故ですか?
言われたとおり_beginthread/_endthreadを使いましたが、気になったんで…
0987デフォルトの名無しさん
NGNG0988デフォルトの名無しさん
NGNGただし、すべてのランタイム関数で必要なわけではない。
0989デフォルトの名無しさん
NGNGライブラリの内部変数排他処理絡みじゃないの?
_beginthreadで、排他処理用mutexの初期化とかやったりとか
考えられる。(合ってるかどうかわからないけど)
0990デフォルトの名無しさん
NGNG0991デフォルトの名無しさん
NGNG0993デフォルトの名無しさん
NGNGWin32API 質問箱 Build6
http://pc3.2ch.net/test/read.cgi/tech/1032548635/l50
0994デフォルトの名無しさん
NGNG0995デフォルトの名無しさん
NGNG0996デフォルトの名無しさん
NGNGやればいいじゃん
0997デフォルトの名無しさん
NGNG0998デフォルトの名無しさん
NGNG0999デフォルトの名無しさん
NGNG1000デフォルトの名無しさん
NGNG10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。