このスレッドは天才チンパンジー「アイちゃん」が 言語訓練のために立てたものです。 アイと研究員とのやり取りに利用するスレッドなので、 関係者以外は書きこまないで下さい。 京都大学霊長類研究所
重複したか・・・すまんかった
エッチなまうまう?
エッチしてるなう
7 :
デフォルトの名無しさん :2010/12/27(月) 23:25:25
こっちが本スレです。
重複してるけどあっちが先にたったからあっちが本スレで
あっち向いてほい!
10 :
デフォルトの名無しさん :2010/12/28(火) 15:20:46
重複してるけどこっちが本スレで
アイちゃんが居ない方が本スレ
ぶっちゃけアイちゃん飽きた
14 :
デフォルトの名無しさん :2010/12/29(水) 08:09:56
定期あげ
15 :
デフォルトの名無しさん :2010/12/30(木) 06:07:21
定期あげ
16 :
デフォルトの名無しさん :2010/12/30(木) 13:17:16
さげ
17 :
デフォルトの名無しさん :2010/12/31(金) 01:23:05
定期あげ
18 :
デフォルトの名無しさん :2011/01/01(土) 03:04:12
定期あげ
いいからAPI出せや
RGBマクロを使うのと構造体を使うのとでは、どっちが高速?
ゴミ箱からファイルを元に戻すのに苦労したわ
それは、APIを使って戻すってこと?
そうだよ
使うのか?それw
あまり使い道はないね、 エクスプローラーを模したファイラーとかではいるかも
26 :
デフォルトの名無しさん :2011/01/01(土) 19:10:42
定期あげ
Windowsのプログラムを作るときはGlobalAllocを使うほうがいいの? CRTをリンクしない分小さくなると聞きました。
特定の名前が含まれるファイルが ゴミ箱に放り込まれたら 強制的に元に戻すとか。
そして時は繰り返す
特定の名前のファイルが作成されたら自動的に削除するプログラムと一緒に実行してみると面白そうだ
無限ループって(ry
っDeleteFile
UNIXの質問なんでがPOSIXの関数を使ってCのC++ですがどうしての精度が大きいおでう 自分ではどうしてか取得関係のことですが精度がどうやってだしてるか分からないのですが WIN32aPIではどうするかきてるのでしょう、か
34 :
片山博文MZ :2011/01/02(日) 13:43:44
なんじゃ 外国の人が翻訳で質問したみたいw
自動翻訳にましますもっと
普通に日本語じゃね?
宇宙人が交信してきたぞ
色々電波を受信して考えてみたが解読できんw
受信できたのかw
43 :
デフォルトの名無しさん :2011/01/03(月) 09:21:11
定期あげ
正月暇だからWin32APIでもやってみようと思って来てみたけど 意外とテンプレ充実してないな
>>44 どんなのがあればいい?
とりあえずMSDN?それから猫とかWin32API入門系?
CopyRectだけマスターすれば、あなたも上級者。
SetRectは便利 CopyRectはいらない子
BitBltって名前はどうにかならんのか
49 :
デフォルトの名無しさん :2011/01/03(月) 18:10:08
定期あげ
CopyRect超愛してる
CopyRectっていつ使うの? rect_destination_instance = rect_source_instance;じゃダメなの?
typedef unsigned char byteってやると定義重複する・・・
>>27 GlobalAllocは過去の遺物。
メモリ確保はHeapAlloc( 場合によりVirtualAllocを使い分ける)。
ただし、今時CRT抜くほど小さくする必要性もないだろうから、
すなおにmalloc使っていればいいよ。
>>51 昔のCコンパイラはそんな構造体型の代入ができなかった。CopyRectはその名残。
構造体じゃなければ出来たって話だろ
ってことは、昔は構造体を生のメモリとして扱えなかったの?
構造体のコピーができることと生のメモリとして扱ってることにどんな関係があるって言うんだ? そもそも生のメモリとして扱うってどういうことを言ってる?
58 :
デフォルトの名無しさん :2011/01/05(水) 00:19:29
バーンインしてない、生のメモリの事だろ。
火を通してないメモリのことか
61 :
デフォルトの名無しさん :2011/01/05(水) 13:46:18
質問です。 プロセスの再起動はどういう仕組みになっているのでしょうか。 (Firefoxの再起動とか) プロセスを終了してしまったら、起動できないと思うのですが(終了してしまっているので)。 再起動のためのAPIとかあるのでしょうか。
起動してから終了すればいいだろ
64 :
デフォルトの名無しさん :2011/01/05(水) 15:57:47
>>62 それだと終了が失敗したらプロセスが増えちゃうでしょ
そりゃしょうがないしそんなの無視でいい
将棋覚えたては近衛兵の扱い方がヘタで 金銀>飛車角行って位置づけになる
67 :
デフォルトの名無しさん :2011/01/05(水) 19:01:04
ボタンなどの上にマウスカーソルを置いたときに出る ツールチップの文字列を取得したいのですが どのようなAPIを使えばいいのでしょうか?
gETwINDOWtEXT
リストボックスのスクロールバーあるじゃないですか。 アレをクリックして下にスクロールした瞬間に選択してる項目も 一緒に一つ下にずらしたいんですが、 スクロールバーを下にスクロールしたという通知メッセージってないですよね? 何かいい方法ないでしょうか?
>>68 ありがとうございます。
重ねて質問で申しわけないんですが、
ツールチップハンドルの取得は、どうやったらできるのでしょうか?
TOOLTIPS_CLASSでウィンドウ検索などはやってみたのですがうまくいきませんでした。
外部プログラムが対象という話なら、取得は不可能なケースのほうが多いと思う
>>71 はい、外部プログラムが対象です。
自分でもいろいろ試してみたのですが、難しいようです。
ありがとうございます。
73 :
デフォルトの名無しさん :2011/01/06(木) 01:29:30
定期あげ
spy++でできる
>>72 グローバルフックかけてWM_NOTIFYを捕まえればできるかもよ。
プログラムの質問というよりはOSの質問になるかもしれません。 簡単なファイルのサーチするプログラム作成しました。 FindNextFile()でC:\配下の全ファイルを検索したところ、C:\Users\配下に変なディレクトリパスを拾ってきたのですがこれは何でしょうか? C:\Users\XXX\Local Settings\AppData\Local\Application Data\ApplicationData\Application Data\Application Data\・・・・ Application Dataのディレクトリが数回層続いており、その配下にファイルが多数あるように見えます。 エクスプローラではもちろんアクセスできませんが、コマンドプロンプトではディレクトリ移動(cd)でアクセスはできました。 ご存知の方がいましたら教えていただけないでしょうか?
78 :
77 :2011/01/06(木) 14:25:34
OSはWindows7です。 XPではおこらなかったと思います。
>>77 FILE_ATTRIBUTE_REPARSE_POINT
80 :
77 :2011/01/06(木) 15:00:58
>> 79 ありがとうございます。 ディレクトリの属性がFILE_ATTRIBUTE_REPARSE_POINTの場合は飛ばすで解決できそうです。
次期WindowsはARMをサポートっていう噂だが、 これってx86用のコード動くの? それともOS側でエミュレート的なことやるの??
ネイティブでは動かない。 intelとamdの関係とは根本が違う。仮想化も意味なし。 最低限リコンパイルが必要。そんなのをサポートするとは思えないが。 CEならあるかもしれないけど。
昔x86以外のWindowsNTが出てた頃はx86をエミュレートしてたという話だけど 今ならもしかしたらVirtualPCでXPモード的なことをやるのかもしれないが どうだろうね
寝言言うなよ。 当時のCPUでバイナリエミュレーションやったら、ドンだけ低速か想像できないのか? w
情弱だらけだな・・・
モジュール化の話知らないの?その時既に次期OSについて色々言及してるよ。
>>84 は20年くらいROMっとけ
decのalphaの事を言ってるのでは x86のコードを一生懸命、alphaのコードに変換するようなことをやってたみたいだけど
87 :
デフォルトの名無しさん :2011/01/06(木) 23:28:11
モジュール化(笑)
Alphaは64ビットだから当時のx86を模倣しても半分は余裕がある クロックも先頭走ってたし
64bitのわりにメモリ2Gの縛りがあったみたいだけど
リストコントロールで、頭文字のキーを押すと、その項目を選択するようにしたいのですが これは独自に実装しなければならないのでしょうか?
かな名寿司も
93 :
デフォルトの名無しさん :2011/01/07(金) 19:08:05
WinXP以降でWin32APIでファイルをドラッグ&ドロップで「圧縮(zip形式)」にドロップしたいです。 (zipで圧縮して欲しい) ::CopyFileや::MoveFileでは反応してくれませんでした。 (zipにならなかった。) どうすればユーザがドラッグドロップするのと同じ事をできますか?
94 :
93 :2011/01/07(金) 19:09:37
あ、みなさんご存知かもしれませんが 「圧縮(zip形式)」っていうのはC:\windows\system32\の下のどこかにある、見た目フォルダのアイテムです。 ここにファイルをドロップするとzipに圧縮してくれるみたいです。
96 :
93 :2011/01/08(土) 04:23:49
>>95 ありがとうございます!!
早速勉強開始です。
たいていユーザはそんなモノ消してるから 統合アーカイバのDLLでも組み込んだほうがまし
98 :
片山博文MZ :2011/01/08(土) 13:08:40
>>61 別プロセスを起動して、そこで元のプロセスが終了するまで待ち、
元のプロセスが終了したら、元のプロセスを再起動する。OpenProcessを参照。
>>67 CreateToolhelp32Snapshotで外部プロセスのIDを取得。
GetWindowThreadProcessId, FindWindow, FindWindowExで再帰。
IE8なんですが、CreateProcessで任意のHTMLを表示すると 必ず新しい別ウィンドウが開いてしまいます。 やりたいのは、 ・IEがひとつも起動していなかれば起動してHTMLを表示する。 ・IEが起動しているなら、新しいタブを開いてHTMLを表示するです。 起動オプションを調べたりいろいろやってみたのですがうまくいきません。 ブラウザの設定ではタブを使用するようにしています。 ちなみにShellExecuteでも同じ結果でした。 あと、コマンドラインからieを起動すると必ず別々にieが起動しました。 MFC(VS2005)でやってます。 何かアイデアをください...。
そういうのコマンドラインで指定できた気がするが忘れた 最悪そういうBHO作ればいいんじゃね
OLEオートメーションに接続すればいい
updown controlをCreateWindowExで作成したとき ダイアログに置いたedit controlをバディウィンドウにするとちゃんとドッキングして枠内に入るのに CreateWindowExで作ったedit controlをバディウィンドウにすると隣にくっつくだけで枠内に入ってくれない spy++でウィンドウスタイル見て両者同じスタイルにしたんだけど・・・ これってWindowsの仕様?Zオーダー等の問題?
105 :
103 :2011/01/09(日) 06:38:53
どうもedit controlをサブクラス化(スーパークラス化?)するのがいけないらしい edit controlの非クライアント領域を広げてそこにupdown controlを描画しているのだから 非サブクラスなedit controlのみに対して特別なコードを仕込んでるのだろうか ここらへん詳細が分かる方いらっしゃいますか?
何を悩んでるのか分からないけど Editとmsctls_updown32のバディ指定で実現されている スピンエディットってそういうものだよ。
チャットソフト作っている。 エディットに打ち込んだ文章をメインウィンドウに出力していくには何の関数をどう使えばいいんですか?
SetWindowText
WM_COPYDATAをSendMessage
DrawText
111 :
デフォルトの名無しさん :2011/01/09(日) 14:00:11
なんか、いまさらWin32APIを勉強しようと思って DWORDとかCTPSTRとか、_TマクロとかWCHARとかマルチバイト文字列とかいわれても まとまってる参考書無いんですが。。MSDNみるのは、時間かかるから本でまとまってるのがあればいいなあとおもう。 もうWin32でてから15年くらいたっているんでしょ? いまだに、日経ソフトウェアとかでWin32の特集とか頻繁にやってるからやってみたいんだけど 基礎的な情報が少なすぎます
windowsゲームプログラミングと プログラミングwindows(上)を 読めば
113 :
デフォルトの名無しさん :2011/01/09(日) 14:18:56
プログラミングwindows(上) ↑これもってるけど、そういうことのってないよ。
Advanced Windowsのほうに載ってるよ。
>>111 だから本が売れるんだよ
世知辛いよねぇ
人間不信真っ只中ですw
>>111 九九が分かれば何桁の掛け算でも分かるのと同じで
CHAR、WCHAR、TCHAR
これらの違いが分かれば後は応用だから必要ないんだよね
まともな技術書は高いからね。 ついつい三千円以下の安くて分かりやすそうな解説本を選んでしまって失敗する。
アルアル
高いから内容があるとは限らんでしょ
その辺の解説ならプログラミングwindows(上)が一番わかりやすかったと思うけど
_TマクロとかWCHARとかマルチバイト文字列の解説は プログラミングwindows(上)の最終バージョンで追加されたから 載ってないと言ってる人はたぶん古いやつ
SDKのヘッダファイルをgrepしたほうが早い
123 :
107 :2011/01/09(日) 17:01:41
回答ありがとう。 しかし分からないw 知りたいのは、たとえばDrawText関数で文章を一文メインウィンドウに出力したとして、その次に入力された文章をそこに順次足していくにはどうすればよろしいのでしょう?
次の文章が入力されたらDrawTextを2回使えば最初の文章と次の文章を表示できます 3つめの文章が入力されたらDrawTextを3回使えば最初の文章と次の文章と3つめの文章を表示できます 文章がいくつ増えても同じことです
>>123 void CHogeWindow::LogEdit_AppendText(const char *text){
if(m_closing)
return;
EnterCriticalSection(&LogEditCS);
int Len = SendMessage(m_hLogEdit,WM_GETTEXTLENGTH,0,0);
SendMessage(m_hLogEdit,EM_SETSEL,(WPARAM)Len,(LPARAM)Len);
SendMessage(m_hLogEdit,EM_REPLACESEL,0, (LPARAM)text);
LeaveCriticalSection(&LogEditCS);
}
まぁ、ご参考に。
126 :
107 :2011/01/09(日) 18:44:03
>>125 ん、出力ウィンドウは、エディットコントロールにしろ、ということでしょうか?
>>126 エディットでもリッチでもリストでも好きにすればいいけど
さしたる理由も無くDrawTextで自前描画する人はいないでしょうねぇ
文字の幅や高さから次の位置を計算する
129 :
デフォルトの名無しさん :2011/01/10(月) 02:59:34
malocをまろっくって読む新人さんがいて和んだ
malocは聞いた事が無いな
Mr.malloc
まぁろっく じゃなかったらなんて読むの?
えむ・あろっく
俺は麻呂と読んでるけどな
めろっく
メムアロック
モロッコ
男女
エムオトコな人?
質問です。 ディスプレイドライバの名前を取得したいのですが HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\VIDEOの\Device\VideoX(※) にディスプレイドライバのレジストリの位置が格納されていますが、 XPではうまく動くのですが 7だとRDPDDのようなドライバ行き着いてしまい 本当のドライバ名を得ることができません。 XPだと大体※がVideo0になるのですが、7やVistaだと3や4に入っているようです。 この3や4はどこから得たら良いのでしょうか。 海外情報をググりまくってみましたがみんなここで止まっていて 解決事例を見つけることができていませんorz
WMI使って情報を取得してみれば?たぶんいける。
>>142 ありがとうございます。
確かに取得できそうです。
これはレジストリの情報と同じものと考えて良いのでしょうか。
プログラミングWindowsにかわるWindows API系の本書いたら ちょっとは売れるかな? Vista 以降に追加された機能も含めて 3000ページぐらいで。
間違い無く売れる
ついでにPDF版も売ってくれると検索が楽になってありがたい
単にapiの解説書だったらMSDNで充分
MSDNは重要なトコにかぎってリンク切れてたり Reserved とかなってる割に、呼んでみるとしっかり値が帰ってきたりするので そういう本当に使える書籍ならほしい。
MSDNは既に一度理解した人が思い出すための解説になってる のがつらい。初めてだと分かり難い。
辞書ですから
ちゃんとOverviewっていう技術解説の項目があるだろ 英語だけど
神様教えてください。 レイヤード ウィンドウにするためのWS_EX_LAYEREDは、 windows2000以降とあるのですが、 それ以前のバージョンでこれを指定すると、 どーなってしまうのでしょうか? ウィンドウ枠無しの、全画面トップモースト表示 のソフトを作っているのですが 真っ黒になって、操作不能になる感じでしょうか?
無視されるだけなんじゃないの
そもそもビルドした実行ファイルが動かないから心配するな。
動くことは動くだろ カーネルにない関数叩いたときにオワタになるだけ
156 :
152 :2011/01/10(月) 21:26:54
>>154 それだと有難いです!!いえ〜ぃ!
タスクバーから終了のソフトなので、「無視」で真っ黒ウィンドウ
になったりすると、うっかり古バージョンウィンドウズの人が
実行した時に、操作不能(≒)になってしまうのが怖かったのです。
>>155 そうなるとバージョンを取得して、2000より前だと→終了などが
必要になりますよね。すごく面倒臭いです!!!
でもやっぱそうですよね。。。
ありがとうございました。
/SUBSYSTEM:WINDOWS,5.00
指定したウィンドウ(バックグラウンド)にCtrl+V(貼り付け)を送信するにはどうすれば良いでしょうか 下記のようにしてみたのですが、Vしか送信されていないみたいです 間にSetFocusを入れて対象のウィンドウをフォアグラウンドにすると上手くいくのですが あくまでバックグラウンドでの処理をしたいので・・・ (ソースはC#です) public static void SendCtrlV(IntPtr handle) { byte[] bKeyState = new byte[256]; UInt32 thisThread = GetCurrentThreadId(); UInt32 targetThread = GetWindowThreadProcessId(handle, IntPtr.Zero); AttachThreadInput(thisThread, targetThread, true); GetKeyboardState(bKeyState); byte bCtrlTemp = bKeyState[VK_CONTROL]; // Ctrlを押下状態にする bKeyState[VK_CONTROL] = 0x80; SetKeyboardState(bKeyState); // Ctrl+V SendMessage(handle, WM_CHAR, VK_V, 0); bKeyState[VK_CONTROL] = bCtrlTemp; SetKeyboardState(bKeyState); AttachThreadInput(thisThread, targetThread, false); }
SendInput
OPENGLのMDIアプリケーションで 子ウィンドウをそれぞれのフォーム作成時に hdc = GetDC(Handle); //ピクセルフォーマットの初期設定 SetPixelFormatDescriptor(); という風に毎回とるようにしているのですが 子ウィンドウを作るたびに、一番新しいウィンドウしか有効にならないようです どうすればそれぞれにレンダリングコンテキストを有効にできるのでしょうか
161 :
152 :2011/01/10(月) 22:32:06
>>157 すごく有難いことを教えて頂いたのだと思います。
ただ、理解するのに数日かかりそうなので、先に言っておきます。
有難うございました。
>>158 SendMessage(targetThread,WM_PASTE,0,0);
SendMessage(handle,WM_PASTE,0,0); だった
>>160 OpenGLはスレッドに対して、1windowというか1コンテキストだった気がする。
同じスレッドで呼び出したいなら、切り替える必要がある。
レンダリングをそれぞれ独立したスレッドでやったらどうだろうか。
というのは予想で、MDIの動作はやったことないな。
>>159 ,162
ありがとうございます
しかし、SendInputはフォアグラウンドでないと機能しないようでした
WM_PASTEのメッセージ送信はも反応がありませんでした
対象をテキストエディタにした場合には正常に貼り付けできていたので、該当アプリにWM_PASTEメッセージの処理が実装されていない感じです
ちなみに元のソースでSetFocusでフォーカス設定した際には出来たというのはどうやら勘違いのようでした
SetKeyboardStateの返り値は正常終了となっているが押下状態になっていない感じでした
(フォーカスを設定したのち、keybd_eventでCtrlを送ってから or 手動でCtrlを押しながら Vを送る正常に貼り付けできたため)
AttachThreadInputでアタッチすれば効果があると思ったのですが・・・
別の手段がありましたら是非よろしくお願いします
電子書籍なら買う 紙書籍は置き場所取るし気軽に持ち歩けないし誤植はいつまでもそのままだし全文検索もリンク機能もないしコピペもできないからいらん 値段も電子のが安いんでしょ?
>>144 俺も買う
XPのテーマとかVistaの拡張子関連付けとか苦労した
文字列構成するときに、{1},
文字列構成するときに、{1},{2} と位置指定できるような API ありますか? %s とかだと、引数として渡した順番で入っちゃうけど ローカライズの時って困っちゃうことになることあるから。
FormatMessageとか?
OS提供のでなくていいのならBoost.Formatとか
FormatMessage でいけそうですね。 さんくす。
173 :
158 :2011/01/11(火) 15:31:23
自己解決しました 該当アプリではどうやらTranslateMessage()処理により、Ctrl+V(貼り付け)と同等の効果をもたらすには WM_KEYDOWN(VK_CONTROL) WM_KEYDOWN(VK_V) WM_CHAR(0x00000016) ※VK_V - VK_A + 1 という順番でメッセージを送れば良いようでした
>>166 電子書籍みたいに気楽に修正できる媒体になると
出版側が間違ったら訂正すればいいやとか考えて
MSDNと大差ないものになるに 1024 HWND
176 :
デフォルトの名無しさん :2011/01/12(水) 07:56:04
定期あげ
GetDoubleClickTime をいくつかのプログラムで使ったんだけれど、 これって同じシステムマウス設定の他のプログラムやエクスプローラーのダブルクリックで感じるダブルクリック認識スパンより長くないですか? 今は値を半分にして使っています。
お前のコードが間違っている
179 :
デフォルトの名無しさん :2011/01/12(水) 22:47:59
質問させてください。 環境はVisualStudio2010評価版?(無料のやつ)、 ウィンドウに文字を表示したくてDrawTextを使っています。 DrawText( hDC, data, -1, &rc, DT_END_ELLIPSIS ); とあるdata(表示したい文字列)に LPCTSTR data = TEXT("%s\n",string1); のように引数を入れると warning C4002: マクロ 'TEXT' に指定された実引数の数が多すぎます。 と出てしまいます。 表示する文字列を変えたくて以上のようなプログラムを書いたのですが、 どこが良くないのでしょうか? またDrawTextで出来ないのであれば何をしようすればよいでしょうか。 教えてくださいm(_ _)m 一応DrawTextやエラーメッセージの内容を検索してみたのですが 解決策がみあたりませんでした・・・
スレチ C++初心者スレ池
>>179 ちょっとまて,その string1 っていうのは何型の変数なの?
それが分からないと答えられない。
え、TEXT まくろって 文字列に L つけるかつけないかだけじゃなかったの? sprintf みたいな機能ってあった?
183 :
179 :2011/01/13(木) 00:25:48
>>180 すみません。
C++初めてなのでDrawTextはAPIだと思ってました。
出直します。
>>181 char string1[1024]のような感じになっています。
char data[2000]; wsprintf(data,"%s\n",string1); DrawText( hDC, data, -1, &rc, DT_END_ELLIPSIS );
185 :
179 :2011/01/13(木) 02:37:47
>>184 ありがとうございます!
dataを大きめの配列にするのですね。
どうやら他の方がおっしゃったようにC++も知識不足のようですので、
勉強してきます。
そのまんま出せばいいだけの気がするけど 最後に改行すると何かいいことあるのかな
CoCreateInstanceでIShellDispatchを生成しようとすると、 0x80040154 (REGDB_E_CLASSNOTREG)が返ってきます。 OSの機能が未登録なんてことはあるんでしょうか? ダメ元でregsvr32 shell32.dllとやってみましたが変わりませんでした。 何か原因として思い当たることがありましたらご教示下さい。 環境はWindows7です。
CLSID_Shellで作れないの?
189 :
187 :2011/01/14(金) 20:56:21
はい。 レジストリの登録情報(HKEY_CLASSES_ROOT\CLSID\{13709620-C279-11CE-A49E-444553540000}) を直接見てみましたがちゃんとありました。 書き忘れましたが、CoCreateInstanceのコールは以下のようにしています。 CoCreateInstance(CLSID_Shell, 0, CLSCTX_ALL, IID_IShellDispatch, (LPVOID*)&pShellDispatch);
CoInitialize読んでないとか
191 :
187 :2011/01/14(金) 21:05:14
それは大丈夫です。 例えばCLSID_HTMLDocumentだとか、関係ないクラスで試してみましたが生成できました。
CLSCTX_ALLをCLSCTX_INPROC_SERVERにしてみたら?
IMAPI v2でBlu-rayの物理フォーマット出来ますか
メールのテリア使いだけ
195 :
187 :2011/01/15(土) 23:00:00
>>192 CLSCTX_ALLはCLSCTX_INPROC_SERVERを含んでいるので、試してみましたがやはりだめでしたね。
CLSID_Shellでググレばすぐわかるんだけどな。 情弱ってカワイソス
ボタンやスクロールバーみたいなコントロールを完全に独自に作りたい 場合は,ウィンドウクラスの登録と専用ウィンドウプロシージャ用意して, CreateWindowで作ればいいの? どこかいい参考資料ある?
枠のないウィンドウを作って画像を表示すればいい 要はゲームを作るのと一緒 ボタンとかも全部画像表示すればいいだけ マウスクリックの座標とか全部自分で設定しないといけないけど
200 :
デフォルトの名無しさん :2011/01/16(日) 14:38:02
デバッグツールを作っていて、 他プロセスの仮想メモリ空間へwriteしたいんだが、 ProcessMemoryWriteしても書き込めない領域があるみたい OpenProcess でアクセス権Allにしてもだめっぽい。 何か方法ある?
ゲームプロテクト環境下でないという話なら、お前のコードが間違っている。 APIのせいにする前に見直せ。
202 :
デフォルトの名無しさん :2011/01/16(日) 16:26:41
>>201 あ、やはり。
デバッグツールは嘘でハッキングツールを勉強がてら作ってみてるのが本当でした。
なのでまさに、ゲームプロテクト環境下でつ。
プロテクト周りの仕組みのってるページとかないかな。(スレチだけど)
昔みたことがあるんだけど、みつけられない。
メモリ読み書き系は基本的すべてフックされている。APIの実体の先頭バイトを見てみれば確認できる。 これの回避方法は色々あるが、嘘つきには残念だが教えられない。 ヒントを出すと、オリジナルの改変されていないコードを実行すれば目的は達成できると言っておこう。 結局のところプロテクトの知らないまたは検知することのできないコードで行えばいいのだ。
でばどら!
もしどら!?
>>203 最近のはそんな原始的なフックしかけてないですよ^^;
メモリのゼロ番地読み書きするにはどうすればいい?
トランポリンみたいな幼稚な手法が通用するのは数年前までだね
今ではユーザーモードレベルのAPIフックなんてあってもなくても変わらないゴミみたいなものだし
>>203 はShadow Walkerで検索してみるといいよ
"Owner Window"(オーナーウィンドウ) にたいして "owned Window" はどういう言葉がいいのかな?
my window?
"Labor Window"がぴったりだな
被所有ウィンドウ 従属ウィンドウ 隷属ウィンドウ 奴隷ウィンドウ 被用者ウィンドウ ドMウィンドウ オーンドウィンドウ
リソースではなく、既にメモリに展開されている.icoファイルからツールバーや.exeに使うアイコンを表示するにはどうすれば良いですか?
214 :
デフォルトの名無しさん :2011/01/18(火) 14:08:48
あげ
Win32APIの入門でオススメサイトあったら教えてください 猫さんのところはわからないまま進む感じであまりいい勉強になりませんでした
>>213 LookupIconIdFromDirectoryEx
CreateIconFromResource(Ex)
関数名見ただけで脊髄反射すんなよ?
>215 本買う金ないぐらい貧乏ならあきらめよう
猫はCの基礎が確り身に付いてないと躓くね
222 :
デフォルトの名無しさん :2011/01/18(火) 22:16:14
実行ファイルのアイコンってリソースから読み込まないと変えられない?
えっ
224 :
222 :2011/01/19(水) 00:32:27
自己解決しました。 デバックじゃなくてリリースでビルドしないと変わらないのね
えっ
226 :
デフォルトの名無しさん :2011/01/19(水) 22:51:10
エクスプローラでは画像のサムネイルが表示されますよね。(「縮小版」表示の場合) このサムネイルをプログラムから最新の情報に更新する方法を教えてください。 現在、画像ファイルを編集するプログラムを作っているのですが、 ファイルを更新しても、その画像のサムネイル画像が更新されないのです。 つまり、エクスプローラを右クリックで選択できる「縮小版を最新の情報に更新」 をプログラムから呼び出せる方法をご教示いただきたいのです。
>>226 Shellオブジェクト系で行けると思う
229 :
226 :2011/01/19(水) 23:45:16
>>227-228 ありがとうございました。
特に227氏さま。ソースいまから読んでみます
sendkey F5
231 :
226 :2011/01/20(木) 06:50:40
>>230 ありがとうございます(
>>226 の回答と解釈しました)
でも、F5では縮小版は必ずしも更新されないです。
エクスプローラのプロパティで 「縮小版の場合キャッシュしない」 のチェックを予め外しておくとかチェックしておくとか
WindowsのAPIではハンガリアン記法で型を表してるんですよね? でも構造体によって例えば OPENFILENAME構造体 DWORD lStructSize; DWORD nMaxCustFilter; WORD nFileOffset; MENUITEMINFO構造体 UINT wID; ULONG_PTR dwItemData; LPTSTR dwTypeData; などとなっていて、この場合のnとかdwとかが何を表しているのか分かりません どういう事でしょうか?
n : number (int or long, etc.) dw : DWORD
DWORD lStructSize; DWORD nMaxCustFilter; こっちではDWORDなのにlとかnになってて ULONG_PTR dwItemData; LPTSTR dwTypeData; こっちでは中の型も違うのにdwになってるのが疑問なんじゃない?
そういう話をし出すと、歴史を語らなければいけなくなるんじゃないか
システムハンガリアン記法は廃止されました
WORD 1文字幅DWORD 2文字幅。 DWORDはLOWORDマクロで下位の1文字を、HIWORDマクロで上位の1文字を取り出せる。 今のところ32bit幅だが、いつ64bit幅や128bit幅になるかは秘密。
>>238 >今のところ32bit幅だが、いつ64bit幅や128bit幅になるかは秘密。
コンパイルオプションで変わる
1文字幅 適当だな
>>239 LPVOID や LPARAM はともかく、DWORD が 32bit 以外ってなんか変なんだけど、あるんだ。
もともとMicroshiftのマクロ定義な型名はWidowsのバージョンが変わってそのサイズが変化した後でも コードの変更を最小限に抑えようとするためのものなのでWORD = 1文字幅^^は適当で正解。 WORDの中にはあらゆるWidowsにおいて1文字を格納するのに十分なサイズが割り当てられちゃう。びくんびくん。
本義で言えば、最近のCPUではWORD=64bitなんじゃないのか
>>243 そういう場を混乱させるだけの発言は控えようぜ
x86アセンブラで考えたら
CPUが何ビットになろうが
WORD = 16bit
DWORD = 32bit
QWORD = 64bit
PWORD? = 128bit
>>243 そのとおり
VC6 で動いてた短いプログラムをソースそのままで
VC2008 でコンパイルしたらエラーも警告も出ないのに
動かなくなってた
time_t の長さが変わってたのが原因だった
>>244 アセンブラではそうだろうが
C++っていうかWin32APIレベルだと違うよね
>>246 Win64でもDWORD=32bitだぞ
DWORD_PTRっていう変態型がWin32だと32bit、Win64だと64bitになる
いやWORDが32bitだからさ
>>248 WORDってunsigned shortのtypedefだろ?
shortのビット数が32とか・・俺釣られてんのかな
なんか紛らわしいことになってるけど、正解は
>>244 だからな。みんな。
C言語からしかかじってない奴はとんでもないこと言い出すな。
DWORDのDはDoubleのD
WindowsのSDKは古い歴史を引き摺り過ぎてる
>>236 >>242
しかしwordとletterを間違えるとか釣りにしても恥ずかしいな
人生って難しいね・3・
いやいや、変わらないとは断定できないぞ。 VC6のころはWNDPROC型は32bit Unsigned Integerだったが今は普通に関数ポインタだ。
WIN32API C++で、prinff("%d",x)のように変数xを出力したい場合はどうすればいいんだろうか? 幼稚な質問で申し訳ないんだけど、検索の仕方が悪いのか全くヒットしないんだ…
検索の仕方が悪いのではない。 プログラミングは日本語の使い方を覚えてからにしよう。何をしたいのかさっぱりわからん。
メッセージボックスの表示編集辺りを見れば分かるんじゃない?
もしかしてウインドウを作ってるのにコンソールに出力しようとしてる?
ケツの穴に出力しようと思っています。
出力したいのはウィンドウの方。 TextOut( hdc , 0 , 0 , TEXT("HelloWorld!!") , lstrlen(lpszStr) ); とすれば画面に文字が出るはずだけど、表示するのを文字ではなく変数にしたい。
char c[100]; sprintf( c, "%d", x ); TextOut( hdc , 0 , 0 , TEXT( c ) , lstrlen( c ) );
>>265 TCHARと_stprintf_sを使った方がいい
>>258 printfはxを指定された書式で整形して出力してるわけなので、
自分で整形した文字列をTextOutに渡したい。
と、考えを変えてみることが必要かも。
更新忘れてた。
>>268 なるほど。内部的にどういうことが行われているかもしっかり理解しないとなあ…
>>266 ランタイム関数のときはWin32APIのTCHAR,TEXT()ではなく_TCHAR,__T()を使うべき
APIの TCHAR は UNICODE マクロで WCHAR と char に切り替わり
CRTの _TCHAR は _UNICODE マクロで whcar_t と char に切り替わる
WCHAR はWindows2000以降はUTF-16でおそらく今後も固定だが
wchar_tが16bit可変長なのは本来規格違反なので明確に区別するよう意識した方がいい
stackに詰まれるときとかレジスタ上では32bitになってね
規格と実装の区別が付いてない人がいると聞いて
TCHARと_TCAHRはどっちが正しいのですか?
_TCAHRは存在しません よってTCHARです
なんか__Tとか使うとソースがきたなくなっちゃう
TEXTがいいの?
とりあえずWCHAR型についてMSDNを検索したら >The content that you tried to view is permanently removed from the website. To continue, click the following links. と出た。
>>280 好きな方でいいよ
UNICODEを定義する時は_UNICODEも定義するので同じ
L"うにこーど" みたいに T"どっちでも" なら楽なんだが
そもそも9xな窓滅びたからACHAR使う必要ないだろっていう
勝手に滅ぼすな
はやく滅んでほしい
287 :
デフォルトの名無しさん :2011/01/21(金) 20:36:00
いっぱいいっぱいでました
289 :
デフォルトの名無しさん :2011/01/22(土) 04:11:13
Qt4がW32引き受けてくれるのか? なら、安心だな
鈍くて不細工というイメージ
MFCのAfxBeginThread()で少し質問なのですが 以下の用に、処理スレッド(Func())を作成した場合、 WaitForSingleObject()で待機、Func()が終了すると先に進むだと正常に動くのですが、 WaitForSingleObject()が呼ばれる前に、Func()スレッドが終了し、その後にWaitForSingleObject()が 呼ばれた場合、WaitForSingleObject()でフリーズする場合がたまに発生します。 WaitForSingleObjectが呼ばれる前にFunc()スレッドが終了してはダメなのでしょうか? CWinThread* pThr = AfxBeginThread(Func,NULL); 少し時間のかかる処理 WaitForSingleObject(pThr->m_hThread,INFINITE);
CWinThread* pThr = AfxBeginThread(Func,NULL,0,CREATE_SUSPENDED); pThr->m_bAutoDelete = FALSE; pThr->ResumeThread(); 少し時間のかかる処理 WaitForSingleObject(pThr->m_hThread,INFINITE); delete pThr;
>> 292, 293 ありがとうございます。 だいぶ昔に同じところでハマったことを思い出しました・・・ 修正します
295 :
デフォルトの名無しさん :2011/01/26(水) 00:58:44
定期あげ
CreateMyMaidCafe() API が呼び出せません。 どうしたらいいですか?
死ねばいいと思うよ
CommonControlSex() って誰とセックスできるんですか?
CommonControlSex(GetGirlFriend()); //INVALID_HANDLE_VALUE
GetGirlFriend 関数は互換性のために残されています。 新しいアプリケーションでは GetGirlFriendEx(DWORD dwMoney) を使用してください。
たこ焼きにイカ入れてみたんだが なんというか味が薄かった
ソースを変えてみればいいと思うよ
たこ焼きが侵略されたでゲソ
塩辛にすればいいと…何州レダ個々は。
She never eats NONI.
すれ違いだったらすいません。 wmplayer.exe で mp3 を再生し、ollydbg により、 waveOut系のAPIにブレークポイントを仕掛けました。 目的は waveOutWrite で、予想としては、再生するとちょくちょく ヒットするはずなんですが、一度もヒットしません。 他の waveOut系APIでは、一部ひっかかるものがあります。 なぜ waveOutWrite でヒットしないんでしょうか?
DirectShowで再生してるんじゃないの
>>308 DirectSound だとしても waveOutWrite をコールしてくると
思ったんですが、違うんでしょうか?
はぁ?
312 :
307 :2011/01/27(木) 19:52:26
モジュール DSOUND から、DeviceIOControl がコールされまくってました。 ローレベルで制御してるようです。 一部のwaveOut系関数でヒットしてたので、勘違いしてました。 失礼しました。
313 :
307 :2011/01/27(木) 19:57:03
>>311 ありがとうございます。
まさにこの下の図の、カーネルモードに入る直前の部分あたりに、
waveOutWrite が使われてると思いこんでました。
いや…うん、まあいいや
おまえらならDirectSoundとwave系のどちらを使うよ
WAS一択だろ馬鹿
DirectSoundは廃止予定
LoadLibraryの戻り値が、メインPCではNULL以外で成功するのですが、サブPCではNULLになってしまいます ・指定したファイルはexeと同じフォルダ(かつカレントフォルダ)にある ・そのDLLが依存しているDLL(dependencywalkerで調べたDLL)はちゃんとc:\windows\system32にある という条件を両方のPCで満たしてる場合に、戻り値がNULLになる原因は他に何があるでしょうか? 両PCともWindowsXP SP3で メインPC:C2Q Q9550 メモリ1GB サブPC:AthlonXP 1400+ メモリ1GB そのDLLの中でDirectXの関数を使用しているのですが、それが原因で LoadLibraryの段階で失敗するということがあったりするのでしょうか?
319 :
318 :2011/01/28(金) 19:32:01
すみません、書き忘れましたがメインPCで開発してまして VisualC++ 2008 Expressを使っています DirectX SDKはOctober 2004です
よくわからないけど GetLastError() でも呼べばいいんじゃないの?
>>320 LoadLibraryの直前にSetLastError(NO_ERROR)してからGetLastErrorした所、
-1073741795 (0xc000001d)という値が返ってきました、検索してみたら
External Error: C000001D
Occurs if you execute MMX instructions on a non-MMX Pentium
ということでした、DLLを/archオプションなしでビルドしなおしてみようと思います
ありがとうございました。
322 :
318 :2011/01/28(金) 20:18:14
すみません、/archオプションは最初から付いていませんでした… /archオプションがオフでも何かCPUに固有の命令が使われてしまっているのでしょうか?
エスパー回答するとSSE2対応してないんだろ
MMXが付いてないCPU・・・? どんな化石なんだよw
あ〜そういえば強制的にMMX命令が使われてしまうバグがVCにあったような気がする
RegisterHotKeyについて質問です MSDNを見ると、下記のような説明があります BOOL RegisterHotKey( HWND hWnd, // ウィンドウのハンドル int id, // ホットキーの識別子 UINT fsModifiers, // キー修飾子フラグ UINT vk // 仮想キーコード ); 修飾子フラグは複数指定できるのですが、仮想キーコードを複数指定することはできないのでしょうか
win+F+Dとかやりたいってこと?
そういうことです
FとDどっちも登録しといて押されたときにもう一方が押されてるか見ればいいんじゃないかな
諮問です。 NTFSフォーマットされた1つのHDDから GetFileInformationByHandleでファイルの情報を取得すると、nFileIndexHighとnFileIndexLowが同一なファイルがあるのですが、 ファイルIDはファイルでユニークにはならいのでしょうか?
「不景気だし国の財政も赤字だから公務員の給与を下げるべき」 ↓ 「それなら景気が向上したり、財政黒字が達成されれば公務員の給与は上がるの? バブルの時は好景気だったけど、公務員の給与には反映されなかったよね。」 ↓ 「公務員ならつべこべ言わずに不利益を享受せよ!」 ↓ 「それなり日本国民であるあなたも労基法の緩和や増税等にも応じるべきでは?」 ↓ 「黙れ!」 愚民なんてこんなもんだよ。
>>330 ファイルとファイル名は1:1で対応してるとは限らない
ハードリンクのように1つのファイルに複数の名前をつけられる
hdc = GetDC(hwnd); hMemDC = CreateCompatibleDC(hdc); hBitmap = CreateCompatibleBitmap(hdc, WIDTH, HEIGHT); SelectObject(hMemDC, hBitmap); DeleteObject(hBitmap); ReleaseDC(hwnd, hdc); メモリデバイスを作成する手順はこれで合っていますか?
あってない
336 :
334 :2011/01/29(土) 19:31:53
やはり hBitmap を解放するタイミングがおかしいのでしょうか?
SelectしたままDeleteはできないので Deleteする前にSelect解除しなきゃだめ
まずメモリデバイスとは何なのか俺にはわからん
>>337 なるほど、勉強になりました。
ありがとうございました
>>338 CreateCompatibleDCが返すメモリデバイスコンテキストのことを変に省略したものと思われ
>>331 >「それなら景気が向上したり、財政黒字が達成されれば公務員の給与は上がるの?
>バブルの時は好景気だったけど、公務員の給与には反映されなかったよね。」
反映されてただろ
>>334 DeleteObject(hBitmap);
が成功するんだけど、何故?
>>342 DCにSelectObjectした時点で
メモリにビットマップがコピーされてるから
HBITMAPは煮るなり焼くなり好きにしてもよい。
>>342 タスクマネージャのGDIオブジェクトを見ながらステップ実行してみるといい。
SelectObjectで元に戻さないとDeleteObjectしてもオブジェクトは削除されない。
DeleteDCした時点でまとめて削除される「実装」にはなっているようだが、
「仕様」では元に戻せと書かれてる以上、パッチで変更されても文句は言えない。
>>344 本当だ、削除されてなかった。
何故DeleteObject関数はTRUEを返すのだろうか…?
>>346 GDIオブジェクトを確認しながらステップ実行したら、
選択したままだと削除されなくて、元に戻してからだと削除されたぞ
>>347 ただ単に
GDIオブジェクトの数と
ビットマップの内部的な管理は別もんなんだろ。
SelectObjectした後でビットマップをDeleteしてもそのまま動くように作ってあんだよ。
>>349 Objectにビットマップは入ってねえんだろ。
BITMAPの説明にメモリDCにだけおっけー☆って書いてあるし
ガベコレを自分で実装するスレはここですか.
>>348 選択された状態のビットマップをDeleteしても動くのは、実際は削除されてないからだろ
疑問点は、削除されてないのに何故TRUEを返すのかということだ
>>353 ハンドルは無効にしたけど
実体は残ってるよってこったろ
>>353 削除されなかったときはTRUEを返してはいけないのか?
>>354 じゃあ、選択を解除したビットマップならば、実体も消してくれるってこと?
Zero indicates that the specified handle is not valid or that the handle is currently selected into a device context. DeleteObject「アタシ、あくまでコダワリはハンドルだけでぇ、実体はキョーミないの」
C++なら新人に多重deleteされないようにdeleteし終わったらNULL入れておくかな。 C++はNULLのdeleteは「何もしない」のが仕様として決まっているから。 無条件deleteでも問題ない話になる。
>>358 スマートポインタ、最低でも auto_ptr で自分で delete 書かないほうがいいだろ。
確実だし、デストラクタでヌル詰めるとか無駄だし。
どこででもSTLが使えると思ってるのはゆとり
>>358 本質的な問題を隠してるだけじゃないのかそれは
どうでもいいけど、C++ではNULLってなくね 0 が正解では。
ポインタにNULLを入れて何回でもdeleteしてやる
for(i=0; i<INT_MAX; i++){ myLife = NULL; delete myLife; }
>>359 と
>>361 に同意。まずRAIIを徹底する。そしてスマポを使う。
deleteが無意味に何回も呼ばれるようなカスコードはそもそもぶっ殺す。
ああいうのが無能な後輩に育てていくんだろうな それでいて自分のせいだと気付かずに文句を言う
exitの前にfreeするか的なあれ
>>360 それをWin32APIスレで語っちゃうのはメクラ
>>367 DLL経由でmallocされてたものはfreeせずにexitしちゃだめだろ
win16なう
>>334 --- 使用前 ---
hdc = GetDC(hwnd);
hMemDC = CreateCompatibleDC(hdc);
hBitmap = CreateCompatibleBitmap(hdc, WIDTH, HEIGHT);
hBitmapSave = SelectObject(hMemDC, hBitmap);
ReleaseDC(hwnd, hdc);
--- 使用 ---
hdc = BeginPaint(hwnd, &ps);
BitBlt(hdc, 0, 0, WIDTH, HEIGHT, hMemDC, 0, 0, SRCCOPY);
EndPaint(hwnd, &ps);
--- 使用後 ---
hBitmap = SelectObject(hMemDC, hBitmapSave);
DeleteObject(hBitmap);
DeleteObject(hMemDC);
Win2KでPrintWindow相当のことがしたいのですがどうすればできますか? やりたいことは別プロセスから他のウィンドウに隠れたウィンドウのキャプチャ。 キャプチャするウィンドウを前面にもってくるのは×。
[PrtScr]
>>374 それただのデスクトップキャプチャじゃん
>>375 つ PrintWindow相当のことがしたい
PrintWindowを理解していない馬鹿
>>374
反論あるなら答えを書けば?
GetWindowDCして自前のメモリデバイスコンテキストにBitBltとか? 隠れた部分まで正しく得られるかは知らん
PrintWindowの挙動を解析してそのまま2k上で実装すればいいだけです
WM_PRINTで自前のHDC渡したらダメかな
メモリー空間違ったら書き込めないからWM_PRINTじゃ無理ですな。
>>371 丁寧にありがとうございます。
しかし1つだけ分からない箇所があります。
--- 使用後 ---
hBitmap = SelectObject(hMemDC, hBitmapSave);
では、hBitmap が hMemDC に割り当てられていたビットマップハンドルを
受け取っているのだと思いますが、そうする理由を教えていただけないでしょうか?
hMemDC に別のビットマップを選択することがない限り、
この必要はないように思えるのですが。
>>386 直後のDeleteObjectで使ってるじゃん
Win32apiで現在のPCの起動状態がセーフモードか判断する方法は あるのでしょうか?
GetSystemMetrics SM_CLEANBOOT
>>387 あぁ、なるほど。
hBitmapがローカル変数の場合は、この代入が必要になるのですね。
自分がhBitmapをstatic変数で宣言していたので、疑問に思ってしまいました。
「WM_APP+1」やRegisterWindowMessageで登録したメッセージなどをSendMessageで親ウィンドウに送り、 親ウィンドウがそのメッセージを独自に処理しなかった場合、 SendMessageの戻り値は不定なのでしょうか?それとも必ず0になる?
ビットマップはSelectObjectした状態で削除してもいいのにね SelectObjectした時点でDCコンパチブルに色変換されてコピーされちゃうからなんだけどね こういうの馬鹿の壁って言うの?
>>391 DefWindowProcは理解出来ないメッセージに対しては0を返す(たぶん)
MSDNには DefWindowProcの戻り値はメッセージ次第で WM_APPの戻り値はNone(==NULLかな)とあるね
>>390 この場合staticかどうかは関係ないと思うぞ
>>394 None のときは NULL ですらないので注意
>>392 Win9xではSelectObjectしたままDeleteObjectはできなかった。
いくら今のWindowsで動いているからと言っても、原則から外れた書き方はよくない。
どうせ原則通りにやっても仕様変更で動かなくなることもあるんだから今動けばいいんだよ 9xで動いてたコードが動かなくなった例なんて腐るほどあるわけだし つーか9xとNTではモノが全然違うんだから比較してもしょうがないでしょ
漏れは
>>397 に同意だが
いまさら 9x の心配をしても仕方ないとは思う
>>393 ,394,396
どうもです。
0かNoneかは大きな違いかと思うのですが、
親にSendMessageした結果を戻り値で判断するのは危険ということになりますか?
親がそのメッセージを無視してDefWindowProcなどに渡ってしまっても
正しく動くようにしておきたのですが。
401 :
388 :2011/02/01(火) 09:38:56
402 :
デフォルトの名無しさん :2011/02/01(火) 09:56:26
WM_CREATE で return -1; とし、CreateWindow を失敗させると、 以後 MessageBox が出せなくなります これは正常な挙動なのでしょうか また回避策はないでしょうか
ブラシやペンに限らずDCにSelectObjectされたGDIオブジェクトをDeleteObjectした時は0を返すのがWin32APIの仕様なのだが 動くから問題ないと主張する馬鹿の書いたプログラムでも問題なく動くようにWin32APIは必ずしも仕様通りに実装されていない
DeleteObjectは成功しても、DeleteDCでエラーを返した記憶がある。 たしかビットマップ以外のオブジェクトだったが。
405 :
400 :2011/02/01(火) 10:58:12
すいません、追記です。 WM_SETCURSORなどのように、「このメッセージを内部で処理したらTRUEを返せ」 という流れにしたいと思っているのですが、 DefWindowProcに渡ってしまったらちゃんと0(FALSE)になる、 ということの確信が持てないと、この動きは実現できないですよね?
>>403 仕様通りに実装されてないからこそ動くように書くのが正しい
>>405 if( WM_APP<=msg && msg<WM_APP+xxx )
return 0;
else
return DefWindowProc(...);
とかじゃだめなん?
408 :
400 :2011/02/01(火) 17:50:30
>>407 それだと、無視する処理が親側に必須になってしまいますよね?
送ったメッセージを親が内部で処理しなかったために
DefWindowProcに渡ってしまったときにも、
子が「無視された」と判断したいんです。
つーか親とか子とか自分用語で質問しても意味が分らん
>>408 WM_APPで処理をDefWindowProcに渡すってことは
未実装なわけなんだから
送らなきゃいい話じゃないの?
411 :
400 :2011/02/01(火) 19:54:33
>>410 未実装かどうかは子ウィンドウ側はわからない状態です。
親ウィンドウに独自のメッセージを送り、
それを親ウィンドウが処理してくれたかを知りたいんです。
これってそんなに変な動作ですか?
WM_APPとかRegisterWindowMessageとか使ってメッセージやり取りするときって どんな動作してくれるかあらかじめ分かってるから使うんでしょ
>>403 MSDNも見れない知恵遅れにはプログラムは難しすぎるからお前はぴゅー太でも使ってなさい
それはきっと別の実装を考えたほうがいい
ウィンドウクラスへのカーソルの割り当てを状況によって切り替えることはできますか?
SetClassLongPtr
誰か教えて下さい。 DLLにリソースを追加したくて、BeginUpdateResource -> UpdateResource -> EndUpdateResourceとやってエラーは発生しない。 EnumResourceNamesで確認するとUpdateResourceで追加したリソースも存在するように 見えるのですが、FindResourceで追加したリソースを検索するとNULLが返ります。 何か分かる方いませんか?
バグったソースごとうp
リソースタイプが間違ってるんだろう。
顔が下にあるのが恥ずかしい
424 :
419 :2011/02/02(水) 12:01:14
わかった。 UpdateResourceでリソース名を指定する場合、大文字じゃないと FindResourceで失敗するようだ。FindResourceは指定されたリソース名 を大文字に変換してから検索するらしい。 でもって、res: プロトコルで使用する場合、リソース名の先頭が 数値文字(e.g. 2011_02_01.GIF)の場合には、IEで表示できない。 リソース名の先頭が数値文字でもFindResourceは大丈夫みたいだ。
いまどき独自メッセージ定義して親子通信しようなんてのがノンセンス パイプとか共有メモリ使えよ
の、ノンセンス…
もしかして: ナンセンス
いまさら、WinAPI頑張っても求人ないんだろうな・・ 急に面白く感じ始めたんだけど・・ Qtといい、俺のシュミは金にならん。
できる奴は勉強せんでもMSDNあれば事足りる できない奴は.netやらされる
しばらく触ってなかったら、WindowsSDKのヘッダがえらく変わってる気がする…… ヘッダいじらないとコンパイルが通らん。
おまえのコードが可笑しいだけ
つまらない質問ですが、よろしいでしょうか? mciSendCommandを使って音楽の再生を行っているのですが、 7/VISTAでは再生されないのですが、これは使用なのでしょうか?(自宅などのXPマシンなどでは動作します) またmciSendStringで再生が終了したかの確認するにはnotifyで、プロシージャでの取得だけしかできないのでしょうか? それあたりがよくわからないので、教えていただけないでしょうか?
Unicode関係でOS側でバグがあるとか。
XAudio2使えって書いてあった
MCIってエラー情報取得できないっけ
>>428 WinAPIのどこを頑張るんだ?
APIと構造体と#defineとtypedef全部覚えたら願いがかなう!とかキモイ感じ?
winapiっていうかwindowsの知識のことかな
全然別物だろ MSDNとTechNetぐらい違う
Advanced WindowsとInside Windowsくらい違うのか…
ディレクトリXに001.jpg, 002.jpg, 003.jpg, と1万個のファイルがあるとして、 このときX/002.jpgを与えられた際、同一ディレクトリにあるそれ以外の任意の 1ファイルのパスをなるべく高速に取得する、ということがやりたいです。 思いついた方法としては 1. FindFirstFile,FindNextFileでディレクトリXに存在する1万ファイルを全て 把握して002.jpg以外のファイルを探す 2. DeviceIoControlでMFTを直読みしてX/002.jpgの次に存在するXディレクトリ 配下のファイルを探す 1は楽だけど時間がかかる。2は高速だけどドキュメントも少なく苦労も多い。 ということで、それ以外に「これを使った方が早い/楽」等、 何か使えそうなAPIがあれば教えてくれるとありがたいです。
ごめん。ちょっと誤解を招く内容になってるので少し訂正。 「任意の1ファイルのパス」と書いてるけど、 「002.jpgの次にある任意の1ファイルのパス」 という意味です。
規則性があるなら二分木で探せばいいし、なければ読み込むしかない。
>002.jpgの次にある kwsk
次ってなんだよ。
だから馬鹿なんだろ ほっとけよ
1フォルダ内に1万ファイルか そこから見直すべきじゃね?
>>443 ,444
早速の返答ありがとう。
「次のファイル」というのは「MFT上の指定されたレコード(例でいうとX/002.jpg)
の次以降に存在する最初の同一ディレクトリ(例でいうとディレクトリX)に属する
ファイル」という意味です。
ファイルシステムはNTFS決め打ちで考えてもらって問題ありません。
>ドキュメントも少なく苦労も多い NTFSが出てから何年経ってると思ってんの? ドキュメントは腐るほどあるしライブラリだってあるし もしかして日本語じゃないと読めないとか言い出しちゃう人? 少しはググれよ
2000だから1999年ごろだろ
>>449 いや、別に英語読むのはかまわんのだけど、
もっと便利なAPIがあるなら、わざわざそこまで低レベルな
ことやるのも馬鹿らしいし、なにかその辺知っていたら教えて欲しい、
という意味です。
自分がググった範囲じゃ見つけられなかったので、
もし知っていたらお願いします。
それは良い心がけですね
FindNextFileってMFT的に”次”のファイルが取れるって保証あったっけ?
例えば、10.jpgの次が20.jpgであるディレクトリに11.jpgを追加すると、 10.jpgの次が20.jpgであることはNTFSでは保証されているのか? 保証されていないならば、*次のファイル*に意味があるとは思えない。
そのファイルのサイズが小さい場合ディレクトリエントリに格納されているかもしれない
ファイル名に連番とかの規則性があるわけではなくて、とにかく次にあるファイルっていうこと? 規則性があるのならプログラムで目的のファイル名を生成してピンポイントでFindFirstFileでいいんじゃない? 規則性がなくて単純に全ファイル名をソートした中の次という意味ならB+Tree検索 ソートもせず、ファイルシステム上の次レコードという意味なら適当なファイルをランダムに開くのと同じ (一応NTFSはファイル名をソートして記録することにはなっている)
何に使うのかは知らないが、もし俺がアプリケーション内でそれを実装しようとするなら、 アプリケーション起動時に全部呼んで、必要なキーでマップなりなんなりのデータベース作る。 キーは例えば先頭クラスタ番号とか。 以降に書き換えが発生するなら、フォルダ監視で。
NTFSAのファイルエントリがB木で格納されていると知っていればくだらない疑問はわいてこないはずだが
特定の文字列(例えば"OPEN")を入力したらMessageBoxを出す ウィンドウレスアプリケーションを作りたいのですが、 GetAsyncKeyState関数だけで出来そうですか?
ウィンドウなしでどこに入力するんだ?
462 :
441 :2011/02/04(金) 20:00:40
皆さんどうもありがとう。 結論としては、MFT上の「特定のレコードの次」を取得するためのAPIは (すくなくとも一般に知られる範囲では)存在しない、 あえてやろうとしたらMFTを直接読むしかない(APIはDeviceIoControl)。 それ以外ではFileFirstFind, Nextで最初にそのディレクトリ配下のファイルを 把握して、その中で「次」を取得するしかない、ということで理解しました。
>>463 デスクトップにメッセージフックやればいいよ
ちょっとマイナーな?API調べようとしても英語サイトしかでてこないね 日本人は何をしてるんだ
英語で十分です
今時小学生でも英語読めるよ
469 :
デフォルトの名無しさん :2011/02/05(土) 13:18:38
>>466 英辞朗インスコして、一文字一文字マウスカーソルを乗せながら、呼んでいくんだ!
翻訳したら金くれるってのならやってもいい
いいからAPI出せや
>>471 ほれ
RaiseNullPointerException()
ガッ
474 :
デフォルトの名無しさん :2011/02/06(日) 13:12:29
ショートカットファイルから情報を取り出したいんだけどどうにもうまくいかなくて困ってる。 WSHを試したら新しいのは作れたけど既存のから取り出せなかった。 助けてー on VC++2008 EE, C++/CLI、フォームアプリ
IShellLink
>>475 それも試したんだけど、
IID_IPersistFile
CLSID_ShellLink
IID_IShellLink
のリンクが通せなくて挫折したorz
C++/CLIでやったから、らしいんだけど、純Win32APIとリンク設定の違いが分からなくて。
CoInitializeしてないとか
してる。してなくてもリンクが通らないこととは関係ないよね?
リンクが通らないってなんのことだ? リンカのことか?それともコンパイルが通らないってことか? #include <shlobj.h>書いてないとかそういう話か?
当然リンカ。 インクルード書かなきゃコンパイルも通らない。
エラーここに張ってみてよ
initguid
1>リンクしています... 1>hoge.obj : error LNK2020: 未解決のトークン (0A000012) IID_IPersistFile 1>hoge.obj : error LNK2020: 未解決のトークン (0A000014) CLSID_ShellLink 1>hoge.obj : error LNK2020: 未解決のトークン (0A000015) IID_IShellLinkW 1>hoge.obj : error LNK2001: 外部シンボル "IID_IPersistFile" は未解決です。 1>hoge.obj : error LNK2001: 外部シンボル "IID_IShellLinkW" は未解決です。 1>hoge.obj : error LNK2001: 外部シンボル "CLSID_ShellLink" は未解決です。 1>C:\Documents and Settings\hoge\My Documents\Visual Studio 2008\Projects\hoge\Debug\hoge.exe : fatal error LNK1120: 外部参照 6 が未解決です。
ちゃんとCoCreateInstanceで作ってるよね?
ビルドもできない馬鹿はスレ違いだから死ね
ソースを見ないとわからないが、 ::IID_IPersistFile ::CLSID_ShellLink ::IID_IShellLink ってグローバル名前空間にしないとだめなんじゃね?
>>487 試したけどさすがに駄目だった
#pragma once
#include <shlobj.h>
namespace hoge {
using namespace System;//一部略
System::ComponentModel;System::Collections;System::Windows::Forms;System::Data;System::Drawing;
public ref class Form1 : public System::Windows::Forms::Form {
public:
Form1(void) { InitializeComponent(); this->GetShortCutFile(); }
protected:~Form1(){//省略}
private:System::ComponentModel::Container ^components;
void InitializeComponent(void){//省略}
IShellLink *m_pShellLink; IPersistFile *m_pPersistFile;
private: void GetShortCutFile( ) {
HRESULT hRes;
m_pPersistFile = NULL; m_pShellLink = NULL;
hRes = ::CoInitialize( NULL );
if( hRes == E_OUTOFMEMORY ||hRes == E_INVALIDARG||hRes == E_UNEXPECTED) return ;
hRes = ::CoCreateInstance( ::CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER, ::IID_IShellLink, (LPVOID*)m_pShellLink );
if( hRes == CLASS_E_NOAGGREGATION ||hRes == REGDB_E_CLASSNOTREG) return ;
hRes = m_pShellLink->QueryInterface( ::IID_IPersistFile, (LPVOID *)m_pPersistFile );
if( hRes != S_OK ) return ;
Load( "a.lnk");
}
bool Load(LPCSTR filename) { HRESULT hRes; OLECHAR ochLinkFile[MAX_PATH]; ::MultiByteToWideChar( CP_ACP, MB_PRECOMPOSED, filename, -1, ochLinkFile, MAX_PATH ); hRes = m_pPersistFile->Load( ochLinkFile, STGM_READ ); if( hRes != S_OK )return FALSE; hRes = m_pShellLink->Resolve( NULL, SLR_UPDATE ); if( hRes != NOERROR ) return FALSE; return TRUE; } };} 1レスに入りきらんかった。 CLIのForm標準から始めて、Ole32.libとかkernel32.lib,user32.libとかをリンク設定に放り込んでみたけど駄目だった
コンパイルオプションが/clr:pureとか/clr:safeになってるとか
FAQレベルの話をいつまでやってるんだか
ソ レ ダ ! /clrにしたら通りました なんてこったい。今度は別の問題に当たったけど頑張ってみます。 お騒がせして申し訳ない。ありがとうございました。
何かものすごい知ったかぶりを見た気がする
499 :
デフォルトの名無しさん :2011/02/06(日) 23:00:53
HGDIOBJ型はHPEN型やHBRUSH型を持っているのですか? キャストしたりしなかったりで、混乱しているので・・
全部void*型です
全てのウインドウの親はいわゆるデスクトップというウインドウなんですよね
デスクトップというウインドウの親は?
ニトリ!
505 :
デフォルトの名無しさん :2011/02/07(月) 10:43:15
spyで見れ
真実を知ることがこんなにつらいなら 僕は spy になんかなれない
ノ spy++
spy#はまだですか
509 :
499 :2011/02/07(月) 13:38:58
>>500 void*なんですね。ああ、そういうことか・・
Cは初心者で、一通り、ざらっと書籍を読んで学んだだけなので
良くわからなかったのですが、いま、ググッて色々しらべたところよくわかりました。
どうもありがとうございましたm(_ _)m
実は、最初は、「何いっとんねん、このおっさん」とおもっていました。。
よ〜く納得できました。ありがとうございました。
あれは嘘です
Cでwin32api勉強してるんだけど メニューが表示できない エスパーさん教えて
サンプル通りコピペすればコンパイルは出来るけど メニュー表示されてないってことは リソースの埋め込みがちゃんと出来てないってことでおk?
見てないけどMAKEINTRESOURCE
見てないけど、*.rcをプロジェクトに登録してない。
見てないけど、RegisterClassのHMENUに0を入れてる
見たけど分からない
見てないけどウィザードでメニューなしを選択。
見てないけどメニュー識別子が整数なのか文字列なのか分かっていない
メニューはウインドウ?
brc32じゃ駄目なの・・・?
524 :
デフォルトの名無しさん :2011/02/10(木) 07:34:48
質問おねがいしまーす。 自スレッドがマウスキャプチャを取得してるときは そのウィンドウをGetCaptureでそのウィンドウハンドルを取得できますが 他スレッドの場合、MSDNによればGetWindowThreadProcessIdでスレッドidを得て GetGUIThreadInfoでGUITHREADINFO構造体のhwndCaptureに格納されるって書いてあります。 たしかにそれで取得できるわけですが、 じゃあどのスレッドにキャプチャがあるか知らない時 そのスレッドidを知る方法はありますか?
EnumThreads
タイマーのタイムアウト値を変えたいときは SetTimer(hwnd, TIMER_ID, 1000, NULL); SetTimer(hwnd, TIMER_ID, 500, NULL); こんな感じでよろしいでしょうか? KillTimer() を呼ばなくてもちゃんと置き換わるのでしょうか?
brc32を使ってできたexeファイルをtdumpで開いてリソースを 確認しても変化がみられないので 一度削除して bcc32で.objをつくり、brcc32で.RESをつくり ilink32でリンク(埋め込み)して再度tdumpで確認したら 埋め込みは出来ている様。 しかし、exeファイルを実行しようとすると 「有効なwin32アプリケーションではありません」とでて実行できない 誰か解消方法を教えてくれ ちなみにosはwindows7 64bit
どこがapiだ
531 :
デフォルトの名無しさん :2011/02/11(金) 19:41:06
質問させていただきます。 環境はVisualStudio2008EEを使っています。 リソースエディタで作ったエディットボックスに、入力バイト数制限をかけるため、EM_LIMITTEXTを使っています。 コンパイル時の文字セットを「マルチバイト文字セットを利用する」にしている時はうまく動作しました。 しかし事情があって「Unicode文字セットを使用する」でコンパイルする方法に変えました。 結果、入力バイト数ではなく、文字数での制限へと動作が変わってしまいました。 おそらく、CreateWindowWでエディットボックスが作られることとなり、結果文字列がWCHARとして扱われてしまっているのだと思います。 この状態から、コンパイル時の使用文字セットを変えることなく、 うまくマルチバイト扱いでバイト数制限をかける方法はないでしょうか? よろしくお願いいたします。 ・SendMessageAでEM_LIMITTEXTを送ってみる ・SetWindowTextAでマルチバイト文字をセットしてみる と試してみましたが、効果はありませんでした
サブクラス化して自前でやればいいよ
Unicodeなのにバイト数制限とは?方向性が根本的に間違ってね? やりたいことは多分Unicode→ANSIと変換して制限、を自前で、だと思うが。
535 :
デフォルトの名無しさん :2011/02/11(金) 20:25:58
レスありがとうございます。
>>532 自前はちょっと面倒というか、最終手段ということで
>>533 他のところはユニコードで扱っているのですが、
ここだけは「文字列の横幅(=マルチバイト文字でのバイト数)」で制限をかけたいのです。
もちろんユニコードで入力させて、それを内部で横幅制限をかけるように切り詰めるという方法もあるのですが、
そもそも限界を超えて入力できないほうがユーザーが混乱せずに済むと思います。
>文字列の横幅(=マルチバイト文字でのバイト数) >文字列の横幅(=マルチバイト文字でのバイト数) >文字列の横幅(=マルチバイト文字でのバイト数)
538 :
デフォルトの名無しさん :2011/02/11(金) 21:36:32
リソースエディタで作ったって言ってるから、自前でCreateWindowは使ってないんじゃね?
おっと、質問者でもないのにageちまったスマソ
あぁ、なるほどね
>文字列の横幅(=マルチバイト文字でのバイト数) >文字列の横幅(=マルチバイト文字でのバイト数) >文字列の横幅(=マルチバイト文字でのバイト数) >文字列の横幅(=マルチバイト文字でのバイト数) >文字列の横幅(=マルチバイト文字でのバイト数) >文字列の横幅(=マルチバイト文字でのバイト数) >文字列の横幅(=マルチバイト文字でのバイト数) >文字列の横幅(=マルチバイト文字でのバイト数) >文字列の横幅(=マルチバイト文字でのバイト数)
何が言いたいんだ?
543 :
デフォルトの名無しさん :2011/02/12(土) 06:24:53
CreateWindowでウィンドウを作り(サイズは横400、縦300と考えていただきたい) その上にCreateWindowでリストボックス(WS_VSCROLLで垂直スクロールバーを付ける)を作成。 でも、これ(リストボックスのサイズは横400、縦300、つまりウィンドウと同じ)だと リストボックスの垂直スクロールバーが半分くらい右にはみ出ている上に、 スクロールバーの下のボタンが完全にウィンドウからはみ出てしまう。 一応、多分GetSystemMetrics()で、スクロールバーの幅とか高さとか取って 引いてやればいい・・・と思って色々な引数で試したんだが OSによって、ずれたりもしてしまう。 こういう場合、どういう引数でGetSystemMetrics()を使って リストボックスのサイズから引けばいいか教えてほしい。 VC6+WinXP(WinMeなども試した) (説明わかりづらくてすまん)
>>543 親ウィンドウのスタイルにもよるけど、
親と完全に同じサイズだとはみ出てしまうよ。
その場合だと、ウィンドウ枠やタイトルバーの分だけはみ出ているものと思われるので
GetClientRect()でクライアント領域のサイズを取得して
それでリストボックスのサイズを決めればよい。
545 :
543 :2011/02/12(土) 07:05:08
>>544 レスどうもです。
GetClientRect(hWnd,&rect); // rect=RECT型
でクライアント領域のサイズ取得→rect.right と rect.bottomを
リストボックスの大きさに当てる・・・
やってみたんだけど横については全く問題なし(上手くいった)。
ただ、縦については、下に少し隙間(メインウィンドウの下の方)ができてしまう。
XPってのが関係あるんだろうか・・・
>>545 リストボックスのスタイルにLBS_NOINTEGRALHEIGHTを追加してみて。
これをつけないと、最下行に少しだけ表示される項目があるときに
OSが勝手にリストボックスのサイズを変更してしまうので。
547 :
543,545 :2011/02/12(土) 07:54:54
受け取った文字列を WideCharToMultiByte 関数で ANSI 文字列にして それからチェックすればいいだろ。 こんな小学生でもわかることを質問するなよ。 あと、これは入力されたのが Unicode にしかない文字だとおかしくなっちゃうからな。
あーそもそも制限を超えて入力できないようにしたいのか
>マルチバイト文字なら、バイト数が文字の横幅だよな? >マルチバイト文字なら、バイト数が文字の横幅だよな? >マルチバイト文字なら、バイト数が文字の横幅だよな?
何が言いたいんだ?
マルチバイト文字のバイト数が文字の横幅な訳無い
Windows7のファイルダイアログってどうやったら実装できますか? 普通にファイルダイアログ使うとXPっぽくなるんで、7のファイルダイアログにしたいです教えてください VS2005のVC++&MFC使ってます
まぁ厳密には違うな
そういう実装にすればOK。プログラム簡単になって良いじゃん。
等幅フォントでそうならない文字ってあるの?
アスキーアート 作ってみれば よくわかる
>>558 おいおいおいおいw
あれはプロポーショナルフォント だからだろうがw
まじで「プロポーショナルフォントだと幅違くなるじゃん」で
>>536 ,541,551を発言したの!?
いまどき固定ピッチとか言わないよな
固定ビッチです
エデットコントロールが一箇所だけMSゴシックのビットマップフォントになっちゃうの!?
おいおい、プロポーショナルフォントを知らなかったのなら、別にこれで勉強になったからいいじゃんか。 「いまどき」じゃないから俺は間違ってない!とかプライド確保する必要ないって ここ匿名掲示板だぜ
なんか知らんがそこまで必死にならんでも
どっちも必死すぎてきもい
発 者 同 . 。_ ____ 争 生 同 .じ . /´ | (ゝ___) い .し 士 .レ .__/'r-┴<ゝi,,ノ ro、 は、 .な で .ベ ∠ゝ (ゝ.//` ./`| }⌒j .い し .ル } ⌒ /`ヽ、_∠l,ノ ・ヽ´ .! ! か の / ´..:.} >、、___, .r、 ソ、`\ / ..:.:.} / |∨ ` ̄ / ..:.:./ | 丶 / _、 ..:.:.:.{ .{.:.:. \ { ..:Y .ゝ、 {.:.:.:.:. ヽ |、 ..:/ 丿 .:〉 >.- ⌒ . ヽ / {. ..:./ ソ ..:./ .( ..:.:.:` ..:} ./..:.:}.:.:./ ヘ、 ..:./ .\ ..:.:r_,ノ、.:.:} ./..:.:/|.:/ {.:./ X.:.:}.} X X /..:.:/ .}.:| }:/ .Y丶ヽ Y.:Y . __/.:/ { } 《.〈、 _,,__>.:》丶 Y.:\ /.:.:.:.:.::/ !.:.:ゝ ゝ.:. ̄ヾ ´:.:.:.:.:.:.:.:.:ヾゝ \.: ̄>
Windows InternalsやAdvanced Windowsって本良いですか?
はい
572 :
デフォルトの名無しさん :2011/02/13(日) 22:08:52
すみません。「13歳からはじめるC言語ゲームプログラミング」という本を買ってきたのですが、 VC++2008EEでWin32APIベースで作ることになっています。 インスコしたんですが、どうも私は統合環境での開発がいやで(低性能PCだから重い)、エディタ+コマンドラインコンパイルがすきです。 Win32の講座のページもbcc32 -W hoge.cppでやっていたんですが、この本ではGDI+を使っているので bccではできそうもないです。 VC++Exp2008のVisualStudio2008コマンドプロンプトっていうので、エディタで書いたのをコンパイルしたいのですが、 何オプションをつけてコンパイルしたらいいのでしょうか? ちなみに、大の大人です。ただ、グラフィックとか音楽の鳴らし方とか、私の好みに合いそうな例題だったんで・・
最近のAPIを使ったアプリケーションを 古いWindowsの上で動かそうとすると 「なんとか.dllが見つかりません」 というエラーが出て来るのですが 古いWindowsの場合だけその機能をスキップして その他は正常に動作させたいときは LoadLibraryでAPIを利用するしかないのでしょうか?
>>572 cl hoge.cpp user32.lib gdi32.lib
とかすれば大抵はうまくいくよ
576 :
デフォルトの名無しさん :2011/02/13(日) 22:35:12
◆QZaw55cn4c
577 :
572 :2011/02/13(日) 22:36:53
>>574 どうもありがとうございます!明日その方法で試してみます!
なんか、リンカがどうのこうのとかかいてあったのですが、ググッてやってみます。
ありがとうございました!
そうゆー論争にはあんま興味ないんだけどさ 何だかんだで天皇陛下のもと日本国民はまとまってる感じ そんなに天皇が嫌いなら自分から別の土地へ行けばいいのに
誤爆だよな?
580 :
579 :2011/02/14(月) 10:39:30
誤爆しました
581 :
582 :2011/02/14(月) 11:21:35
いやいや俺が誤爆だよ
uyouyonetouyouyouyo
583 :
デフォルトの名無しさん :2011/02/14(月) 13:22:12
ウィンドウ上のスタティックコントロールの文字(フォント)の大きさに 合わせて、スタティックコントロールのサイズを変えるって事をしたいんです。 DelphiのTLabelコンポのAutoSizeプロパティのような物です。 今は、 //st1はスタティックコントロールのウィンドウハンドル //stringはスタティックの文字列 hDC=GetDC(st1); GetTextExtentPoint32(hDC,string,strlen(string),&size); ReleaseDC(st1,hDC); SetWindowPos(st1,NULL,NULL,NULL,size.cx,size.cy,SWP_NOMOVE); って感じでやってます。 フォントサイズを全く変えない(14のまま?)場合は ぴったりの大きさになるんですが SendMessage(st1,WM_SETFONT,(WPARAM)hFont,TRUE); //hFontの大きさは32 のように、フォントサイズを変えてから上記のことをやると スタティックの大きさが変わりません。 間違ってる部分を教えて下さい。
584 :
デフォルトの名無しさん :2011/02/14(月) 13:23:41
現在うごいているスクリーンセーバーを解除して画面を戻すAPIを教えてくださ
>>583 hDCがフォントを選択していないのでは。
587 :
デフォルトの名無しさん :2011/02/14(月) 14:07:01
ここでいいのか分からないんだけど OpenProcessでDLLを別のアプリケーションにアタッチしてAPIをフックして UI用のアプリからDLLプロセスに現在の設定値を通知するようなことがしたいんだけど UIからDLLへの通信ってどうやればいいんだろう? 相手アプリが1つとは限らないからMutexとか固定されたものを使うわけにはいかないし
面倒ならDLL側でポーリングすれば? タイミングが大して問題じゃないなら。
>>226 いや
急降下以外は ヘルキャット<零式22型 なわけだが?
>>588 ソケットでやるのが楽
クライアント増える前提だと他の共有方法は面倒すぎる
ソケットだとデフォルト設定のファイアウォールで遮断される可能性はないかな? DLL側でウィンドウ作って、ハンドルをホストアプリに通知 メッセージ待ち受け状態にするのは面倒くさい? UAC環境では実行ユーザが同じである必要はあるんだけど楽だと思う。
ちょっと教えてください。 DOS6.2のAVSDRV.SYSのファイルって、皆さんどれ使ってますか? いま、 1996年4月1日58,668バイトのものと 1994年12月8日48,048バイトのものがあるんです。
Rectangleで長方形を書いて InvalidateRectでその長方形を再描画する。 こう↓ InvalidateRect(hWnd,&rect,FALSE); すると色々変な現象がおきる。 1. ビルドして実行するとウィンドウ上のボタンやリストボックスが消えてしまうことがある(消えない場合もある)。 (ボタンやリストボックスはクリックすると現れる) 2. ボタンが2つあって、一つをクリックした後、もう一つのボタンを押すと 先に押したボタンの内側に変な線が残る どうしたらいいか、教えてくれー
WS_CLIPCHILDREN WS_CLIPSIBLINGS
クライアント座標とスクリーン座標
597 :
594 :2011/02/15(火) 11:16:06
>>595 その2つの引数加えてウィンドウ作ったら
1の問題は解決したっぽい。
ありがと。
でも2の問題は解決しない・・・
>>592 ウィンドウはいいアイデアだなと思ったけど
UIウィンドウのアドレスはどうやって通知するの?w
599 :
デフォルトの名無しさん :2011/02/15(火) 15:46:33
質問いっすか?
おっすおっす
一番いい質問を頼む
RedrawWindow UpdateWindow InvalidateRgn の使い分けの仕方を教えてください
>>598 UI側のクラス名かウィンドウ名(または両方)を決めておけば、
FindWindowでウィンドウハンドル取得できる。
そんな用途ならウィンドウよりスレッドがいいんじゃないの?
606 :
デフォルトの名無しさん :2011/02/16(水) 10:32:21
すんません、
>>599 です、昨日質問できずに帰ってしまったので・・
質問しますけどいいですか?
質問してもいいかという質問をすでにしている点についてはどう思いますか?
608 :
デフォルトの名無しさん :2011/02/16(水) 14:39:31
わかりました、じゃあわかりました。 質問いいっすか?
嫌だって言ってもいいっすか?
嫌です
質問箱に回答があるのはおかしいとは思いませんか?
思いませんって言ってもいいっすか?
だめですって言えば考え直してもらえますか?
614 :
デフォルトの名無しさん :2011/02/17(木) 13:00:12
あ、すんませんまた寝てました 改めて質問しますが
もうあきた
詰問してもいっすか?
617 :
デフォルトの名無しさん :2011/02/17(木) 13:41:44
もう我慢できません質問します
また蛆テレビがやらかしたか
これはひどい
60代がキムチねぇ
622 :
デフォルトの名無しさん :2011/02/17(木) 14:59:47
では質問します
623 :
デフォルトの名無しさん :2011/02/17(木) 18:13:03
質問 お前等ってどうして知らないのにレスするのですか?
知らなかったらレスしてはいけないのですか?
>>624 知らないのにレスしないで下さい。ウザいだけです。
キムチ鍋ではなくチゲ鍋じゃないのか。 確かに美味いと思う。 漬物といえば今はキムチだしね。 っと板が全くちがうでわないか。
ここはとてもキムチ臭のするスレですね
日本人はキムチ好き
コラっしょ
韓国のオバサンが素足でキムチを踏んでるシーンをテレビで見てから食えなくなった。 ちなみに、フランスの若い女がぶどうを踏んで作ったワインは飲める。
もりあがってるところすみませんが シングルクリックとダブルクリックを区別したいのですが ダブルクリックを受け取るときにどうしても シングルクリックが同時に来てしまうのです 助けてください
いやです
これがツンデレか。 眼福眼福。
かかってこいよ
>>635 当たり前だけど最初のクリックの後次が来るかどうかなんてわからないので
大抵はダブルクリックの動作の布石になるような動作処理をシングル側に書いたりする
どうしてもイヤなら待つ
ちなみに布石ってのは、例えばダブルが何かを確定させる動作なら シングルはその 何 を選択させる動作、みたいな 参考:Explorerの動き
テレビは糞とか言いながらいちいちうぉっちしてるのな
>>642 何いっちゃってちゃっててっててるのこいつ?
WindowsAPIって全体としてはどのくらい存在するわけ?
3.1系からだと考えると、17〜18年
数じゃないのか
寿命で言えば20年超えてる
自前でDLLを作って BOOL WINAPI DllMain(HINSTANCE hInstDLL, DWORD dwReason, LPVOID lpvReserved) の hInstDLL の値を dwReason が DLL_PROCESS_ATTACH のときにテスト表示させています Windows 2000 とか Windows XP とかだと起動する exe 毎にこの値が変化するのですが Windows Vista だと (Windows 7 は持ってないので試せない) exe を複数同時に起動しても同じ値になります この辺の事情について詳しく解説されているサイトなど検索してみたのですが見つからず ご存知の方いらっしゃいましたら教えて頂けるとありがとう
>>649 異なるプロセス空間ですから、同じ値になっても不思議はありません。もちろん異なる値になっても不思議はありません。
hInstanceの値は単なるハンドルなので、同一プロセス空間内で区別が出来ること意外のことは関知しません。
その値の内容について気にしてはいけません。
それをふまえた上で、その結果が偶然ではないとすると、単純にDLLがロードされるアドレスに由来する値が
返されていたのが、ASLRの関係でそうではなくなっただけではないでしょうか。
気にする必要のないものいちいち受け渡すなよ
XP以前はベースアドレスが他のDLLと被っててリロケーションが発生してるだけだろ
リロケーションが発生しても再配置ルーチンが一緒なんだから毎回同じアドレスになるはずでは?
ところで、hInstはDLLのベースアドレスっていうのは真なのか?
655 :
デフォルトの名無しさん :2011/02/20(日) 02:13:24.90
クソウヨは自殺しろよ
656 :
デフォルトの名無しさん :2011/02/20(日) 02:18:28.83
人間のクズが何スレッド何年にも渡って荒らしやがって。 死ね。クソウヨの分際で。 生きる価値のないウジムシが。
ぬるぽ
|\ /| |\\ //| : ,> `´ ̄`´ < ′僕と契約して、民主党に入れてよ . V ⌒ ⌒ V そしたらどんなマニフェストも1つだけかなえてあげるよ . i{ (・ )` ´( ・) }i 八 (__人_) .八 . / 个 . _ `ー' _ .个 ', _/ il ,' '. li ',__ 魔法政党まさか☆マジカ 1話「マニフェストであった、ような・・・」 2話「子供手当はとっても嬉しいなって」 3話「もう何も恐くない」 4話「仕分けも、増税も、あるんだよ」 5話「審議拒否なんて、あるわけない」 6話「こんなの絶対おかしいよ」 7話「本当の現実と向き合えますか?」 8話「国民って、ほんとバカ」
Yes, we can.
今「一式戦闘機 隼」を見てるけど ナレーションはまだしも、チンケなBGMなんか付けるなよ。 エンジン音が聞こえん。。
SetForegroundWindow() を呼んでいなかったのが原因でした 本当にありがとうございました
かかってこい
664 :
デフォルトの名無しさん :2011/02/21(月) 18:47:54.71
Window の拡張スタイルに WS_EX_LAYERED というのがあって、半透明の Window が作れるけれど、MDI で開いた Window にはこれを設定する 方法が見つからない。CreateMDIWindow() には Ex 付きはないし、 MDICREATESTRUCT にもそのエントリーがない。SetWindowLong(), SetWindowLongPtr() でも WS_EX_LAYERED がセットできない。 半透明にする裏技はないんでしょうか。
トップレベルウィンドウ用の属性が何故使えると思ったのかね?
uruse-baka
MDIっていまどき流行らないよ
流行り廃りはどうでも良い 本人はそれを行う方法を探してるのだ
>>667 否定だけで何の解決も示さない存在価値のないレスかっこいいですね
>>667 知らないならレスしないで下さい。ウザいだけです。
スターウォーズ計画は関係ないだろ
674 :
664 :2011/02/23(水) 10:36:41.65
折角ですから、お笑いネタ。 MDI 子ウインドウに対して long lStyle = GetWindowLong(hWnd, GWL_EXSTYLE); SetWindowLong(hWnd, GWL_EXSTYLE, (lStyle | 0x00080000)); を実行しても、GWL_EXSTYLE の値は変わりません。 LastError を見ると、両方とも実行後は「正常終了」。 念のため、各実行前に SetLastError(-1); を入れると 実行後両方とも "-1" 。
>>674 665 名前:デフォルトの名無しさん[sage] 投稿日:2011/02/21(月) 22:13:33.14
トップレベルウィンドウ用の属性が何故使えると思ったのかね?
>>674 どこがおもしろいのか教えてくれないか?
マウスカーソルが98画面内にあるときは98のマウスカーソル 画面外にあるときはWindowsのマウスカーソル 自動的に切り替えられるエミュってできないのかなぁ
98?
PC-98って固有のカーソルあったっけ?
Win3.1?
PC-98 を絶滅に追いやったのは Windows98 なんですか?
価格だろう PC-9821Ap3になんやかんや付けて70万くらいした気がする
ハードとOSを比較するひとって(ry
済みません、質問なのですが宜しくお願いします 既にPopupで作成されたウインドウをOverlapに変更する方法はありませんでしょうか? ウインドウのオーナーを直接変更する関数はAPIに存在しないようですが、何か方法があれば教えてくださいませ。 他にオーナーウインドウを持つPopuoウインドウを、他にオーナーウインドウを持たないOverlapウインドウに変更したいです。
SetParent
レス有難うございます。 Parentでなく、オーナーを変更したいのです。 0 をいれてParent をデスクトップにしてもオーナーは元のままになって、最小化した時にタスクバーに隠れません
SetWindowLong(hWnd , GWL_HWNDPARENT, 0) はどう?
レス有難うございます。 最小化時にタスクバーに隠れました。 でも、オーナーウインドウを閉じると一緒に終了してしまいますので、Overlapにはなっていないかも知れません。 当面の目的を達せましたので、これで色々と書いてみます。
アプリ(A)が起動時に他のアプリ(B)からウィンドの操作を行いたいと思います。 たとえば、Aが最小されている場合BがAに対してSendMessageでSC_RESTOREを送信すると、最前に表示されます。 ここから質問なのですが、 Aが他のアプリのバックグランドに隠れているときに最前に表示をさせたいときはどのようにすればよいでしょうか? やりたいことは、タスクトレイアプリ(B)がGUIアプリ(A)を起動させるのですが、 Aがすでに起動している場合は最前に表示を行いたいだけです。 Aのハンドルはもちろん外部ファイルかでBも知っているのでSendMessageで何かを送信すればよいと思うのですが・・・ 長文ですいません。
>>684 マジレスするとCバスとそのための独自サウスブリッジのコストと性能じゃね?
>692 setforegroundwindow attachthreadinputでぐぐれ
印刷前提の描画処理内で太い点線 (PS_GEOMETRIC | PS_ENDCAP_SQUARE | PS_DASH)を描いているのですが、 これに太い輪郭を付けようとすると、どういう方法が考えられますか? 線の太さを変えて同じ位置に描く →点線だからずれてしまう 同じ太さでループで回しながら周囲に描く →何百回も描画が必要な上に、斜め線のときには輪郭が8方向に角張ってしまう と、自前で調べた方法ではうまい描画にならず、困っています。
path
やっとMFCが理解できるようになったよ
Windows2000が出せたならWindows7も出せるはず
700 :
692 :2011/02/24(木) 10:58:05.21
>>694 ありがとうございます。簡単に解決しました(^^
OleLoadPictureでTop-DownでRenderする時のパラメータってどう書くんですか? ググってもBottom-Upでの方法ばっかで困った
>>701 の追記
ググるとこんな感じに書かれてる(w, h: pixel単位、mw, mh: HIMETRIC単位)
pic.Render(hdc, 0, 0, w, h, 0, mh, mw, -mh, NULL);
だからこうかなと思ったんですが画像の上部に黒い部分が出来る
表示位置がずれているぽい
pic.Render(hdc, 0, 0, w, h, 0, 0, mw, mh, NULL);
Bottom-Up番では第7引数(転送元開始y座標)で(mh-1)(?)じゃなくて
mhが指定されているからTop-Down版では-1にすれば行けるかなと思ってやってみたけど
そっちもダメでした。
703 :
701 :2011/02/26(土) 16:21:11.32
解決まじかよ・・
> OleLoadPictureでTop-Downで で?
>> OleLoadPictureでTop-Downで >で? で?
> > OleLoadPictureでTop-Downで 日村を思い出した
☆★☆ これがブサヨだ! ☆★☆ Q:ブサヨってどんな奴なの? A:こういうのがブサヨです /:::::::::::::::::::::\ /::::::::::::::::::::::::::::::::\ |:::::::::::|_|_|_|_|_| |_|_ノ∪ \,, ,,/ ヽ |::( 6 ー─◎─◎ ) |ノ (∵∴∪( o o)∴) | < ∵ 3 ∵> /\ └ ___ ノ .\\U ___ノ\ \\___) ヽ ★ 左翼っつーか韓国中国マンセーのアナキスト。 ★ 憲法9条真理教徒。 ★ 日本を褒めるスレを異常に嫌悪する。 ★ 国家や郷土をコミュニティにしないけど、かといって独自のコミュニティを持っているわけでもない。 要するにクラスでハブられて独りでブツブツ言ってるようなヤツ。 ★ 皇室に異常な敵意を持っていて、ネットで天皇を潰そうぜとか吠えてるけど、 憲法改正には一切言及しない現実逃避者。 ★ 小泉構造改革が諸悪の根源と言っているが、民主政権下で小泉の時より国民の生活が悪化していることはスルー。 ★ 民主党信者だけど、今ネットで民主党を擁護すると風当たりが強いから、自民叩きやウヨ叩きに精を出す日々。 民主党の支持率とブサヨのジミンガーウヨガーと暴れる度合いに相関関係があることは興味深い。 ★ 日本嫌いだけど日本語しか使えない。 ★ 30代後半〜団塊のオッサンの割合が多い。 ★ 「在日のレッテル貼るな!」と言うけど、思想や言動が朝鮮人と全く同じなので、ネットだと区別がつかない事には気づいていない。
>>315 こんなかんじ
#朕ガ最モ信頼セル老臣ヲ悉ク倒スハ、真綿ニテ朕ガ首ヲ締ムルニ等シキ行為ナリ
#朕自ラ近衛師団ヲ率ヰテ、此レガ鎮定ニ当タラン
おれが一番頼みにしてる人間を全て殺すのは、じわじわおれの首を
しめて殺そうとしているのと同じ、おれ自ら軍隊率いて鎮圧してやるよ
なんでム板とマ板にはキモイ奴らが沸くのか
わざわざ相手にするキモイのが多いから・・・
わざわざ相手する奴初めて見たな 普通はみんなスルーしてるのに。 ああ、自作自演か。釣られたぜ
お前モナー
こんな化石みたいなこと言う人まだいるんだ…きも…
世間から見たら 2ch 自体がすでに化石なんだが...
つまりここに書き込んでいる人たちはお前も含めて全員化石
WinAPIだって半分化石
マジでUI系APIのバッドノウハウオンパレード状態を何とかしてほしいね
文字数とバイト数がOSによってどころかDLLのバージョンによってぐちゃぐちゃなのをなんとかしてほしいものだ。
WinAPIを直接使うのは物好きかニッチか馬鹿なのでいいんです
綺麗に書き直されることは今後ないの?
Win32APIじゃないかもしれないけど 好きな関数 SHGetImageList
CopyRect
725 :
デフォルトの名無しさん :2011/02/28(月) 00:34:26.28
SetExpImage
GetDlgItem
全Win32API 長い関数名選手権
エントリーがなかったので終了
LRESULT WINAP エントリーがなかったので終了()
愛がないので終了。
732 :
デフォルトの名無しさん :2011/03/01(火) 18:32:51.50
プロセス間通信をしようと思ってDLLでウィンドウを作成して メッセージをポストしようかと思ってるんだけど DLL_PROCESS_ATTACHでCreateWindowをしてみたら一瞬出るんだけど すぐにDLLがアンロードされて消える どうすればいいんだろう?
そりゃお前がおかしなことしてるからちゃんと動かないだろう
そのDLL独自のスレッドを立ち上げてその中でCreateWindowしてメッセージループまわしてみたら
>>734 調べてその方法でいけましたが今度は別の問題が出てきまして
Windows7 64bitなんですがPostMessageしても反応しないんですが
UAC関係の問題なんでしょうか?
UACオフにして調べてみればすぐ分かると思うんだけど…
737 :
デフォルトの名無しさん :2011/03/01(火) 20:20:38.57
Windows7 sp1からデスクトップのウィンドウ構造が変わった? SHELLDLL_DefViewとかがProgmanの子じゃなくなったけど前からだっけ?
はあ…
ちょっとぉ、ため息とかつかないでくれる?
UACをoffするapi教えてください
そんなAPIはない
お父さんスイッチ(おじいちゃんも可)を使えばおk
適切なスレかわからないけど 他のアプリにSendInputして入力を補助してるプログラムがあって VMWare上で動いてるプログラムにもWMWareが仲介するから動くだろうと思ってたら動かない VMWareが物理キーボードやマウス以外は遮断してるの?
_tcscmp みたいな汎用テキスト関数が覚えられないんだけど何か良い覚え方ありますか?
string使えばいいよ
春だなぁ・・・・・・・・・・・・・・w
>>744 覚えるまで使う。
てか10年以上のプロの俺でさえ今でもリファレンス確認するから、完全に覚える必要はない。
ドトネトに移行すればみんなハッピー
750 :
デフォルトの名無しさん :2011/03/02(水) 12:00:39.02
ウィンドウの横淵のサイズを取得するAPI教えて
751 :
デフォルトの名無しさん :2011/03/02(水) 12:04:58.93
わかったSM_CXFRAMEだ つーか、お前等ってほんと何の役にもたたねーよなww
いま教えようと思ったのにぃ
753 :
デフォルトの名無しさん :2011/03/02(水) 14:13:57.20
早漏だったごめん
VIPみたいな速度でレス求められると泣きます
>>740 MessageBox(hWnd, "このプログラムを実行するためにはUACを無効にして下さい。", "実行環境異常", MB_OK);
756 :
デフォルトの名無しさん :2011/03/02(水) 20:02:29.01
待てなかったんだよ・・・ どうせお前等ニートなんだしこういう時くらい人に役にたてよ そのチャンスを与えてやったのに役にたってねーんだもん ゴミが・・・
ウンコ製造機が何偉そうにしてんだ
762 :
デフォルトの名無しさん :2011/03/03(木) 13:41:22.61
うんこ製造機じゃない人間なんていない!
ウンコ我慢すると、神になれる
なんだこのスレ
>>762 お前はその中でも最高クラスのうんこ製造専用機だもんな!
766 :
デフォルトの名無しさん :2011/03/04(金) 11:42:29.26
お前等のうんこってただ臭くて汚いだけだろ 俺はコーン入りうんことかも製造できっし
うんこを綺麗に拭かないでいると おしりの穴にカビが生えて痒いよ
流れない水は腐る うんこをし続ければいいんです
http://codepad.org/C1ZpWy6M 上は猫win第2版のサンプルプログラムなのですが
以下のエラーが出て実行できません。
d:\マイドキュメント\visual studio 2010\projects\sample01\sample01\sample01.cpp(58): error C2440: '=' : 'LPCSTR' から 'LPCWSTR' に変換できません。
d:\マイドキュメント\visual studio 2010\projects\sample01\sample01\sample01.cpp(85): error C2664: 'CreateWindowExW' : 2 番目の引数を 'char [9]' から 'LPCWSTR' に変換できません。
設定でマルチバイト文字列を使うに変更
>>770 すいません、修正してコンパイル通るようにしたいのですが。
773 :
デフォルトの名無しさん :2011/03/04(金) 19:58:24.69
>>772 いやだから設定
もっと言うとコンパイラに渡すスイッチ
charをTCHARに変更 文字列は_T()で囲む 無駄なキャストは消す こうすりゃ動くだろうが 猫は初心者には難しいと思うぞ
だから猫で勉強しないでチャールズペゾルドのプログラミングWindowsを読めば全部解決と何回言わせる気だ!
TCHAR は コンパイル時引き数と言うかUNICODEマクロをDEFINEすると charでなくwchar_tを扱うプリプロセッサ型
"プリプロセッサ型" 約 29 件 (0.15 秒)
>>778 どうせお前等ニートなんだしこういう時くらい人に役にたてよ
そのチャンスを与えてやったのに役にたってねーんだもん
ゴミが・・・
いや別にそういう型があるわけじゃなく
文字の指定をユニコードからマルチバイト文字に変更するのが一番簡単だと思うんだが…
結局ユニコードにも様々な文字コードがあって 最初からMB文字でいいじゃんって気がしてならない。 特にUTF-8。お前だお前。
>>774 #define _UNICODE_
#define __UNICODE
を
#include <windows.h>
より前に書け
何この的外れ
785 :
デフォルトの名無しさん :2011/03/04(金) 21:38:29.30
windowsプログラミングを勉強するに当たっては 1.文字コード 2.座標系(フォントサイズ、ビューポート、解像度、うんぬんかんぬん…) の二つは Hello, Warhol! を出力した直後に勉強する必要があるくらい Windowsでは基本的でありながら難解な問題。
1.あるボタンを押すと1秒間の待機状態に移行する 2.待機状態の間にキーボード入力があった場合、待機状態を抜けて処理Aを実行する 3.何も起こらずに待機状態が終わった場合、処理Bを実行する という動作を実現したいのですが、どのAPIを利用すればいいかよくわかりません。
SetTimerとか
タイマイベントはどうなのよ^^ あるボタンイベントで待機フラグを立てて大麻イベントをセット WM_TIMERが呼ばれたら待機フラグをへし折って処理Bを実行。 一方、WM_KEYDOWN:が呼ばれたら待機フラグを調べて 待機フラグがオンだったときに待機フラグをへし折った上で処理Aを実行 (待機フラグがオフなら通常処理に分岐) うわーぜんぜんオブジェクト指向じゃなーい。 でも、ペゾルドっぽいでしょ?どう?
>>789 ,790
なるほど、SetTimerを利用すればいけそうですね。
迅速な回答ありがとうございました。
用途が分からないけれど、場合によってはそれではまずいことがあるから注意してね。 例えば、キーボード入力を舞っているところで、イベントがバンバン飛んできたら (例えばマウスを動かし続けるとか)それが終わるまでBには分岐しない。
>>787 おまえが馬鹿で難解だったからって
他人もそうだと思うなよ
しかし文字列関係が面倒なのは本当だ
widecharはオワコン
ドトネトですべて解決
windowsが死滅しても生き残りますか?
WINDOWSは永遠です
GetWindowsRectとSetCursorPosの座標系でよく混乱します
どっちもin screen coordinatesじゃないのん?
>>793 おまえ、ペゾルド先生ですら教科書の中で「難解」と書いているというのに…
>>802 わざわざこんなところで自らの読解力の無さを露呈しなくても…
死ねばいいのに^^ リアルに。
804さんのご冥福をお祈りします
>>805 804さんが天国で幸せになれるといいですね
俺も最近 日清の様子が変だと思ってたがやっぱりバカチョン化してたか とっとと潰れろ糞企業
ぶりぃくの下着でも狙ってんの?
SetKeyboardStateを他のプロセスに対して設定したいんですができます?
SetKeyboardStateはそういった用途の関数ではないので無理です Send/PostMessage,SendInput,Imm...などを使ってください
SendInputで他のプロセスだけに送る事ってできますでしょうか?
通報しました
814 :
デフォルトの名無しさん :2011/03/07(月) 11:54:29.29
Win32でつかるブラウザエンジンって、IEコンポーネントしかないんですか? IEコンポーネントをATLで使う方法は書籍でしったのですが、できれば他のを使いたいんです。
別にgeckoでもwebkitでも好きなの使えばいいよ
816 :
814 :2011/03/07(月) 12:05:29.67
>>815 あ、使えるんですか?どうもありがとう。
色々、ググッてたんですが、中々でてこなくて・・
やってみます。ありがとうございました。
APIとブラウザエンジンに何の関係が
Windowsのサービスプログラムについて質問があります。 通常、起動中のSystem権限(ローカルシステムアカウント)で動作しているサービスプログラムを止めずに ユーザー指定のアカウントに変更することは可能でしょうか? またその逆で、ユーザ指定のアカウントからローカルシステムアカウントへ戻すことも可能でしょうか?
それ出来たらこわくね
820 :
818 :2011/03/09(水) 18:40:45.12
>> 819 アカウント変更は、サービスプログラム自身が行うということです。 たとえば、クライアント(ユーザ側のアプリ)からメッセージを受けて自分自身のアカウントを動的に変更する。 こういうことをしたいと思っています。 無理なのかな?
できない
前もってパスワード与えておけば可能。
suid
824 :
デフォルトの名無しさん :2011/03/09(水) 23:39:00.46
TranslateMessageを書かないと、WM_CHARメッセージはこないのですか?
キーボードのキー(と言うか各ボタンスイッチ)の状態が WM_KEYDOWN で飛んできてて、 それを各キートップに印刷してあるASCII文字に翻訳(Translate)して受けとる際に使うのが WM_CHAR じゃなかったか。 だから、書かないと来ないと言うより、受け取りたいなら翻訳させる、みたいな
826 :
824 :2011/03/10(木) 11:40:14.24
>>825 なるほど。受け取りたいなら、翻訳させるんですね。
このTranslateMessageについては、書籍やらネットでググッて見ても中々しっかり書いてあるところが
みつかりません・・ ですので、苦労していました。
おかげさまで、ようやくなんとかわかりました。どうもありがとうございます。
Win32APIは古いせいか情報がすくないですね(;´д`)
MSDNくらい読めよw てか、絶対ググってないだろwww
「翻訳」じゃなくて「変換」でぐぐった方が沢山出る
>>826 Win32APIなんて昔から広く普及してて、かなり情報が蓄積されてる
部類だと思うんだが
どんな理由で情報少ないなんて思ったのか謎 関数名でググるだけでもMSDN筆頭にいくらでも出てくるのに
情報量は確かに多いが、嘘もこれまた多いからなぁ MSDNの日本語版からしてアレだし
そう言えば日本語版MSDNのアレな所って、みんなどこまで把握してるんだろう、具体的に。 俺が知ってる明らかな嘘は2つあって1つは忘れたが、もう一つはXAudioのスタティックライブラリ名かな。 他は嘘と言うより、記述漏れ。 関数名GetLastErrorが書かれてなくて、関数を使いますとしか書かれてない所 あと見ないと思い出せない
GetLastErrorに限らず、関数名が入る場所は全部脱落してる気がする
箱入りのVC++にはWIN32の分厚い関数辞書がついてくるが、そっちにはちゃんと書いてあった気がする 読み直さないとあれだけど
835 :
デフォルトの名無しさん :2011/03/10(木) 19:56:01.74
なんかゴミが必死になってるなw
VC6のラーニングはAPIの辞書とASCIIの入門本でかなり分厚かったな
被害者は頭部をVC++で数回殴られたそうです
>>832 EnumWindowだかEnumChildWindowだかの
戻り値のfalse/trueの説明が
日本語版だけまるっきり逆だった希ガス
>>833 英語版だと末尾に関連する関数一覧とか出るんだけど
日本語版の方は何も出なかったり全然違うのが出てたり
嘘ってわけじゃないけど IDXGISurface::マップ とか酷い
にほんのしくみ ┌──────┐ ┌──────┐ ┌┤ 日本国民 ├─投票→│どっかの政党 │←┐ │└──────┘ └─┬─┬──┘ │ │ ↑ 機密費 会食 │ 参政権 献金 │.. 世論誘導 ┌─報道管制──┘生活保護 選挙協力 │マインドコントロール.↓ ↓ │ │┌──┴───┐出資投資┌──────┐ │ ││ マスコミ │←[電通] ┤ 在日朝鮮人 ├─┘ │└──────┘ 工作員 └──────┘ │ ↑ └───パチンコ 韓流ブーム ───┘
844 :
デフォルトの名無しさん :2011/03/11(金) 11:11:33.17
外字登録するAPI教えて
地震のときはどのスレで地震の話しても良いんだぜ むしろ、しろって運営の方針 303 名前:FOX ★ 投稿日:04/10/23 19:50:30 ID:??? 地震のときは・・・ あちこちで実況しろって言ってんだろ、昔から、
じゃあ double GetMagnitude() この関数の引数をみんなで考えよう。
double GetMagnitude(long long count_of_death)
848 :
デフォルトの名無しさん :2011/03/12(土) 03:21:46.93
拡散依頼 SOS 閖上小・中学校より 閖上小学校、中学校にはやく救助隊を呼んで頂きたい。食料も防寒具もなく、老人及び幼 児はとても衰弱している。トイレも使えず不衛生。病気が蔓延する可能性あり。心肺停止 の老人もいる。助けてほしい。 宮城県名取市 名取市立閖上小学校
Win32APIでなんとかしろっていわれてもなぁ
自信なくなっちゃうよな
>>848 そのご要望には、インシデントを一つ消費しますがよろしいですか?
誘導されました 自作プログラムにマウスが操作されているかのように思わせる (実際のポインタは移動してなくてもが移動したときの処理をさせたり、クリックされてなくてもクリックされたときの処理をさせたり) にはどうすればいいですか?
イベントを送ればいい win32api直でやるよりJavaのRobotクラスを使うほうが楽だよ
SendInput
ありがとうございます 調べてみます
win32APIのスレなのに何故最初に SendMessageとか あるいは別プロセスのアプリケーションに送りたいって話ならグローバルフックとか そっちの話が真っ先に出ないのか不思議
自作プログラムならクリック時にプログラムのどの部分でどう反応してるかソース見れば分かるはずだが
859 :
デフォルトの名無しさん :2011/03/14(月) 12:38:22.38
通報しますた
ポインタが移動したときの処理(); クリックされたときの処理();
WINAPI勉強してるんだけど関数とか多くて覚えれる気しないんですけど
勉強して覚える物じゃなくて、必要な時に必要などれかを使うだけ
関数を覚えるんじゃなくて どんなコンポーネントがあって そいつらがどんなメッセージを受けて どんなメッセージを吐くか 振る舞いに注目すればいい
いいや覚えろよ オフラインで紙上ビルドできるくらいに
Windows7 のエクスプローラーのように、 透明なヘッダーコントロールを持つリストビューを作るにはどうすればいいですか
自作
Spy++でみてみりゃ分かるが、7のエクスプローラの右ペインは SysListView32じゃなくて、非公開のDirectUIHWndとかいうやつになってる だからそのものズバリは作れないし、エクスプローラのUIを弄るのも 困難になっているものと思われ
思われとか10年ぶりに聞いたわ
懲役にでも行ってたの?
874 :
デフォルトの名無しさん :2011/03/15(火) 20:47:18.43
>>868 漏レはしょっちゅうたまに使うYO
テラワロスw
無理がありますか
Win32APIで作ったアプリは64ビットOSで動きますか? 初心者な質問すいません。
利用できるAPIを利用できる方法で使っている限り、通常は実行できる。
質問いいですか int GetOpenFile( char* _src ) { static TCHAR _strFile[MAX_PATH]; _OpenFile.lStructSize = sizeof (OPENFILENAME); _OpenFile.hwndOwner = hWnd; _OpenFile.lpstrFilter = TEXT("Video files {*.avi, .wmv, .mp4, .mkv, .mpeg, .mpg }\0*.avi;*.wmv;*.mp4;*.mkv;*.mpeg;*.mpg*\0") TEXT("Audio Files {*.wav, .mp3, .mp4}\0*.wav;*.mp3;*.mp4\0\0"); _OpenFile.nMaxCustFilter = 256; _OpenFile.lpstrFile = _strFile; _OpenFile.nMaxFile = MAX_PATH; _OpenFile.Flags = ( OFN_FILEMUSTEXIST | OFN_EXPLORER | OFN_NONETWORKBUTTON ) ; if( GetOpenFileName( &_OpenFile ) == 0 ) return false; else{ strcpy( _src, _strFile ); return true; } } という感じでファイルを開くダイアログを作ったのですが マイコンピュータでドライバが表示されません。 また更新(F5)をするとファイルが総て表示されなくなります。 これを直すにはどうしたらよいのでしょうか?
>>879 俺のWin7ではそのまま実行させると一般保護例外で落ちるんだが
ZeroMemory(&_strFile, sizeof(_strFile));
ZeroMemory(&_OpenFile, sizeof(_OpenFile));
これでどう?
>>879 パッと見で分かるのは
引数のchar* _srcと最後のstrcpy()が駄目ということ
そのようにTCHARとcharを混ぜて使っているサンプルをどこかで見たのなら
窓から投げ捨てたほうがいい
>>880 やってみたのですが、やはり同じようにおきました。
>>881 あぁ申し訳ないです。
寝オチ寸前に書いていて、後々見たときに修正していました。
OFN_EXPLORER 0x00080000 中略 By default, the Open and Save As dialog boxes use the Explorer-style user interface regardless of whether this flag is set. This flag is necessary only if you provide a hook procedure or custom template, or set the OFN_ALLOWMULTISELECT flag. アンダースコアで始まる識別子はry
Win128APIはまだ出ませんか
1日目 ・・・ . __ __ __ __ __ __ |-....-|. .|-....-| | l::::l |. .| l l│ | l l│. .| l l│ ┷┷┷ ┷┷┷ ┷┷┷ ┷┷┷ ┷┷┷ ┷┷┷ 6号機 5号機 1号機 2号機 3号機 4号機 2日目 パチッ /| ・・・ . __ __. |/.__ 煤Q_ __ 煤Q_ | l l│ | l l│ ハーイ>ヽ| l l│ |l l ..;.|. .| l;;;;l |.. ..|l l.;|. ┷┷┷ ┷┷┷ .┷┷┷ ┷┷┷ ┷┷┷ ┷┷┷ 6号機 5号機 1号機 2号機 3号機 4号機 3日目 \ ハーイ / /| ・・・ ☆ ガッ . __ __ |/ __ __ __ ヽ./|___ |.;..l l|. .|;.l l| .ヽ| l l│ | l::::l | |l l |/|/ x x;| ┷┷┷ ┷┷┷ .┷┷┷ ┷┷┷ ┷┷┷ ┷┷┷ 6号機 5号機 1号機 2号機 3号機 4号機 4日目 \ ハーイ / \ ファイ / ・・・ ・・・ /| ./| /| 人 ノ~~~\ ・・・。 . __ __. |/ __ |/ __ |/ __ __(()) 〜〜放射能 ,,,,,,/ l::::l \,,,,,,,,,, | l::::l |. .| l::::l | ヽ| l l│ヽ| l l│ヽ| l l│. .| l l│ ┷┷┷ ┷┷┷ .┷┷┷..┷┷┷..┷┷┷ ┷┷┷ 6号機 5号機 1号機 2号機 3号機 4号機
886 :
デフォルトの名無しさん :2011/03/16(水) 16:47:33.91
APICがカウントする アンダーフローしたら割り込みを発する 割り込み受け取ったCPUがおっきさせる 実に簡単なことだが、それをWindowsでやろうとするとカーネル側のドライバが要る。 ほいで、俺ナノセカンドオーダーのカウント取りたいのよ。 ・ドライバなしで (ゲームでドライバ必須とは何事だ!って却下されるから) ・ナノセカンドウェイト取得 なんとかなんね?? このままではLinux以外に持ってけない。
ナノセカンドは諦めろ
888 :
デフォルトの名無しさん :2011/03/16(水) 17:07:04.32
メジでっ!?
ナノセカンドが必要な設計が間違ってる WindowsはリアルタイムOSではない
なんでゲームでusecウェイトが必要なのかさっぱりわからんけど 必要なんだったらドライバ書けばいいじゃねえか 却下されるって、他に方法がないなら説得できない方が無能だろ
補足してやんよ QueryPerformanceCounterで1秒間を数えて 1秒間にRDTSCがどんだけ進むかを数えることでナノオーダーが算出できる。 報酬は妹か20代までのお姉さんがいたら紹介しろ
そんな自身満々で非推奨のカウンタ持ち出されても...
最近はマルチコアがデフォだから
SetThreadAffinityMaskも忘れんなよ。
お前ら3年はROMしてろよ情弱w
>>887 >>889 >>890
>>893 ププだっせぇw
必死こいてたった今ぐぐったろお前?「RDTSC」ってググったろ?wwww超ウケるww
俺なんかしがない地方の市役所なのに そんな俺よりスキルないとかもう福島で原発特攻隊に志願してこいよ。ゴミ。 ま、世の中お前ら程度で十分なんだよなぁ・・・w
ニートに朗報キタ━━━━(゚∀゚)━━━━!!
http://job.j-sen.jp/hellowork/job_3373229/ 募集職種 作業員(福島第1・第2原発)
整理番号 07120-00584811
仕事内容 *原子力発電所内の定期検査・機械・電気・鍛冶溶接及び足場作業
雇用形態 正社員以外
勤務地(住所) 福島県双葉郡楢葉町 福島県双葉郡大熊町
最寄駅 未登録 勤務時間 1)08:00〜17:00
給与 日給 9,000円〜11,000円
a 基本給(月額平均)又は時間額189,000円〜231,000円
b 定額的に支払われる手当 a + b 189,000円〜231,000円
c その他の手当等付記事項 皆勤手当 8,000円 休日・休暇 休日: 土 日 祝
週休:毎週 年間休日:113日
募集年齢 不問 応募資格 不問 特徴 学歴不問 年齢不問
通勤手当あり 各種保険あり マイカー通勤可能
スキル・経験 不問 育児休暇取得実績 無 通勤手当 支給なし
雇用期間 雇用期間の定めあり(4ヶ月以上) 又は12ヶ月 契約更新の可能性の有無 あり 求人条件にかかる特記事項 ・増員募集・正社員登用への可能性あり
賃金〆切末日、支払い翌月末となります。報
会社名称 株式会社高山総業 本社所在地 〒975-0056 福島県南相馬市原町区鶴谷字南谷地152
従業員数 当事業所10人 (うち女性1人)
企業全体10人 事業内容 発電所関係の建設及び設備メンテナンス業務並びに一般建築業務、土木工事業務と農業代行請負等
これは、いまどきにしては好条件じゃないかwww
んで、前に他スレで暴れてたのと同一だろうけど
>>886 はカウンタ取得できるだけでよかったんだっけ?
899 :
デフォルトの名無しさん :2011/03/16(水) 19:31:56.39
TSC読みはダメだろ どのコアのTSC読むかが把握できねえ。
雑魚のクセに回答者気取り
「よかったんだっけ?(キリッ」
>>899 情弱はこれだからwwww
>>894 を1048576回写経するまでROMしてろ。命令だ。
読むコアはaffinityを指定すればいい が、最近のCPUは動的にクロックを変更するから結局役に立たない
アフィニティマスクなんか設定したらスレッディングがマトモにできなくなるだけだろ
「TSCはクロック連動」のほうが遥かに多いと思うがな。 i7とかPhenomだけだろ?クロック非同期でTSCカウントアップするのは。
雑魚どもがグーグル結果を引っさげて回答者気取りモードになってきたな 俺の回答にすべてツマってんだよゴミどもが・・・・・・・
>>903 Pen4のConstant TSCはあの子なんのために生まれてきたの状態
QPC != rdtsc って事もぐーぐる先生が言ってたょ!
ていうかRDTSCは使わないだろ ナノセカンドで管理したいのに、呼び出しに300msもかかるもん使うか?
>>909 周りをみるかぎりμシーベルト/hourでしょ。
私なら一時避難できるのなら検討するな。仕事とかでまあ無理だろうが。政府のいうことはいまいち。
2.5時間ごとに胸部x線検査1回。1日10回。1年3650回。
それ定期健診の間接撮影の場合。小さいフィルム使うやつ。 それも嫌なので直接撮影に変えてもらってた。病院で普通の診察でやるやつ。これとは違う。
胃透視だったら、1回4mSv だから、えーと、8日に1回か。いやだな。
マイクロなら問題ないっしょ。 これがミリに単位になるとやばいはず。 フォロよろ
>>915 この線量が2日続いたら福島はミリ単位だな……。
すいません。 Win32APIを使うメリットってなんでしょうか? GUIアプリを作るならC#が簡単と聞いたのですが
C#でも結局pinvokeでWin32API使うんだから比較できないよ
x線検査と比べてなんて説明はおかしいよな。/hourが抜けてる。単位が違うものを比較すんな。
>>920 いや、計算はあってる。/hour はいらない。放射能はあびただけ副作用が蓄積されると考える。
21.7μSv/hour を 1ヶ月(で収束すればいいが‥)あび続けたとしたら 15mSv 分のダメージが体に残る。
>>921 そこはやっぱ足し算になるのか?
なるんだろうなぁ。
ダメージだから積分で遭ってる
・・・・・ん? スレ間違ったかな
地方奴隷のRDTSCさんが無視されてかわいそうです
>>926 なんでシュピーゲルさんとかはこういうのあるのに
日本のマスゴミさんは出してこないの
hint 理系離れ
>>926 うわー関東にきてんじゃん。
頑張れ偏西風
x線検査は残らないがセシウムは半減期30年だからな
あるスレッドでCoTaskMemAlloc()なりIMalloc::Alloc()で確保したメモリを 他のスレッドで解放することはできるのでしょうか。 まあ最悪でも、元のスレッドで解放するように工夫すればよいのですが……
別スレッド別にかまわんと思うが
933 :
931 :2011/03/17(木) 20:21:58.01
>>932 ありがとうございます。普通に考えたらそうですよね。
COMで使用するとはいえメモリ領域自体は単なるメモリ領域ですから、
確実に使い終わってさえいれば、別スレッドで解放できない理由も思い当たりません。
どっからでも見えるからメモリとして確保できてるわけでして。
だが理想論としては、「どこからでも確保・解放される」ってのはよくはない。 うっかりするとダブルfree(delete)しかねない。
二重解放してもいいじゃない にんげんだもの
NULL Pはdeleteしても無害なのはみんな知ってる。
解放してもポインタがNULLになるとは限らないって話だろ
じゃあ解放したときにNULLにするようにすればいいだけの話
NULL の delete は落ちる環境があるので、結局事前チェックはかかせないだろ。
どういうクソ環境だ、それ。
デバッグbuildだと例外吐いて落ちるが リリースbuildだとそのまま動き続けるんだっけ
んな馬鹿な
どちらにせよそんなコードは糞
ポインタにNULLを入れて何回でもdeleteしてやる
どう考えても deleteの実装者は if(!p)return; ってやると思うんですけどぉ。
NULLへのdeleteは安全が保障されてるだろ
んな馬鹿な
deleteもfreeも保証されてるだろバカ されてないのはHeapFreeだけだ
米軍のブリーフィングの様子をTV中継でやっていたけど、すごかった。 司令官「これから我々の行くところは、決してグランド・キャニオンのハイキング・コースではない! ましてや、サンタ・モニカビーチへサーフィンをしに行くわけでもない!」 兵士「イエッサー!」 司令官「これから行くところは、放射能渦巻くフクシマビーチだ! 現在、我々が1年間で浴びる量の放射線を3時間で浴びることになる!怖いか! ジョージ!」 ジョージ二等兵「ノー! 大変お得でありマース!」 司令官「そして、その向こうに鎮座ましましているのはメルトダウン寸前の原子炉だ!怖いか! マイク!」 マイク二等兵「ノー! 自分はキャンプファイヤーで焦がしたマシュマロの方が怖いデース!」 司令官「メルトダウンしたら、あの『チャイナ・シンドローム』が目の前で起きることになる!怖いか! フィリップ!」 フィリップ「ノー! 自分は、チャイナ・タウンのチョップ・スティックの方が怖いでありマース!」 司令官「メルトダウンが起きたら、我らが同盟国ジャパンは滅亡の危機に陥る!そうなってもいいのか! ビリー!」 ビリー「ノー! マギカの続きが見れなくなるのは正義がゆるしまセーン!」 司令官「OH・・・、マギカか・・・。俺の頃はスピード・レーサーだったがな・・・ よし、この作戦が終わったらみんなでマギカの鑑賞会だ!」 ビリー「イエッサー! その時は、わたくしめがアキバを案内しマース!」
a = b; ... delete b; b = NULL; // これでもう安心 ... delete a; // あれ?
単なるバグというかヘボというか意味不明というか 知るかぼけぇというか
今時のC++で自分でdeleteする必要が生じたらなにか間違っていると思え。
freeなら、ラップしてNULLを入れるAPI化しておいてもいいが、 それやると怒られることもある いまだに理由が分からないが。
デバッグ時には、自力で new をオーバーロードするなり malloc() をラップするなりして、ゲットしたポインタをリストに溜め込んで、free() / delete 時にはいちいちなめてチェックするのが、あるいみ手っ取りばやいかも。
template<typename T> class Hoge { T *p; public: Hoge(size_t size) { p = new T[size]; } ~Hoge() { if(p) { delete [] p; p = NULL; } } T& operator[](size_t index) { return p[index]; } }; 例えばこんな感じのスマポクラス作っておくとかは、場合によってはたまにする。 一応書いておくと、この例だとコピーの時アレだけど。 あるいは boost::shared_ptr
東日本大震災(東北関東大震災)への、日本ユニセフ協会ならびにユニセフの対応について
「ユニセフによる日本への支援は、第2次世界大戦直後の昭和24年に始まり、昭和39年に終了いたしました。
その後、日本国内では、これまでも大規模な自然災害が各地で発生しましたが、ユニセフの支援がそうした
場面で提供されることはございませんでした」
「当緊急支援に必要な資金を上回るご協力をいただいた場合(被災者の皆さまへの支援が行き届き、ユニセフと
日本ユニセフ協会が提供できる内容の支援が被災地では必要ないと判断される場合)、ユニセフが実施する他国・
地域での紛争・自然災害などによる緊急・復興支援に活用させていただくことがありますので、ご了承願います。」
http://www.unicef.or.jp/osirase/back2011/1103_12.htm
ちょっとスレチかもしれんがSusieプラグインみたいなの作ろうと思ってるんだけど、 呼出し側からはデータサイズの不明な事もあるdll側からのデータの受け渡しはどうするのがいい? サイズが呼出し側で必ずわかるのならあらかじめメモリ確保してポインタ渡してデータもらえば済む話なんだけど SusieだとHLOCAL渡してプラグイン側でLocalAlloc確保、呼出し側でLocalFree開放ってやってるけどあんまよろしくないよね?
逆になんでよろしくないと思ったの?
確保する側と解放する側が違うというのは美しくないという見方があるな LocalAllocならともかく、malloc/newでやったらとんでもない地雷を踏むし
今回の震災への募金に関してはユニセフにはするなという事だ
>959 NULLを渡すと必要領域サイズが返され、そのサイズを確保してもう一度呼び出すと、ってのが よくある方法だね
>>957 コンストラクタでnewに失敗ときは?
面倒だからabortさせちゃう?
財団法人日本ユニセフ協会 「ユニセフ」という名称を含むが、国際連合児童基金 (ユニセフ) の日本事務所ではない。 日本ユニセフ協会はユニセフ本部と協力協定を結んでいる団体であり、 日本において民間人・民間団体・企業向けにユニセフを代表する唯一の組織である。 日本における民間協力の窓口として運営されている非政府組織であって、国連機関ではない。
>>961 どんな問題があるのですか?初耳です。kwsk
mallocやnewの実装はコンパイラ固有であってアプリの本体とプラグインは 同じコンパイラやオプションでコンパイルされてるとは限らない
うむ。
>>959 データサイズをポインタ渡しにしておき、不十分なサイズが渡されたら、
メモリ不足を表すエラーコードとともに必要なデータサイズを返す。
Windows で言うと GetUrlCacheEntryInfo() とか。
>>963 ,969
プラグイン側から呼出し側のメモリ確保関数を呼ぶってのも考えたが、やっぱ実装例的にそんな感じかなー
>>970 それだと呼び出し側のメモリ確保方法が限定されちゃうから嫌。
どうしてもスタックに確保したいとか、VirtualAllocじゃなきゃダメとかいう
ケースもあるのではなかろうか。
プラグインの用途にもよるけど。
>どうしてもスタックに確保したいとか、VirtualAllocじゃなきゃダメとかいう >ケースもあるのではなかろうか。 どんな?
COMでラッピングでおk
ガソリンタンクが無いならむき出しでいいじゃない
民主議員、プールにガソリン貯めろと提言
民主党・渡辺周議員
サービスステーション崩壊でガソリン運んでも貯蔵するところがない。
国対委員長の安住くん、彼も言ったんですが「学校のプールにガソリンを貯蔵できないか」と
しかし消防法上、絶対に危険だから駄目だと。
いろんな可能性を考えるんですけどね、やっぱり物理的に想像以上の被災をしていて出来ないことがある
▽YouTube ※一部抜粋、全てはソース先でご確認ください
http://www.youtube.com/watch?v=XTVwvNHdKdA
ダメ!絶対! 爆発する
小学生でもわかるだろ
みんす「ガソリンをプールに貯める→周辺住民を巻き込み大爆発→結果的にガソリンがいらなくなる→解決」
この時期ならセーター着てる奴が近づいただけで大爆発だな
スレ違いの政治ネタに釣られるなよカスども
地震ネタはどのスレでしてもいいっていう運営の方針なんですよおばかさん^^
983 :
デフォルトの名無しさん :2011/03/22(火) 13:48:18.62
システムイメージリストのハンドル アイコンのインデックス オーバーレイインデックス この3つが入手ずみの状況で 適切なアイコンオーバーレイが適用されたアイコンのハンドルを取得する方法教えてくだちい
>981 引っ越すのは使い切ってからだがな。
このスレかっこいいね
「放射能 大丈夫?」っていうと 「大丈夫」っていう 「放射能 漏れてない?」っていうと 「漏れてない」っていう 「原子力って安全?」っていうと 「安全」っていう そうしてあとで不安になって 「本当はやばいんでしょ?」ってきくと 「やばい」っていう
原発とW32はどちらが先に死滅するでしょうか?
スレ違いの奴らが死滅した後だな
荒らすのはやめて…
991 :
デフォルトの名無しさん :2011/03/23(水) 03:27:29.02
素粒子を解析するAPIを教えてくれ
992 :
デフォルトの名無しさん :2011/03/23(水) 03:28:49.67
Windows内でフーリエ変換が多用されている事は有名な話だが…
993 :
デフォルトの名無しさん :2011/03/23(水) 03:30:14.67
MessageBox MessageBoxA MessageBoxW どれがいちばんつおいのですか?
994 :
デフォルトの名無しさん :2011/03/23(水) 03:33:12.00
一番引数の多い関数って何ですか? CreateFont(14個)?
Ntなんとか系のAPIは多いの結構あるだろ
997 :
デフォルトの名無しさん :2011/03/23(水) 05:35:27.39
引数の構造体がえぐいのもあるな
.
.
∧,,,∧ ( ・∀・) 1000ならジュースでも飲むか ( ) し─J
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。