18/07/22 17:29:03.13 +kDBWEhy.net
あー、面倒なので正確には調べないが、文字コードセットかソースファイルのコードを調べて
全部マルチバイト文字にでも統一すれ
525:デフォルトの名無しさん
18/07/22 17:30:27.51 V5NblbDe.net
コンパイラのオプションでユニコードを使うを無効化しろ
もしくはTCHARとかTextOutWとかTextOutAとかその辺でぐぐれ
526:デフォルトの名無しさん
18/07/22 17:33:51.95 0LoJ4eZK.net
>>515
TextOutの際に、いちいち
TextOut(hdc, 10, 10, TEXT("hello"), 5);
と文字列と字数を毎回入力したくないし、
表示文字を"good morning"とか "good bye" とか違う字数の文字列にも置き換えたいんだ。
だから、変数を使って文字列をpとかqとかに置き換えたいんだけど、そこで
型 char * の引数は型 LPCWSFR のパラーメータと互換性がありません 」
とかのエラーが出てしまう。
527:デフォルトの名無しさん
18/07/22 17:36:00.67 V5NblbDe.net
charは1バイト文字の型
LPCWSTRは2バイト文字の型
ものが違うんだよ
ってかwin32の本ならそのくらい書いてあるだろ。もし書いてないならゴミだから捨てろw
528:デフォルトの名無しさん
18/07/22 17:38:56.62 2bRdLxLs.net
TCHAR p[] = TEXT("hello");
TextOut(hdc, 10, 10, p ,lstrlen(p));
529:デフォルトの名無しさん
18/07/22 17:45:11.99 2bRdLxLs.net
>>518
後から文字列を変更するのであれば、初期化の時に配列の要素数に注意
#define MAX_LENGTH 256; // 要素数に注意
TCHAR p[MAX_LENGTH] = TEXT("hello");
530:デフォルトの名無しさん
18/07/22 17:55:50.38 SZ8yn981.net
>>516-517
今から覚える人に非推奨のMBCS版を勧めるのはどうかと。
VSでも2015辺りからMBCS版のバグを治さず放置してたりするのだし。
531:デフォルトの名無しさん
18/07/22 18:02:40.99 0LoJ4eZK.net
「TCHAR p[MAX_LENGTH] = TEXT("hello");」
で「式が必要です」ってエラーが出てしまうし。
「TCHAR p[256] = TEXT("hello");」って直接に数値指定するとエラーメッセージが消えるから、
なんかdefineが働いてないっぽい
532:デフォルトの名無しさん
18/07/22 18:09:58.01 lnBo9wWY.net
>>521
「256」の後の「;」は不要
533:デフォルトの名無しさん
18/07/22 18:17:18.42 2bRdLxLs.net
>>523
すまんね
流石に気付くだろうと思って黙ってたけど、define文の末尾にうっかり余計なセミコロン付けてしまっているので注意してね
とりあえずいまどきの環境なら、charはTCHAR、char *はLPTSTR、const char *はLPCTSTRを使い、リテラルはTEXTマクロで囲って
文字列操作関数はl付きの関数strlenならlstrlen、strcpyならlstrcmpなどに置き換えればほとんど問題はないよ
534:デフォルトの名無しさん
18/07/22 18:18:05.39 2bRdLxLs.net
被った、
指摘ありがとう>>524
535:デフォルトの名無しさん
18/07/22 18:19:49.25 0LoJ4eZK.net
いろいろと教えてもらい、スレの皆様、ありがとうございます。
自分、最終的にゲームっぽいのを作りたくって、
それで会話メッセージが何百個もあるから、どうしても文字列を変数にする必要があるんです。
エラーコード↓です。
「
TCHAR p[256] = TEXT("hello");
TextOut(hdc, 10, 10, p, lstrlen(p));
p = TEXT("good morning");
TextOut(hdc, 30, 30, p, lstrlen(p));
」
こんな感じで、1つのpを使いまわしたいんです。
strcpyかとも思ったんですけど、「strcpy(p, TEXT("good morning") );」でも
「char*のパラメーターと互換性がありません」ってエラーが出て、なんか違いそうだし・・・
ググッても、Win32APIで1つの文字列変数を複数の文字列に何度も書き換える事例が見つからなくて、困ってます。
536:デフォルトの名無しさん
18/07/22 18:20:26.15 2bRdLxLs.net
>>525でstrcpyとstrcmpがごっちゃになってた、訂正
537:デフォルトの名無しさん
18/07/22 18:20:35.42 V5NblbDe.net
>>522
でもなこのレベルだとstrcpyすらできずに詰むぞw
538:デフォルトの名無しさん
18/07/22 18:24:33.44 2bRdLxLs.net
>>527
多分 lstrcpy でいける
539:
18/07/22 18:26:03.58 +jM3tBOE.net
>>527
私なら(char *) にキャストしてしまいますね…これは悪手ですが
540:デフォルトの名無しさん
18/07/22 18:26:33.56 0LoJ4eZK.net
解決しました!こうですね
「
TCHAR p[MAX_LENGTH] = TEXT("hello");
TextOut(hdc, 10, 10, p, lstrlen(p));
lstrcpy(p, TEXT("good morning") );
TextOut(hdc, 30, 30, p, lstrlen(p));
」
じぶん "lstrcpy" の存在を知りませんでした。
買ってたCQ出版社の本が2001年の本で古くって、
それで、ここら辺の話題が見当たらなくって、地元書店にWin32APIの本が無くって、
困ってました。月曜日に、銀行からカネを引き出して、都会の本屋に買い物に行こうかと思ってたところです。
質問に回答してくださった皆様、ありがとうございます。
541:デフォルトの名無しさん
18/07/22 18:26:39.79 lnBo9wWY.net
>>527
中身を直接書き換えないならLPCTSTRで十分
LPCTSTR p = TEXT("hello");
p = TEXT("good morning");
542:デフォルトの名無しさん
18/07/22 18:36:11.82 2bRdLxLs.net
>>533
LPTSTRなら可能だけどLPCTSTRだと無理じゃないかな
543:デフォルトの名無しさん
18/07/22 18:57:59.75 Xbb1Ck+x.net
なぜ?
544:デフォルトの名無しさん
18/07/22 19:17:54.18 LiIRy0eu.net
>>513
TextOutA使え
お前にTextOut/TextOutWはまだ早い
545:デフォルトの名無しさん
18/07/22 19:47:40.34 lnBo9wWY.net
>>534
無理と決め付ける前に、まずは試してみるべきじゃないかな。
546:デフォルトの名無しさん
18/07/22 19:49:56.11 Rc8bc+T5.net
>>507
やっぱり自前ですか。
ベースにコモンコントロールのタブコントロール使ってるかと思ったら
どのブラウザも完全にオリジナルのタブコントロールを作ってる
みたいなんですよね。
これだけで一仕事だ、せめて手を抜く方法が無いものか。
547:デフォルトの名無しさん
18/07/22 20:07:22.02 V5NblbDe.net
コモンコントロールでつくりゃいい
何も真似することないでしょ
548:デフォルトの名無しさん
18/07/25 12:14:32.39 ObNghvXR.net
>>508
レスをつけてたここの住人はある意味、意地悪だなw
508よ、VS2017とか使ってるなら、プロジェクトのプロパティから、
構成プロパティ -> C/C++ -> 言語 の画面に、準拠モードという項目があるので、準拠モードをオフにしてみろ。
コンパイラが悪さしているだけだw
たとえば、準拠モードONだとこのコードは、こんなエラーになる。オフなら無事コンパイルできる。
#include <stdio.h>
int main(){
char *p = "hoge\n";
printf(p);
return 0;
}
1>------ ビルド開始: プロジェクト: test0001, 構成: Debug Win32 ------
1>test0001.cpp
1>d:\test0001\test0001\test0001.cpp(3): error C2440: '初期化中': 'const char [6]' から 'char *' に変換できません。
1>d:\test0001\test0001\test0001.cpp(3): note: 文字列リテラルからの変換では const 修飾子が失われます (/Zc:strictStrings を参照)
1>プロジェクト "test0001.vcxproj" のビルドが終了しました -- 失敗。
========== ビルド: 0 正常終了、1 失敗、0 更新不要、0 スキップ ==========
549:デフォルトの名無しさん
18/07/25 12:16:39.87 SfO6vmHU.net
>コンパイラが悪さ
最低だなこいつ
550:540
18/07/25 12:19:48.04 ObNghvXR.net
マルチバイト文字の設定しろって書き忘れた。
構成プロパティ -> 全般 -> 文字セット
マルチバイト文字セットを使用する
の項目をセットしておけ。
古い本ベースで作るならそっちで十分だ。
慣れて来たらunicode文字セットにしてwchar_tとか使えばいいよ。
551:デフォルトの名無しさん
18/07/25 12:21:31.72 ObNghvXR.net
>>541
本読んでる初心者相手に、難しいこと言って混乱させるよりはいいだろう。
まずは動くようにするのが先じゃね?w
552:デフォルトの名無しさん
18/07/25 12:42:55.89 BhmZZaV3.net
コンパイラとか言う野郎最悪だな
そんなもんに頼むなよ
553:デフォルトの名無しさん
18/07/25 13:07:44.22 yh3zla7+.net
だな
ハンドアセンブルとかハンドコンパイルしろ
554:デフォルトの名無しさん
18/07/25 13:11:46.60 ufwVuEFI.net
URLリンク(www.suruga-ya.jp)
555:デフォルトの名無しさん
18/07/25 13:15:34.98 bHme1j3N.net
>>542
意地悪も何も、そのレスをとっくにしとるんだが
556:
18/07/25 19:02:54.19 2d5RfbzO.net
cygwin/mingw-gcc で文句がでなければ、ほぼ問題ない、としています
557:デフォルトの名無しさん
18/08/06 21:23:32.62 CcPxoO2Y.net
成功した時に返り値が0になることがあるのに、失敗したら0を返しますとか言ってるAPIって何なんだよクソ野郎め
558:デフォルトの名無しさん
18/08/06 21:32:35.68 1U9qnNco.net
getlasterror
559:デフォルトの名無しさん
18/08/06 21:52:26.61 ID4O2Vgr.net
もちろんそんなの知ってるけど、GoがWindows API用に生成してくれるコードが返り値をチェックしちゃっててしばらくハマった
560:デフォルトの名無しさん
18/08/06 23:33:15.82 rktgM2el.net
>成功した時に返り値が0になることがあるのに、失敗したら0を返しますとか言ってるAPI
ちなみにどのAPI?
561:デフォルトの名無しさん
18/08/06 23:58:21.60 ID4O2Vgr.net
GetClassLongPtrとか
562:デフォルトの名無しさん
18/08/07 00:48:58.54 QZJ4WUVF.net
Goがクソなだけじゃん
リファレンス読んでコード生成しろよバーカ
563:デフォルトの名無しさん
18/08/07 05:00:55.97 OlmXtX1U.net
>>549-550
「失敗が返って来たときは関数を呼びます」
だっけ
564:デフォルトの名無しさん
18/08/07 13:27:12.44 ldpX++7o.net
>>549
「失敗したら0を返します」の対偶は「非ゼロが返ったら成功している」だ。
「成功したら非ゼロを返す」ではない
これが分からない人には if文は書けない
565:デフォルトの名無しさん
18/08/07 14:31:10.43 AJOeK/rw.net
>関数が失敗すると、0 が返ります。拡張エラー情報を取得するには、 関数を使います。
これな
566:デフォルトの名無しさん
18/08/07 21:06:57.68 BoePinTI.net
>>557
>>拡張エラー情報を取得するには、 関数を使います。
これがわからない人には、プログラムは書けない
567:デフォルトの名無しさん
18/08/07 21:15:30.99 vzugDPjm.net
>>554-555
>リファレンス読んでコード生成しろよバーカ
>失敗が返って来たときは関数を呼びます
しばしば、動詞の主語がないせいで誰が対象なのか、わからないことが多い。
バカなのは誰なのか。
関数を呼ぶのは誰なのか、関数が関数を勝手に呼んでくれるのか。
的な。
568:デフォルトの名無しさん
18/08/07 21:19:02.18 +HmVRhEr.net
馬鹿なのは読み手に決まってるだろww
569:デフォルトの名無しさん
18/08/07 23:23:50.41 ca/GX3OS.net
まさかと思うけど英語読めないとか?
戻り値
関数が成功すると、要求した値が返ります。
関数が失敗すると、0 が返ります。拡張エラー情報を取得するには、 関数を使います。
URLリンク(msdn.microsoft.com)
Return value
Type: ULONG_PTR
If the function succeeds, the return value is the requested value.
If the function fails, the return value is zero. To get extended error information, call GetLastError.
URLリンク(msdn.microsoft.com)(v=vs.85).aspx
570:デフォルトの名無しさん
18/08/07 23:39:40.91 95G7jtf/.net
訳が全然ちげぇ、ってネタだろ。
571:デフォルトの名無しさん
18/08/07 23:44:38.95 JmB8aria.net
う~ん
実に使いにくい
572:さまよえる蟻人間
18/08/07 23:55:05.37 p+v0mQmH.net
ダークサイドの貧乏マは、インターネットのどこかにWin*2 Pr*gramm*rs' Refer*nceというヘルプファイルがあるから、別に。。。まあ、できる奴はサプスクリプションをイッチャッテ。
573:デフォルトの名無しさん
18/08/08 04:44:16.55 XhOfYtOw.net
>>561
このひどい訳文はテンプレのようになってて
このGetClassLongPtr()の例だけじゃなく
Win32APIのいたるところで見るんだが
ほんとうにやめてほしい
574:デフォルトの名無しさん
18/08/08 05:30:57.38 pP5XdYnX.net
>>562, >>565
訳が酷いと言うよりなぜかわからんが関数名(GetLastError)が無くなってるって話だろ
575:デフォルトの名無しさん
18/08/08 07:00:27.96 EhLv0UZk.net
もう慣れたわ
576:デフォルトの名無しさん
18/08/08 08:05:04.95 ApshsMT9.net
GetClassLongPtrのように値だけ返すやつは、失敗時ややこしいってのはAPIに限ったことじゃなく関数作ったことあればだれでも知ってること
MSDNの日本語ページはの罠は無数にあるから少しでもWindowsプログラミングしたことあれば英語ペ�
577:[ジ見ることになる どっちも超初心者じゃないとひっかからない罠 昨日のニュース 日本国内でのプログラミング言語別の年収ランキング、中央値1位は「Go」 http://www.itmedia.co.jp/news/articles/1808/07/news087.html
578:デフォルトの名無しさん
18/08/08 16:43:15.25 QemCzjVB.net
>>566
それを訳がひどいって言うんだよ
579:デフォルトの名無しさん
18/08/08 16:56:08.84 T8cc5IXv.net
みんな間抜けなんでマジレスするけど、SetLastError(0)でクリアしてから呼ばないと、成功したのか失敗したのかわからん仕様です。
580:デフォルトの名無しさん
18/08/08 17:43:49.45 jbuaovom.net
>>569
周回遅れ乙
>>570
みんなそんなことは分かってるだろ
普通に考えたら失敗/成功をBOOLで返して取得した値はポインタ経由で返せばいいのに
って思ってる人は多いと思う
581:デフォルトの名無しさん
18/08/08 19:26:41.46 9aI0uHWQ.net
ぬるぽ
582:デフォルトの名無しさん
18/08/11 00:27:06.52 MXmSxQHh.net
>>566
これを見るたびに何でどうしたらこんなことになるのかと考え込んで作業が中断してしまうのだ
583:デフォルトの名無しさん
18/08/11 07:49:06.09 J6jQGTXX.net
開発が遅れるわけだw
584:デフォルトの名無しさん
18/08/11 13:45:31.92 VJAxUjoq.net
悟ってお仕事
585:デフォルトの名無しさん
18/08/23 22:27:48.51 hCHxCnaA.net
スナップできるのはどういうウィンドウかあるいはどういう条件なのか、具体的な要件の一覧ってどこかで見られますか。
自作デスクトップアプリケーションのウィンドウがスナップ機能の対象になってないことに気づいて、少しプログラムをいじってみたところ
すぐにウィンドウスタイルによってスナップ機能が働かないことがあるのはわかりました。
具体的にはWS_MAXIMIZEBOXが無いとスナップできません。
で、他のスタイルやスタイル以外の条件もあるかもしれないと思い、
まずはウィンドウスタイルとスナップの関係性から調べてみましたがスナップ機能の条件についての情報は見つけられませんでした。
よろしくお願いします。
586:デフォルトの名無しさん
18/08/23 23:19:58.10 yNz2G80b.net
スナップなんてOSの設定で最初に切る項目だぞ
気にするな
587:デフォルトの名無しさん
18/08/24 12:24:54.13 ZVlysGry.net
ダイアログにすればいい
588:デフォルトの名無しさん
18/08/24 12:28:22.65 NFTQhSIK.net
ついでに質問だけど
win10あたりからウィンドウの枠のちょっと外まで(影なしにしてても)
ウィンドウのリサイズとかマウスアイコン⇔の判定に使われてるみたいで
ウィンドウの下のウィンドウを上にもって来たくてクリックしたつもりが
違うウィンドウが上に来てしまうことが多くて困ってる
これなんとかする設定どこにある?
589:デフォルトの名無しさん
18/08/24 12:54:56.78 9pgk/rrF.net
このスレ的な解決だとFrameRectをフックして少し大きめの枠に変えちゃえばいいのかな
590:デフォルトの名無しさん
18/08/24 13:35:47.85 C22mUEBr.net
> 具体的にはWS_MAXIMIZEBOXが無いとスナップできません。
win7 WS_MAXIMIZEBOXなしのタイトルバーをマウスでつまんで
desktopの上辺に移動してマウスを放すと、
タイトルバーが完全に表示されるように再移動される
これもsnapではないのか
591:デフォルトの名無しさん
18/08/24 16:58:34.94 71ZOGqZF.net
>>581
そうですね。即席で調べただけなので見落としてました。
いずれにせよ、スナップ操作時にどういったウィンドウならばどういう作用が起こるのか、
逆に特定のスナップの効果が欲しい場合にどういうウィンドウをセットアップすればよいのか
みたいなことがわかる情報を探しています。
592:デフォルトの名無しさん
18/08/27 20:05:43.05 vbuO7hMr.net
片山の取り巻きは帰れ
593:デフォルトの名無しさん
18/08/28 18:50:20.34 K0zx4BAG.net
実行中のGUIアプリケーションのコントロールを取得して表示させたいのですが良い方法はありますか?
594:デフォルトの名無しさん
18/08/28 22:31:26.44 CqD+kceR.net
spyのソースを読むべし
595:デフォルトの名無しさん
18/08/29 06:13:37.68 bvggge1h.net
hwnd検索するだけの質問だったのか
てっきりインジェクトして中身奪い取るとかそんなのかと思ったわww
596:デフォルトの名無しさん
18/08/29 06:56:51.37 /uFmfA/d.net
そっちならAppInit_DLLsの勉強しなされ
ってのが回答かな
597:デフォルトの名無しさん
18/08/29 07:15:50.54 bvggge1h.net
難しいのはインジェクトの先だから・・・
598:デフォルトの名無しさん
18/08/29 08:38:47.27 SgdWV5FD.net
悪用出来るからこの先は自分でお勉強
599:デフォルトの名無しさん
18/08/29 09:10:27.86 eKXrV34J.net
>>589
素直にわからないって言えよ
>>588の「先」は、「自分のプロセスに貼ったコントロールを、そのまま残しつつさらに別プロセスのウインドウに貼り付けて表示する」ということだからな
600:デフォルトの名無しさん
18/08/29 09:13:57.66 /ngMaME6.net
>>590
なんでそんなことするのか全然わからん。
>そのまま残しつつ
>貼り付けて
601:デフォルトの名無しさん
18/08/29 09:29:45.16 eKXrV34J.net
>>591
>>584がもしも>>586ならそうなるでしょ
602:デフォルトの名無しさん
18/08/29 10:17:28.09 X/yLq4q6.net
そのまま残してんなら奪ってないやん
603:デフォルトの名無しさん
18/08/29 10:41:34.94 eKXrV34J.net
>>593
飽きれるほどくだらない揚げ足取りだな
「パスワードを奪い取る」の考えてみろ。残さないとは限らないんだよ
604:デフォルトの名無しさん
18/08/29 11:02:53.78 X/yLq4q6.net
>>594
飽きれるほど下手な例えだな
パスワードは残さないと使えないだろ
605:デフォルトの名無しさん
18/08/29 11:13:44.40 7geB3Ftq.net
パスワードはいただいた
返して欲しければ1BC用意しろ
606:デフォルトの名無しさん
18/08/29 12:00:14.20 X/yLq4q6.net
いただいた(変更した)
607:デフォルトの名無しさん
18/08/29 12:09:36.88 /ngMaME6.net
入力するパスワードを勝手に変えたら駄目じゃん
608:デフォルトの名無しさん
18/08/29 14:19:35.46 X/yLq4q6.net
パスワード変えずに「パスワードはいただいた」って?
それ何の脅しにもならんやん
元の持ち主が別のに変更して終わり
609:
610:デフォルトの名無しさん
18/08/29 14:37:13.57 7geB3Ftq.net
せっかくギャグを入れてやったのにしょうもねえ奴ら
611:デフォルトの名無しさん
18/08/29 22:37:19.40 /ngMaME6.net
え?おもしろいとでも思ってたの?
もしかして渾身のギャグなの?
恥ずかしくないの?
612:デフォルトの名無しさん
18/08/30 10:17:52.45 Z5Fjo3b4.net
程度が同じじゃないとジョークは通じないらしい
ただ今回はガキとバカだからどちらも等しく低いように見えるな
613:デフォルトの名無しさん
18/08/30 10:23:06.98 53NSE4xw.net
謎の上から目線
614:デフォルトの名無しさん
18/08/31 04:18:44.69 kx4Z958G.net
昔のゲームのコードを弄ってて困った事があります。
ウィンドウの大きさを変えると一緒に表示中の画面も引き延ばされるのですが
引き延ばされた時に粗くなって美しくないです。内部のバッファをウィンドウを最大化された時の大きさで確保しておき
ゲームの処理の方でフィルタ処理を施せば上手く行きますが出来れば小さいバッファのままで
ウィンドウのリサイズ時にAPI側でフィルタ処理できないでしょうか?
あと気になるのが環境によっては上記の処理を勝手にやってくれている環境もあります(ディスプレイドライバによるのかもしれません)。
出来れば確実にこちらで処理できるようになれば嬉しいです。
615:デフォルトの名無しさん
18/08/31 06:25:35.68 u3E//DdP.net
>>604
普通、WM_SIZEの都度ゲームのフレームバッファを再作成するもんじゃねえの?
616:デフォルトの名無しさん
18/08/31 06:50:31.93 kx4Z958G.net
>>605
出来ればバッファの大きさは固定で行きたいんです。
最大化された時にいかにも拡大してフィルタリングされた感じを出したいので。
環境によってはウィンドウがリサイズされると勝手にフィルタリングしてくれて
ぼやっとした画面になるので出来ればそれを確実にやりたい感じです。
何か設定でもあるんでしょうか。OSの設定としてあるならそれを知りたいです。
617:デフォルトの名無しさん
18/08/31 07:13:40.06 wCA0c3fj.net
SetStretchBltMode
618:デフォルトの名無しさん
18/08/31 18:32:30.98 kx4Z958G.net
>>607
良さげですね!試してみます。ありがとうございます。
619:608
18/08/31 20:11:53.40 kx4Z958G.net
どのタイミングでStreachBltを呼び出してるのかわからない…
ウィンドウを制御するクラスの中のWM_PAINTは空だし。
初期化時にDirectXのAPIにhWndを渡してるので勝手にDirectX内部で呼び出してるのかな?
リサイズされた時にhWndを元にHDC作ってそこでStreachBltとか。その後HDC破棄みたいな。
そうなると手出しできないってこと?
620:デフォルトの名無しさん
18/08/31 20:17:23.84 kx4Z958G.net
それともウィンドウ作成時のスタイル設定などで
リサイズに合わせてスケーリングをどうするのかみたいな設定があるのかな。
それだとそこの設定でどうにかなりそうな気もするけどよく分からない。
ちなみにウィンドウ制御クラスの中のWM_PAINTでは動画などのスケーリングは自前でやってた。
なので少なくともWM_PAINTの中では自分でウィンドウ内部の他の表示のスケーリングはやってない。
621:デフォルトの名無しさん
18/08/31 20:46:55.45 kx4Z958G.net
ここ見たらたぶん同じような症状で困ってた人がいて
URLリンク(dxlib.o.oo7.jp)
基本的に手出しができず綺麗に拡大されるかはドライバによるという事らしい…
え~やだやだ~ 納得できない。やっすいPCでも綺麗に拡大されてるのに
家の高いPC(ドライバも新しい)で汚いなんて納得できないよ~!
622:デフォルトの名無しさん
18/08/31 21:07:44.36 pOoITzWx.net
> 現状ではコーラさんがお書き込みになられた方法しかありません
あるって書いてあるじゃn
623:デフォルトの名無しさん
18/08/31 21:22:40.36 kx4Z958G.net
>>612
うん。そうだけど、たっかいグラボ積んでる家のマシンで汚く表示されて
やっすい3万くらいのPCで綺麗に表示されるのが納得いかないの。
624:デフォルトの名無しさん
18/08/31 21:23:46.62 kx4Z958G.net
>>612
あ、ごめん見間違った。
方法はあるんだけどバッファの大きさは固定でやりたいの。
625:デフォルトの名無しさん
18/08/31 21:31:04.55 pOoITzWx.net
だからバッファ固定でできるって
626:デフォルトの名無しさん
18/08/31 21:32:44.33 LcHwdHfr.net
なんか意味不明な質問だなと思ったら、それWin32じゃなくてDXライブラリとかいう
よくわからんライブラリの話やん。
627:デフォルトの名無しさん
18/08/31 21:33:51.55 kx4Z958G.net
拡大した時に粗くなる→最初から内部のバッファの解像度を上げておけばよくね?
ってのはナシで。
あくまでも内部のバッファの大きさは今のままでウィンドウが拡大された時に
勝手にドライバがやる部分をどうにかしたい。けど無理そうだね…
納得いかないのは、やっすいPCでは綺麗に表示されてるのに
たっかいPCで汚く表示されてしまうこと… 逆なら納得したのにこれはないよな~
628:デフォルトの名無しさん
18/08/31 21:35:25.97 kx4Z958G.net
>>616
いやDXライブラリでも制御できない部分なので
Win32APIの方でなんとかならないのかなと思って。でも無理なのかな。
ここの人ならなんか解決法わかるかなと思ってたけど。
629:デフォルトの名無しさん
18/08/31 21:44:49.09 pOoITzWx.net
win32でやるならSetStretchBltMode
おまえがやるべきなのは小さい画面サイズのでいいからそのDCを取り出すこと
それしたらあとは表示するだけ
630:デフォルトの名無しさん
18/08/31 21:50:44.31 kx4Z958G.net
>>619
要するにそれは内部バッファのHDCを取り出して
SetStretchBltModeを設定し、その後ウィンドウのクライアント領域に自前で
StretchBltで描画しろってことになるかな?まあそれしかないのかやっぱ。
631:デフォルトの名無しさん
18/08/31 22:41:05.39 kx4Z958G.net
さすがに自前でやったらGDI+使っても速度が全然でなかった(毎フレーム描画しないといけないので)。
諦めます~
632:デフォルトの名無しさん
18/08/31 22:47:15.40 u3E//DdP.net
なんか基本的な部分から盛大に勘違いしてそうだな
Direct3D使ってるならドライバ依存になるのはスワップチェインのバックバッファが
ターゲットウィンドウのサイズとかみ合わない場合に
Presentの呼び出しでウィンドウにフィットするように自動でスケーリングされる部分だ
ドライバ依存の挙動を回避したいならバックバッファをウィンドウに合わせてリサイズするのは必須なの
逆に、バックバッファの解像度をゲームの解像度と考える必要も無い
バックバッファがどんなサイズであれゲーム自体は固定サイズのレンダーターゲット用テクスチャにレンダリングし
バックバッファへはそのテクスチャをスプライトとして張り付けるだけ
拡縮フィルタリングをニアレストにするのもバイリニアにするのもアプリでしっかり管理できる
なんならシェーダでLanczosにしても良い
633:デフォルトの名無しさん
18/08/31 23:02:05.30 GkpBxwA9.net
せっかく諦めたのに
634:デフォルトの名無しさん
18/08/31 23:19:59.47 kx4Z958G.net
>>622
なるほど~バッファをリサイズしないと必ずドライバ依存のスケーリングになってしまうってことね。
その辺りをもうちょい考えてどう対処するか検討してみるよ。ありがとう。
>>623
まだまだ諦めんぜえ~ww
635:デフォルトの名無しさん
18/08/31 23:25:09.45 N52+Kto5.net
野菜の日
636:デフォルトの名無しさん
18/09/04 23:00:53.53 g1EQF691.net
CreateFile()で取得したハンドルをGetMailslotInfo()に渡していいものでしょうか?
CreateFile()の第1引数には、別プロセスでCreateMailslot()したときの第1引数と同じ
です。
637:デフォルトの名無しさん
18/09/05 08:35:25.55 w5sEnOXo.net
流石にmsdn見ろとしか
638:デフォルトの名無しさん
18/10/03 18:23:25.15 BIMPuBeq.net
リストビューでマウスドラッグで範囲選択をしているとき、
その選択範囲の矩形座標を取得する仕組みは無いのでしょうか。
範囲選択開始時のLVN_MARQUEEBEGINしか見つからないのですが。
639:デフォルトの名無しさん
18/10/05 23:00:23.19 OkuzM4NB.net
メインウィンドウのメッセージループからマウス系イベント拾ってくるのが楽で良い
640:デフォルトの名無しさん
18/10/18 16:38:48.09 rfYW9BA4.net
AVIStreamGetFrameOpenというAPIで「MPEG-4 Visual (XviD)」で
圧縮されたaviファイルを開きたいのですが可能でしょうか?
また上記が無理なら無圧縮以外の何かでエンコードされたものを
開きたいのですが何だったら可能なのかも教えてもらえないでしょうか?
AVIStreamGetFrameOpenは、2番目の引数にAVIGETFRAMEF_BESTDISPLAYFMTを指定すれば
完全な無圧縮以外でYUY2だけはいけました。
641:630
18/10/18 17:40:26.75 rfYW9BA4.net
調べていたらコーデックというのはAVIStreamGetFrameOpenで使用されたような古い形式と
メディアプレイヤーで使用されてるような新しい形式があるようですね…
つまりこの古いAPIだとそれように提供されているコーデックを探してインストールしないといけないという事になるでしょうか?
新しい形式を利用するプログラムを作った方がいいような気がしてきました。
642:630
18/10/18 18:23:13.79 rfYW9BA4.net
確かにVideo for Windows用のコーデックを探してきてインストールすれば動くようになりました。
解決はしたのですが他のPCでもその都度これをインストールしないといけないってのがどうも…
643:デフォルトの名無しさん
18/10/18 18:34:46.06 LsEafRqd.net
そりゃコーデックのインストールは必須だよ
自前実装するとかなら別だけど
644:デフォルトの名無しさん
18/10/18 18:57:16.36 rfYW9BA4.net
>>633
ただ新しいタイプの方(DirectShow)の方はメディアプレイヤーとかも入ってるので
デフォルトでも結構動きそうなのでそこがいいなと。
初回のプログラム起動時にコーデック用dllだけシステムフォルダに突っ込んでもいいのかな…
645:デフォルトの名無しさん
18/10/19 12:08:49.41 jQ8EJjtV.net
>>632
ffmpeg
646:デフォルトの名無しさん
18/10/19 17:30:46.21 HIw2KJmH.net
ところでMacとかだと64bit化で32bit打ち切りの方向みたいだけど、Winはまだまだ32bitもサポートしてくれるよね?
647:デフォルトの名無しさん
18/10/19 19:13:40.82 HIw2KJmH.net
今のって64bit環境でエミュレーションしてるんだっけ?だから基本的にはずっと維持されるのかな?
648:デフォルトの名無しさん
18/10/20 11:06:47.52 6LBMAo3K.net
WOW64だけ終了させるのは考えにくいね。
32bit過去資産を切り捨てるメリットが当面無い。
32bitって、一般的なアプリだけなら切る方向に動くのもあり得る話だけど、
工業系で周辺ハードウェアを制御するのに32bitドライバとか組み込んでて
不思議じゃないので簡単に切れるレベルじゃないかと。
ARM系なんか採用してたらムリじゃね。
128bitOSが出てきたときにようやく切るようになるんじゃないかな。
Macはそんな環境で動いているケースはほとんどないから問題ない気がする。
649:
18/10/20 11:46:35.45 9jkSTDWo.net
>>638
>128bitOS
128ビットアーキテクチャーとか 128ビットOS とかは、ここ30年くらいは現れないのではないでしょうか…
650:デフォルトの名無しさん
18/10/20 11:57:36.98 6LBMAo3K.net
8/16bit全盛時代、64bitを現実的に捉えてた人は居なかったしなあ。
128bitなんて遠い先だと今は思ってても、どうなるか分からんもんよ。
651:デフォルトの名無しさん
18/10/20 12:18:25.97 u8BRF3D8.net
WOW64←32bit用のフォルダ
SYSTEM32←64bit用のフォルダ
では128bit化したときはどうなる?
WOW64←32bit用のフォルダ
WOW128←64bit用のフォルダ
SYSTEM32←128bit用のフォルダ
こうか?
652:デフォルトの名無しさん
18/10/20 12:22:46.95 QqxqMvRx.net
WOW128←32bit用のフォルダ
WOW64←64bit用のフォルダ
SYSTEM32←128bit用のフォルダ
こうなる可能性も悪夢
653:デフォルトの名無しさん
18/10/20 13:36:52.57 fOofNO0j.net
>>640
8/16bit全盛時代は32bitデスクトップコンピューターが
スーパーパソコンと言われることもあったなあ
32bit機なんて夢だった、64bit機なんて遠い未来に
実現するのかなあという感覚
654:デフォルトの名無しさん
18/10/20 19:16:09.86 ZcZ7Cx83.net
>>638
そういうところがOSだけ最新なの使っているものなのか?
古いアプリケーションをずっと使っているようなところだとOSも昔のままな気がするけど
>>641
その時にはSYSTEM32って名称はやめていると思う
んで、64bit以前のアプリケーション互換云々は単純に仮想マシン環境下で動作させればいい
仮想マシン上でも十分な性能を得られるだろうし
655:デフォルトの名無しさん
18/10/20 19:42:10.64 LsRLW+LD.net
128bitは多分こないんじゃないかなw
32bitとか64bitってメモリマッピングの領域の問題なんで
64bitなら4GByte×4GByteまでマッピング出来てしまうので
超絶高速SSDとかできてONメモリのように管理できるように
なっても64bit超えないような
656:デフォルトの名無しさん
18/10/20 20:09:53.22 zBQrNBwm.net
ドリームキャストは128bitって連呼してたなぁ
657:デフォルトの名無しさん
18/10/20 20:18:05.59 wecQHzx8.net
既にWindowsフォルダ配下はカオスだろ
M$よくこんなん管理できんなーと思ってたらやっぱり管理できてなかったみたいだな
658:デフォルトの名無しさん
18/10/20 21:00:21.96 A+7VUlnR.net
アプリケーション的には
16bits → 64KB 死ぬほど不便
32bits → 4GB 快適
64bits → 16EB 贅沢できる
659:デフォルトの名無しさん
18/10/21 02:36:06.52 fpcnU4T3.net
32bitアプリ使ってる人多いだろうから動かなくなったら苦情がめちゃくちゃ来そう。
660:デフォルトの名無しさん
18/10/21 03:23:03.53 C+Apg5Hi.net
>>643
でもその頃、汎用機は32bit機械だったよ?
アドレッシングは24bitだったけど。
>>645
AS400は128bitと言ってもいいのでは。
むしろIoTとか言ってコンピュータ側のリーチが伸びてるから
単一レベル記憶で世界を管理しようとしたら、既にある技術で言えば
IPv6は128bitだし、既に128bitの世界はきてる気がするよ。
661:デフォルトの名無しさん
18/10/21 05:03:20.85 5lMyjKAV.net
既存プロセスのウィンドウhwndに対するファイルのドラッグ&ドロップをマウスエミュレートを使わず実現するにはどうしたらよいですか?
過渡的な視覚効果であるドラッグは必要ないので、実質ドロップだけできればいいとは思うのですが。
662:デフォルトの名無しさん
18/10/21 08:15:24.58 S2kctYlU.net
>>649
そもそもVisual Studioが32bitだから32bit打ち切ったら開発できなくなるし w
663:デフォルトの名無しさん
18/10/21 14:33:56.37 jYu3kmgI.net
>>650
個人が買えるPCの話だよ、その頃はPCで
32Bitアドレッシング24Bitなんて夢だった
664:デフォルトの名無しさん
18/10/21 16:15:03.17 /+3u54Rp.net
>>653
XL2でも100万だったけど?
665:デフォルトの名無しさん
18/10/21 18:55:34.10 PdeVN0B9.net
> アプリケーション的には
> 16bits → 64KB 死ぬほど不便
> 32bits → 4GB 快適
> 64bits → 16EB 贅沢できる
8bitは ?
666:
18/10/21 18:59:32.77 gNVlu9Yw.net
>>655
>8bitは ?
ほとんどの 8 ビットCPU のアドレス空間はすでに 16 ビットだったからなあ…
667:デフォルトの名無しさん
18/10/21 19:06:52.55 9MgCOCRf.net
マウントの取り合いになってきたゾ~
668:デフォルトの名無しさん
18/10/21 20:51:33.47 3rYBWp0g.net
>>651
アプリケーション毎にドラッグをどう処理しているか不明だからマウスエミュが確実だと思うけど
669:デフォルトの名無しさん
18/10/21 21:19:33.66 MYahSoZu.net
>>651
URLリンク(docs.microsoft.com)
670:デフォルトの名無しさん
18/10/21 21:43:12.45 CMVET5pn.net
>>655
アドレスが8bitの汎用CPUなんてないんじゃない?
4004でさえアドレスは12bitだそうだ
671:651
18/10/22 01:10:30.37 zMz+R4iM.net
>>659
WM_DROPFILEはすでに試して失敗を確認済みです。
ドラッグ&ドロップの具体例をあげるとVisual Studio 2017 にファイルをドロップして開く処理をやりたいのだけど、
GlobalAlloc()、GlobalLock()、GlobalUnlock() などで作ったhDropをPostMessage(WM_DROPFILE)しているのだけど、まったく変化なし。
メモ帳notepad.exeの場合はPostMessage(WM_DROPFILE)で開けたのですが、VS2017と何が違うのやら。
672:デフォルトの名無しさん
18/10/22 02:10:39.32 T6zy7H5q.net
WM_DROPFILEの他に、OLE Drag&Dropもあるでよ
673:デフォルトの名無しさん
18/10/22 12:32:01.71 uugU0jx6.net
PIC のアドレスって何bitだっけ
68xx の memory mapped register とかは 8bit か
そもそもどうでもいい
674:デフォルトの名無しさん
18/10/22 14:14:29.65 2rAhHCnw.net
>>648がネタだったらどうでもいいのだが
16bitのWindows3.1でも 1Mを越えるメモリーは使えたし、
32bitのWindowsのアプリケーションのメモリー空間は32bitではないし
64bitのWindowsのアプリケーションのメモリー空間は64bitではない
675:デフォルトの名無しさん
18/10/22 15:48:26.25 H1W4+XYR.net
アセンブラで書いてるのかω
676:デフォルトの名無しさん
18/10/22 18:19:05.88 x0pcGzlw.net
8bit→16bit 前世代の256倍
16bit→32bit 前世代の65536倍
32bit→64bit 前世代の4294967296倍
64bit→128bit 前世代の18446744073709551616倍
で各時代のジャンプしてる倍数が全然リニアじゃない
128bitは俺らが生きてる間に実現しない
677:デフォルトの名無しさん
18/10/22 18:27:51.91 x0pcGzlw.net
つまりは
8bit倍→16bit倍→32bit倍→64bit倍 とくるから
だんだん間隔が長くなって正常
64bit(前世代の32bit倍)ですら途方もなくて持て余す(実際48bit)のに
64bit倍なんてのは途方もないものはどうしようもない
永遠に到達しないと思っても問題ないくらいに天文学的数値
678:デフォルトの名無しさん
18/10/22 18:38:09.95 N4Dlk9u9.net
そうでもない
進化は指数関数的に変化するから
679:デフォルトの名無しさん
18/10/22 18:44:02.73 VafFZz5P.net
CPU取り扱いビット数は、なにもメモリー空間だけの問題じゃないと思うが。
なんにしても、ないもの語るのは不毛な話だわ。
680:デフォルトの名無しさん
18/10/22 19:04:08.99 +9ubm+fa.net
64bit増毛
681:デフォルトの名無しさん
18/10/22 19:06:40.33 x0pcGzlw.net
CPUのビット数と言ったらやっぱりメモリ空間だろ
俺らに関係する互換性の意味でもさ
>>668
bit数が一つ増えると2倍になるが、そのbit数も2倍で増やしていくから
指数関数の指数関数でとんでもない速度で増加する
一方でムーアの法則はただの指数関数だから
割り算すると指数関数が残る
というのが>>666-667の説明
682:デフォルトの名無しさん
18/10/22 22:15:29.36 iXt7ySqh.net
さすがに64bitアドレスを使い切ることは無いべ?
下手すると64bit個の原子は目で見えるサイズじゃないか?
2^64=1.8446744e+19
アボガドロ数=6.0221409e+23/1mol
砂粒くらいはありそうだよな?
683:デフォルトの名無しさん
18/10/22 22:22:39.79 haEJCmq/.net
みんながそう思ったら、IPv6は128bitにしなかっただろうね :-p
684:デフォルトの名無しさん
18/10/22 23:05:44.67 CgLRMpn3.net
過去からbit数が上がる際にはメモリー空間に限定した話ではなくて
「パフォーマンスが上がる」というまずは大ざっぱな喧伝がなされてた
メモリー空間はもちろん広がるが、そんな限定的な事じゃない様々な性能アップ要素で
話がされたもので、今になってメモリー空間だけに絞った話にしかならないのは
その話している人の経験や視野が狭すぎるのが原因ではなかろうか
685:デフォルトの名無しさん
18/10/22 23:08:02.77 1Kkbm3du.net
>>664
アプリケーションの話をしてんだから
8086 死ぬほど不便 あってるじゃん
32bitのWindowsのアプリケーションのメモリー空間は32bitじゃん?
36bit使える?32bitアプリが。
686:デフォルトの名無しさん
18/10/23 01:54:45.89 WBybiFHu.net
>>674
80286とi386だと、クロックが同じだと80286の方が速いこともあったよ?
687:デフォルトの名無しさん
18/10/23 02:55:48.42 sn2WQhnj.net
アーキテクチャや最適化とかあらゆる要素を全く無視して
一部だけ切り取って主題の否定に終始しておけば勝つから頑張れ
688:664
18/10/23 10:09:02.12 GIVzaW28.net
>>675
Windows3.1は8086では動かない
多くの32bit Windowsアプリケーションのメモリー空間は 2G (31bits)
689:デフォルトの名無しさん
18/10/23 11:47:28.84 hJha4BQY.net
何でCPUのbit数の話がメモリのサイズ限定になるってそりゃ当たり前ここはプログラム板だから
ポインタのサイズがいくらになるかが互換性の面で最大限問題なんだよ
互換性の面でな
690:デフォルトの名無しさん
18/10/23 11:49:19.92 hJha4BQY.net
しかもここはWin32APIのスレで
128bitのWinAPIはいつ出るかって話だから
ポインタのサイズ=メモリ空間のサイズの
話になっていくのは当たり前
691:デフォルトの名無しさん
18/10/23 12:48:48.94 joSIbJ7d.net
>>675
128bitマシンがあっても
FDDだったら死ぬほど不便だな
692:デフォルトの名無しさん
18/10/23 15:26:03.23 WBybiFHu.net
>>681
オンラインストレージもすべてアドレッシングされてるような美来を考えると、
そんなに不便でもないような気も少し。
693:デフォルトの名無しさん
18/10/23 15:28:44.02 sn2WQhnj.net
>>679-680
> 何でCPUのbit数の話がメモリのサイズ限定になるってそりゃ当たり前ここはプログラム板だから
プログラムの話でCPUの基本であるアセンブラ・命令セット・レジストリやアーキテクチャなどをすっぱり抜く意味はなんですか。
> 128bitのWinAPIはいつ出るかって話だから
>>636-640
「Win32APIのサポートはいつまでか」~
から、
「128bit CPU・OSが出たら」~
の話であって、128bitのWinAPIはいつ出るかって話ではありません。
しかし、「128bit CPU・OSが出たら」に対してメモリマップの問題だと言い出したのは>>645です。
この主張に対して、メモリ限定の話になっているのがおかしいというのが本反論です。
あくまでも「128bit CPU・OSが出たら」が基本の話で、あなたの言う「128bitのWinAPI」は
話の本筋ではありませんし、そもそも話が出ていません。
アドレッシングの話題は話題でやればいいですが、これを論拠に「だから次はない」
なんてのはナンセンスというだけの話です。
694:デフォルトの名無しさん
18/10/23 16:08:56.16 hJha4BQY.net
レジスタ長やら命令セットの話なら既にAVX512とかがあるでしょ
ただこれとWin32APIは関係ないでしょ?
x64が続く限りWin32APIのサポートがずっとあるのは明白だし
(あえて命令セットを変える意味がないでしょ・・・何の意味が?)
もし変えるとしたら128bit化の時だろうけど
まず生きてる間には来ないよねって話でしょ
695:デフォルトの名無しさん
18/10/23 16:18:21.83 hJha4BQY.net
ちなみに128bit化に伴って32bitプロセスがサポートされなくなる可能性は有る
何故なら128bitは100年後か1000年後かあるいは永遠に来ないか
そのぐらいの未来になったら32bitプロセスはすっかりレガシーになってて
サポートする意味が無いかもしれん、わからんがな
ただそんな未来は生きてる間に来そうにない、という事で
Win32APIのサポートが無くなることはないだろうという事を述べておる
696:デフォルトの名無しさん
18/10/23 17:00:05.35 yFsvvFWj.net
>生きてる間には来ない
来たらどうするか(どうなるか)って話をしてるんだろ
空気読めないアスペか?
697:デフォルトの名無しさん
18/10/23 17:40:29.64 GIVzaW28.net
I/Oがすべてマッピングされている世界はたぶんたのしい
698:デフォルトの名無しさん
18/10/23 17:47:11.62 POYrFqPG.net
PCIとかはメモリ空間にマッピングされているよね
699:デフォルトの名無しさん
18/10/23 17:55:28.41 hJha4BQY.net
計算したら来ないし
遠い未来すぎて今と状況が違いすぎるからなんとも
結局は32bitをサポートするかは技術的というより時間的要因とうか周りからの要求で決まるわけで
例えばもし10年後に128bitになるなら32bitをサポートするようにCPUを作るだろうし
100年後だったらもはやレガシーすぎてサポートしないかもだし
(その場合はソフトエミュレーションかな)
結局は問題ないだろうということ
俺らが困らないようにしてくれるさ
IntelがItaniumを作って広げようとしても、AMDがx86作ってそっちが選ばれたしな
互換が無くなって一番困るのは俺らよりマイクロソフトだから何とかしてくれるのだわ
700:デフォルトの名無しさん
18/10/23 17:58:27.40 hJha4BQY.net
ただ、Windowsが無くなればWin32APIも無くなるが。。。
701:デフォルトの名無しさん
18/10/23 18:15:44.57 d491RiZs.net
> レジスタ長やら命令セットの話なら既にAVX512とかがあるでしょ
AVXのときにAVX512なんて絶対来ないとか言ってたか?
次がどうなるとお前が決める事ではない
> ただこれとWin32APIは関係ないでしょ?
関係ないからこそWin32APIだけの話題で次があるないを確定づける論拠にするのに意味がない
702:デフォルトの名無しさん
18/10/23 19:35:50.85 bNdv7B9n.net
ポインタのサイズが互換性において何の問題が?
703:デフォルトの名無しさん
18/10/23 20:21:56.29 tecJ1BiK.net
32/64だとポインタをDWORDに放り込んで処理してるのとかあるからな
704:デフォルトの名無しさん
18/10/23 23:44:40.09 volyHHZE.net
window handleとかはx64だと64bit幅だけど、wow64でもそのまま扱えるように32bit内の値しか設定されないとかあるね。
705:687
18/10/24 06:38:30.05 UmzQGEnh.net
>>682が書いているように
I/Oの中身がすべてアドレスでとれるようなマッピングのこと
他のPCもまるごとアドレシングされているような世界
706:デフォルトの名無しさん
18/10/24 11:37:09.95 XOgiiIOy.net
>>692-693
rubyは困りそうω
707:デフォルトの名無しさん
18/10/24 13:36:44.56 42dinMX8.net
>>696
perl もだよ。
perlでライブラリWin32APIで構造体をマッピングする場合、
構造体のメンバー変数のアラインメントを自力で解決しなければならず、
32bit版と64bit版でオフセットを適切に切り替えるコードが必要。
708:
18/10/25 00:37:44.65 yGYVJ0zR.net
http://wisdom.sakura.ne.jp/system/
709:デフォルトの名無しさん
18/10/25 11:37:51.73 5Cy/pQlU.net
えらい古いな
っていうか 赤坂玲音 って糞筆者の筆頭じゃねーか
QZ って 赤坂玲音 だったのか?
710:デフォルトの名無しさん
18/10/27 13:09:18.62 NcyVMn+k.net
今や当たり前のようになった入力補完候補の動的羅列を従来のコンボボックスのドロップダウンリストでやってみた。
作成済みコンボボックスは途中でオーナードローにスタイル変更できないので、毎回リストを再構築することにした。
ドロップダウンリストの再構築に時間がかかっているように見えたので、
試しにリストをSetRedraw(FALSE)で描画せずに再構築したところ、まったく時間がかからなくなった。
リストアイテムに追加していく処理のたびに描画で重くなっていただけだった。
結論:
ドロップダウンリストの動的変更はSetRedraw(FALSE)で見かけ上は高速に実行可能。
リスト再構築が終わったらSetRedraw(TRUE)で再び描画できるようにして RedrawWindow() などを呼べばOK。
711:デフォルトの名無しさん
18/10/27 13:29:57.46 R2aCZi1a.net
おめ子
712:デフォルトの名無しさん
18/10/28 03:50:14.50 2tbaDxKB.net
>> 700 SetRedraw スレチ
713:700
18/10/28 04:05:03.07 y4CTIPMK.net
>>702
別にMFCの話したかったわけじゃないんだが。
リスト破棄とアイテム追加のたびに描画処理が行われるとどうしてもアイテム更新完了が遅くなる。
オーナードローできない汎用のリストコントロールのアイテム更新はSetRedraw()つまりSendMessage(WM_SETREDRAW)で描画抑止すれば高速実行できる、というのが主旨。
714:デフォルトの名無しさん
18/10/28 15:00:14.25 MGLPoTB/.net
>>702
Win32API的には SetWindowRedraw (WM_SETREDRAW) でOK
715:デフォルトの名無しさん
18/10/28 22:57:05.89 G0OjLYsX.net
>>691
違うって
AVXだろうがAVX512だろうがAVX1024だろうが
ただの拡張命令だから何がこようがどうでもよいけど
ポインタのサイズだけは命令セット全体に影響して互換性の面で問題が出るから
プログラマとしてそこが真っ先に気になるのは当たり前だろうよ
そんでポインタのサイズが64bitで足りなくなる事は生きてる間には無さそうということと
今現在64bit版のWin32APIのサポートがあることを合わせて考えて
Win32APIのサポートの心配するより自分の寿命の心配したほうが良いってことに
ただし、将来Windowsが無くなったら知らんが
716:デフォルトの名無しさん
18/10/28 23:18:58.18 VktvRbK2.net
AVXとか持ち出した人自身がどうでもいいとか言い出したよ
717:デフォルトの名無しさん
18/10/28 23:34:05.53 X0Sl4ey0.net
すみません
アナルに今電極を差してみているのですが
どのくらいの電圧が人間の限界なのかがよく分かっていません
参考までにお教え願えませんでしょうか?
718:デフォルトの名無しさん
18/10/28 23:46:07.82 sr3fygGC.net
>>707 今差しているんだろ? 限界になるまで電圧上げてみればいい
720:デフォルトの名無しさん
18/10/29 03:39:30.92 syL/ZpQ2.net
電流か
721:デフォルトの名無しさん
18/10/29 11:33:26.98 VxCr7qKV.net
>Win32APIのサポートの心配するより自分の寿命の心配したほうが良い
どっちも心配
722:
18/10/29 19:36:35.79 MQrExvvX.net
>>699
>赤坂玲音 って糞筆者の筆頭
kwsk
723:デフォルトの名無しさん
18/10/29 23:04:33.26 /SfeOL5O.net
何かプリキュアとか好きそうなイメージ
724:デフォルトの名無しさん
18/10/30 14:43:24.71 p4LrBCE7.net
橋本 和明
山本 洋介山
こいつらよりまし
725:デフォルトの名無しさん
18/10/31 00:30:08.49 bv97uCMI.net
東京ミュウミュウ舐めんなよ
726:デフォルトの名無しさん
18/10/31 00:34:00.99 pqSFU9GW.net
サンプルコードにキモさを織り込める偉人だぞ
727:デフォルトの名無しさん
18/10/31 01:20:17.24 OyhA4eFa.net
>>713
1冊じゃないのが許せないよな
赤坂玲音って会社員経験がないんだっけ
確かにそんな感じはする
728:651,661
18/11/04 09:16:05.57 muyEcRRg.net
SendInput() にINPUT配列を渡してドラッグ&ドロップをエミュレートすることで対応できました。配列の要素は以下2つ。
ドラッグ開始位置で MOUSEEVENTF_ABSOLUTE | MOUSEEVENTF_MOVE | MOUSEEVENTF_LEFTDOWN
ドロップ位置で MOUSEEVENTF_ABSOLUTE | MOUSEEVENTF_MOVE | MOUSEEVENTF_LEFTUP
mouse_event()と違ってSendInput()はユーザーのマウス操作の影響を受けづらいはずですが、
マウス移動とマウスボタン操作を別のINPUT要素に入れるとユーザーのマウス操作が入り込んでしまうので、要注意でした。
729:
18/11/04 10:52:13.06 4sZQO68Y.net
>>716
>赤坂玲音って会社員経験がないんだっけ
書籍を執筆するのに会社員経験は必要ですか?
730:デフォルトの名無しさん
18/11/04 11:18:54.43 kSTg14OV.net
いるわけねーだろ。バカかよw
って馬鹿だからいつまでもくだらない話題ひっぱってんだろうな
731:デフォルトの名無しさん
18/11/04 13:01:34.19 cd0AZv6K.net
GetMessageの戻り値をちゃんと調べる良識人やぞ
732:デフォルトの名無しさん
18/11/04 13:46:25.24 izn20/on.net
GetMessage…
懐かしの踏み絵ですね
733:デフォルトの名無しさん
18/11/04 14:04:57.01 5RY1Lh2I.net
エラーを調べるには関数を呼びます
734:デフォルトの名無しさん
18/11/04 15:45:01.93 I4L5mfdv.net
せめてヒントを書いとけよ
ヒント:最後のエラーを取得する関数です
とか
735:デフォルトの名無しさん
18/11/04 16:16:20.98 K9FptJr2.net
>>722で通じるからw
736:デフォルトの名無しさん
18/11/04 18:11:10.68 rLQVzKFu.net
MSが保守投げだしたくなる気持ちは判る
737:デフォルトの名無しさん
18/11/04 18:32:10.13 eJWttrBP.net
>>724
w
738:デフォルトの名無しさん
18/11/04 19:09:01.33 I4L5mfdv.net
>>724
www
まいりました
739:
18/11/04 19:41:55.05 4sZQO68Y.net
>>720
>GetMessageの戻り値をちゃんと調べる
当然なのでは?
while(GetMessage(&msg , NULL , 0 , 0)) {
TranslateMessage(&msg);
DispatchMessage(&msg);
}
メッセージループを抜けるかどうかは、GetMessage() を調べでもしないかぎり分かりようがないのでは?
740:デフォルトの名無しさん
18/11/04 19:56:38.13 K9FptJr2.net
それバグコードだからw
741:デフォルトの名無しさん
18/11/04 20:20:15.94 izn20/on.net
踏み絵がまだ機能しててワロタ
742:デフォルトの名無しさん
18/11/04 20:46:13.51 cd0AZv6K.net
>>728
ちゃんと調べてないぞ
743:デフォルトの名無しさん
18/11/04 20:50:35.10 h5bAAdgj.net
>>729
釣られんなよ…
744:デフォルトの名無しさん
18/11/04 22:51:52.16 I4L5mfdv.net
-1・・・
745:デフォルトの名無しさん
18/11/05 13:33:52.85 o5QGnfIr.net
while(GetMessage(&msg , NULL , 0 , 0) < 0) {
boolじゃないからな
746:デフォルトの名無しさん
18/11/05 14:30:24.29 frT8bC/+.net
そんなコードばっか書いてるからいつまでも使えないんだよw
747:デフォルトの名無しさん
18/11/05 17:36:34.14 cQ3f3cLB.net
>>734
エラーの時だけループするのが正しいんですね
勉強になります
748:デフォルトの名無しさん
18/11/05 19:35:45.35 7LsLMyD5.net
>>734
ネタなのかマジなのか判断できねー w
749:さまよえる蟻人間
18/11/05 19:41:49.06 l7k9Isvb.net
while(BOOL bRet = GetMessage(&msg , NULL , 0 , 0)) {
if (bRet < 0) {
MessageBox(NULL, TEXT("異常終了してやんのw ぷぷぷ"), NULL, 0);
break;
}
TranslateMessage(&msg);
DispatchMessage(&msg);
}
750:デフォルトの名無しさん
18/11/05 20:01:12.60 44ykk/Ua.net
無効ポインタを渡してしまった以外にエラーを起こす事あるか?
751:さまよえる蟻人間
18/11/05 20:02:50.18 6+yTtRut.net
Windows互換を目指すReactOS、
いよいよ明日の夜、リリースです。よろしくね。
752:さまよえる蟻人間
18/11/05 20:09:34.41 l7k9Isvb.net
C/C++では、メッセージループの異常終了に加えてC++の例外と、構造化例外による異常終了があるよ。
753:
18/11/05 21:19:04.73 E6RwMSoz.net
>>740
期待しています!
754:デフォルトの名無しさん
18/11/06 05:22:40.71 ARgE5xEK.net
>>739
そんなもんMSの中の人にしかわからんだろ
755:デフォルトの名無しさん
18/11/06 05:47:46.71 sIfl11dh.net
ざっと見て2つ目の引数で-返るな
756:デフォルトの名無しさん
18/11/06 12:09:16.46 vyXuaWzf.net
while(TRUE){
try{
while(BOOL bRet = GetMessage(&msg , NULL , 0 , 0)) {
if (bRet < 0) {
MessageBox(NULL, TEXT("異常終了してやんのw ぷぷぷ"), NULL, 0);
break;
}
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}catch(std::exception &e){
MessageBox(NULL, TEXT("例外補足してやんぜw ぷぷぷ"), NULL, 0);
}
}
757:デフォルトの名無しさん
18/11/06 12:43:49.56 sIfl11dh.net
また頭悪いコードw
758:デフォルトの名無しさん
18/11/06 12:56:40.18 N7p2WNxF.net
メッセージループを終了しても永久ループから脱出できない罠
759:デフォルトの名無しさん
18/11/06 13:14:59.49 qdniag2/.net
goto最強
760:デフォルトの名無しさん
18/11/06 15:07:52.54 W/feU5S7.net
std::exception はスレチだし、WndProcから送出してよい例外はWindowsの構造化例外のみだし、送出された構造化例外をWinMainで処理してはいけない
761:デフォルトの名無しさん
18/11/06 17:40:05.44 2Imqjq5w.net
ボケなのマジなのかわからんコードを貼ってるやつはなんなの
762:デフォルトの名無しさん
18/11/06 17:48:14.42 NYh1+GRl.net
真面目に書いてるつもりなんだよ
763:さまよえる蟻人間
18/11/06 17:54:13.46 koMt5OtT.net
異常終了の際にバックアップを作ってくれるのは、親切なんだろうか。
764:デフォルトの名無しさん
18/11/06 19:49:18.62 W/feU5S7.net
半分 中の人
The Old New Thing
When will GetMessage return -1?
URLリンク(blogs.msdn.microsoft.com)
765:デフォルトの名無しさん
18/11/18 16:47:49.39 0OJqhmsU.net
リストボックスのリストアイテムに、游ゴシックの文字列をイタリック(斜体)で右詰めでDrawText()描画すると見切れてしまうのはどうしたらいいですか?
766:デフォルトの名無しさん
18/11/18 17:05:18.33 5HKlow/5.net
owner draw
767:デフォルトの名無しさん
18/11/18 17:16:58.01 0OJqhmsU.net
>>755
CDDS_SUBITEM | CDDS_ITEMPREPAINTで owner drawした結果としてのDrawText()なのですが…
768:754
18/11/18 17:24:06.74 0OJqhmsU.net
描画直前に文字列末尾に半角スペースを追加して見切れないようにする対症療法がまず思いつきます。
DrawText()で斜体フォントを右詰め表示するときに最右文字(日本語や欧州語だと末尾文字)が切れてしまうことがあるのは、既知の現象でしょうか?
769:デフォルトの名無しさん
18/11/18 17:43:56.83 iB0TPElw.net
斜体は必要サイズうまく取得できないからな。別口で取得してそれ使うか、取得値より多少大きくすればいいでしょ
770:さまよえる蟻人間
18/11/18 17:47:51.97 TJFJUOYd.net
斜体のずれの寸法は、tmOverhangだったかな。
771:デフォルトの名無しさん
18/11/18 18:13:41.25 0OJqhmsU.net
>>759
悲報。GetTextMetrics() で得られたtmOverhangはzeroでした。tmItalicはnonzeroが戻ってきているのに。
そんなわけで模範的な解決方法が特にないようなので、文字列末尾に半角スペース追加で対応しようと思います。
772:デフォルトの名無しさん
18/11/18 20:31:51.66 iB0TPElw.net
原因が斜体の必要サイズ取得なんだから、模範的な方がよければそれぐぐれば一発で出るよw
773:デフォルトの名無しさん
18/11/18 23:09:34.60 5HKlow/5.net
取れないって回答になると思うけどね
新APIとか隠し情報がないと無理かと
774:デフォルトの名無しさん
18/11/19 05:02:23.92 vKX2BinB.net
リストボックスに限らず、スタティックコントロールも右詰め・游ゴシック・斜体で末尾文字が見切れてしまう。
他のフォントだと見切れが発生しないフォントも多い。描画APIじゃなくてフォント固有の問題に思える。
あと、「見切れる」という北斗の拳っぽい表現、あまり好きじゃないが適切な表現って他にある?
見切れる(ミキレル)とは - コトバンク
URLリンク(kotobank.jp)
1 テレビ放送や演劇で、本来見えてはいけないものが見えてしまう。「裏方スタッフが―・れる」
2 写真や映像で、フレームに人物などの全体が収まらず、一部が切れている。「集合写真で端の人が―・れる」
775:デフォルトの名無しさん
18/11/19 05:48:21.80 q6cfzVbs.net
URLリンク(www.google.co.jp)斜体+サイズ+取得+windows+api&oq=斜体%E3%80%80サイズ%E3%80%80取得+windows+api
776:デフォルトの名無しさん
18/11/19 13:07:49.59 poEgfl9j.net
>>760
半角スペースで大丈夫かな?
俺はフォントサイズ×0.5くらいを幅に足したわ
777:デフォルトの名無しさん
18/11/19 13:10:21.39 poEgfl9j.net
>>763
「見切れる」で十分通じると思うけどな
778:デフォルトの名無しさん
18/11/19 14:52:36.11 3MOWhUti.net
フォント側データ書き換えないと無理
779:デフォルトの名無しさん
18/11/19 15:36:43.44 yv29DTgI.net
えーそれふぉんと?
780:デフォルトの名無しさん
18/11/19 15:49:16.38 Vi0v2wfh.net
>>768
781:デフォルトの名無しさん
18/11/19 16:01:26.62 vKX2BinB.net
「Palatino Linotype」フォントでHDCにテキスト描画すると星印「★(U+2605)」などの記号が文字化け扱いされて四角になるんだけどどうしたらいい?
Windows 10 October 2018 Update から起きるようになったような気がする。
782:デフォルトの名無しさん
18/11/19 16:55:11.57 DcxQo4X/.net
MBCとかUNICODEとか?
783:デフォルトの名無しさん
18/11/19 17:13:53.40 RxTglLMs.net
そもそもそのフォントのそのコードが定義されてるのか?
昔は定義されてたけど今はされてないとかじゃないの
784:770
18/11/20 07:34:02.29 FIdfDS6L.net
以下に再現プログラムのC++ソースをアップロードしました。
URLリンク(ideone.com)
各フォントで「★test☆テスト」という文字列を表示するWinMainエントリのプログラムです。
「テスト」を表示できるのに「★」や「☆」を表示できないフォントがたくさんあるように思います。
評価やご助言のほどお願いいたします。 m(_ _)m
785:デフォルトの名無しさん
18/11/20 07:45:01.17 XdMfHhgY.net
定義されてるかどうか確かめたのか?
単にその文字が定義されてないだけだろ
786:デフォルトの名無しさん
18/11/20 07:49:45.64 FIdfDS6L.net
>>774
文字が定義されているか確かめるにはどうしたらよいですか?
787:デフォルトの名無しさん
18/11/20 09:26:40.38 c9mHPamo.net
英字フォントでは★などはないんじゃないの
windowsに最初から入ってる文字コード表アプリで見てみ
Palatino Linotypeには登録されてない
788:デフォルトの名無しさん
18/11/20 09:36:43.33 FIdfDS6L.net
>>776
なるほど。回答ありがとうございます。
記号である★や☆を表示できないのにカタカナや漢字を表示できるのですが、
ご紹介いただいた文字コード表との整合性についてはどうなっているのでしょうか。
789:デフォルトの名無しさん
18/11/20 09:52:35.34 XdMfHhgY.net
代替フォントが使われるけど、デフォルトはかなり適当だからきちんと^やりたいなら一文字ずつチェックして描画
790:デフォルトの名無しさん
18/11/20 10:07:40.17 FIdfDS6L.net
>>778
プログラム内でチェックするAPIはなんでしょうか?
検索のヒントになるキーワードが分からずこんなこと聞いてすみません。
791:デフォルトの名無しさん
18/11/20 10:11:32.06 XdMfHhgY.net
GetGlyphIndex
792:デフォルトの名無しさん
18/11/20 10:20:12.32 FIdfDS6L.net
>>780
回答ありがとうございます。
GetGlyphIndexは、Win32APIには該当の関数が見当たらないようです。
何かサードパーティーのライブラリでしょうか?
793:デフォルトの名無しさん
18/11/20 10:24:32.94 jmuJusIM.net
freetype
794:デフォルトの名無しさん
18/11/20 10:26:38.56 FIdfDS6L.net
失礼しました。以下関数ですね。
GetGlyphIndices()
URLリンク(msdn.microsoft.com)
795:さまよえる蟻人間
18/11/25 16:05:13.88 1GlBO1DK.net
64-bitの環境でCreateRemoteThreadでAPIフックを試みた。フックは成功したのだが、フックの解除がかなり難しい。
LoadLibraryの戻り値を使う→だめ。
Module32First/NextのhModuleの値を使う→だめ。
DLLの内部からFreeLibraryを呼ぶ→だめ。
796:さまよえる蟻人間
18/11/25 16:09:53.05 1GlBO1DK.net
自分のプロセスの内部ではフックの解除は成功した。
しかし、他のプロセスになるとフックの解除が難しい。
797:デフォルトの名無しさん
18/11/25 16:48:41.81 ItHAeG65.net
どう駄目なのかを書かないのは単なる独り言なのでやめてくれませんかね。
クラッシュしてるんなら以下。
URLリンク(blogs.msdn.microsoft.com)
798:さまよえる蟻人間
18/11/26 21:54:54.87 owLNC83c.net
URLリンク(github.com)
1. CMakeでビルド。
2. Targetプログラムを起動して、出てきたPIDをコピーする。
3. 「Test!」ボタンを押すと、「Unhooked」のメッセージが表示される。
4. Injectorプログラムを起動して、さっきコピーしたPIDを貼り付けて、
「Do Inject!」ボタンをクリックする。「Injected!」のメッセージが表示される。
5. Targetプログラムの「Test!」ボタンを押すと、「Hooked」の
メッセージが表示される。注入成功。
6. Injectorプログラムの「Do Un-Inject!」ボタンをクリックする。
「Un-Injected!」のメッセージが表示される。
7. Targetプログラムの「Test!」ボタンを押すと、「Hooked」の
メッセージが表示される。これを「Unhooked」にしたい。
799:さまよえる蟻人間
18/11/26 22:11:22.95 vT7JWcSC.net
今回はTargetというプログラムを対象に注入しているが、任意のプログラムに対して同じように(MessageBoxA APIをフックして)動作しないといけない。
800:さまよえる蟻人間
18/11/26 22:14:42.78 vT7JWcSC.net
InjectorプログラムからFreeLibraryの呼び出しに成功すれば、フックが元に戻るはずだが、FreeLibraryが失敗しているように見える。
よろしくお願いいたします。
801:さまよえる蟻人間
18/11/26 23:16:21.86 owLNC83c.net
URLリンク(msmania.wordpress.com)
シェルコード書きくけこ?
802:さまよえる蟻人間
18/11/26 23:27:16.40 owLNC83c.net
reflectiveはブルースウィリス判定される恐れあり。他に方法はないのか。
803:デフォルトの名無しさん
18/11/27 10:52:25.21 krSRsG9l.net
なぜインジェクションするためにloadlibraryを皆したがるのか直接メモリにコード書き込めばfreelibraryする必要がないじゃないか。
804:デフォルトの名無しさん
18/11/27 11:06:20.88 cSPHWeDO.net
dllの方が圧倒的に楽だからな
805:さまよえる蟻人間
18/11/27 12:27:02.62 mpDKeVau.net
終了待ちのイベントオブジェクトと、DLLスレッドと、FreeLibraryAndExitThreadで解決した。
ありがとうございました。
806:デフォルトの名無しさん
18/12/05 11:51:42.13 BbScykOp.net
LVM_SUBITEMHITTESTの戻り値の説明に書かれている
「Returns the index of the item or subitem tested」
の意味がよくわからないんですが、
戻り値とLVHITTESTINFOのiItemが異なる値になる可能性はあるのでしょうか。
807:さまよえる蟻人間
18/12/05 13:13:14.97 6bKah/Y1.net
リストビューのサブ項目は、詳細表示のときの最初の列以外の列のテキストで使われる。
808:デフォルトの名無しさん
18/12/05 13:31:27.57 BbScykOp.net
>>796
それ自体は理解しているのですが、
戻り値がアイテムの番号ではなくサブ項目の番号になることがあるのでしょうか。
809:デフォルトの名無しさん
18/12/05 15:00:20.42 Gi6GtpHL.net
iSubItemメンバに値が入る
戻り値およびiItemは今まで通り
810:デフォルトの名無しさん
18/12/05 15:22:34.72 XTelINnE.net
カエル
811:デフォルトの名無しさん
18/12/08 08:51:15.20 lNQUDg2h.net
ReactOSはどうなった?
812:デフォルトの名無しさん
18/12/08 10:18:34.02 uWIwAxnc.net
Reactなし
813:さまよえる蟻人間
18/12/10 14:41:18.82 ILcXe1rk.net
Windows互換を目指すReactOS Part12
スレリンク(os板)
こっちのスレで活動してるよ。暇なら見てね。るんぱっぱ。
814:デフォルトの名無しさん
18/12/27 19:29:05.60 3mpeBFkx.net
wineに頼らないと動かない産廃
815:さまよえる蟻人間
18/12/27 19:45:16.53 xEoyai35.net
>>803
微軟おつ。
816:デフォルトの名無しさん
18/12/27 20:15:23.13 8bFD2Xmo.net
ほんと産廃だよな
なんでwindowsに頼らないとwin32アプリは動かないんだ
817:さまよえる蟻人間
18/12/27 20:32:52.08 xEoyai35.net
ジャバザハット
818:さまよえる蟻人間
18/12/27 21:04:33.87 e6FVPdkR.net
らんらんるー
819:デフォルトの名無しさん
19/01/01 23:36:15.57 ML8jFpoW.net
念のため聞
820:くけどさ、金毘羅とコンパイラどっちが御利益あるかわかってるよね?
821:デフォルトの名無しさん
19/01/01 23:48:35.00 okGaeCMA.net
念のために聞くけどさ、ネタとしてもここに書くつもりじゃなかったよね?
822:デフォルトの名無しさん
19/01/02 12:04:23.94 fpC2xUq7.net
キンピラごぼうの方が御利益ある
823:デフォルトの名無しさん
19/01/06 11:52:07.26 RBr8Qah/.net
ktkr
【Win】 WindowsUpdateで入れなくても良いKBリスト。2018年12月12日まで分
URLリンク(blog.livedoor.jp)
824:デフォルトの名無しさん
19/01/08 21:00:32.75 V1Q/vFq5.net
Windows(上で動作しているアプリ)が鳴らしている音の「生データへのポインタ」
を取得するWin32APIを教えてください。
825:デフォルトの名無しさん
19/01/08 21:03:39.61 V1Q/vFq5.net
812
音データが入っているバッファへのポインタです。
826:デフォルトの名無しさん
19/01/08 21:13:43.96 BVjQZPEf.net
ない
827:デフォルトの名無しさん
19/01/08 21:14:52.46 jpAVboCM.net
dllインジェクションするしかない
828:デフォルトの名無しさん
19/01/08 21:20:13.54 V1Q/vFq5.net
>>814
ありがとうございます。APIとしては用意されていないのですね。
>>815
DLLインジェクション。注射ですか。初めて聞く言葉なので少し調べてみます。
分からなくなったらまた来ます。
目的は、現在発音中の音声のスペクトラムアナライザーを作ることです。
FFT自体はできており、自アプリで鳴らしているWAVデータを処理する
ことまではできていますが、上記のことを実現したいので。
829:デフォルトの名無しさん
19/01/08 21:25:43.44 V1Q/vFq5.net
winmm.dllをフックすれば実現できそうです。
早速やってみます。
ありがとうございました!
830:デフォルトの名無しさん
19/01/09 11:55:22.51 B8oaeAR+.net
>>812
生データかどうかは知らんがミキサーの出力は取れるはず
831:デフォルトの名無しさん
19/01/12 14:22:16.93 nOTIPVuG.net
OS:Windows10
VC++ 2015
なんですが、下記ページの質問者と同じ問題にあたりました。
(LANが抜けているとNICに設定した固定IPアドレスではなく0.0.0.0が取得されてしまう)
URLリンク(social.msdn.microsoft.com)
このページの解決方法(WSAIoctl()関数にSIO_GET_INTERFACE_LIST)では、
ループバックアドレスしか取得できませんでした。
この他、GetIpAddrTable()も試しましたが同様でした。
どうすればLANケーブルが抜けていてもNICに設定した固定IPアドレスを取得できるでしょうか?
832:デフォルトの名無しさん
19/01/12 15:05:56.36 hHDH7/la.net
へ~そうなんや~。この辺サンプル作ってたから試してみよ。
と思ったらPCの裏側弄るのめんどくせw
結果、おっしゃるとおりGetAdapterInfo()でもダメだった。
けど、これってAPIレベルでは取れないんじゃないかな?
プロパティで表示されてる固定IPって、単にレジストリに登録されてるだけでは・・・
GetAdapterInfo()で取れるAdapterNameを取得し、
レジストリの
HLM\SYSTEM\ControlSet001(ここは環境による?)\Services\Tcpip\Parameters\Interfaces\{上記で取れた名前}\IPAddress
から取ればいいんじゃないかなあ。
固定IP設定してないと上記キーは存在せず、代わりにDhcpIpAddressが存在する。
なお、もうPCしまい込んだんで、LANケーブル抜いてレジストリ確認してないw
間違ってたらスマソ
833:デフォルトの名無しさん
19/01/12 15:18:01.40 uLAlds2c.net
>>820
ControlSet001の所はCurrentControlSetの方が良い
834:819
19/01/12 15:43:42.17 nOTIPVuG.net
>>820
わざわざ検証してくださってありがとうございます!
URLリンク(www.atmarkit.co.jp)
このページを見ても、LANケーブルが抜かれている状態でIPアドレスが参照できないのは然りのようですね。
レジストリにアクセスした経験が無く、何か恐いので、
0.0.0.0が取得できたらLANケーブルが抜けているか、とりあえずロクな状態じゃないということで、
エラーを出す等の対処としたい(今回のアプリではこれで十分)と思います。
ありがとうございました!
835:デフォルトの名無しさん
19/01/12 15:58:58.78 hHDH7/la.net
>>821
そうそう、それそれ
>>822
ケーブルが抜けてる時点では通信のしようがないので、
IPを取得できてしまうとむしろエラーの判定方法が面倒くさくなると思う。
だから「取得できない=エラー」でいいでしょう。
なお、レジストリからの値の取得は別に何も恐くは・・・書き込みは気を遣うけど。
836:819
19/01/12 20:54:40.03 cv9IM3HX.net
>>823
RegGetValue()で固定IPアドレスを簡単に取得できました!
レジストリアクセス、恐るるに足らず・・・!w
>だから「取得できない=エラー」でいいでしょう。
IPアドレスを取得できても、LANケーブルが接続されていないと、
その後のbind()で失敗するので、そこでエラーを出すことができます。
さらに、一定時間間隔でbind()を試みておけば、
ケーブルが接続された段階で正常な受信処理に進むことができます。
これで理想的な対応が完了しました!
ありがとうございました!。゚( ゚´∀`゚)゚。
837:デフォルトの名無しさん
19/01/13 10:39:34.53 ATVrIMyH.net
>>819
WirelessLANで固定IPのときな何が取れるのかな
838:819
19/01/14 02:01:50.42 DNWDWbUc.net
>>825
確認してみました。
・Wi-Fiオフ ⇒ 0.0.0.0
・Wi-Fiオン(AP未接続) ⇒ 0.0.0.0
・Wi-Fiオン(AP接続) ⇒ 設定した固定IPアドレス
APへの接続有無が、有線時のLANケーブル接続有無に対応する結果となりました。
もちろん、上記ケースのいずれの場合においてもレジストリからは設定された固定IPアドレスが取得できました。
839:デフォルトの名無しさん
19/01/14 10:58:45.95 ZKhJHRcZ.net
LANケーブルが刺さってて反対側の端もHUBに刺さってて
そのHUBがどこにもつながってないときはどうかな
840:デフォルトの名無しさん
19/01/14 14:56:20.16 F7cyM080.net
どこと何の通信をするのか分からないけど、インターネットが可能かどうかという判定なら
固定IPとか関係ないしな
841:819
19/01/17 02:34:20.94 5Sf+2HTN.net
>>827
確認してみました。
どこにも繋がっていないハブ(通電はしている)に繋げば
GetAdaptersInfo()で固定IPアドレスが取得できました。
要はコネクタのところのLEDがチカチカしてる状態ならOKのようです。
842:デフォルトの名無しさん
19/01/17 13:32:04.21 uUdEyVn6.net
ガキの使いやあらへんで
843:デフォルトの名無しさん
19/01/18 09:31:37.52 /JSvmQQz.net
Win32に限らない話なんだけど、「floating window」と
「top-level window」って、何らかの意味の違いってあるのだろうか?
それとも同じ?
844:デフォルトの名無しさん
19/01/18 09:57:11.80 oa0CPX6o.net
トップレベルは全部の上に対して上
フローティングは親に対して浮いてる
845:デフォルトの名無しさん
19/01/18 12:23:14.96 /JSvmQQz.net
>>832
ちなみに、TOP-MOST と TOP-LEVEL を勘違いしての発言?
846:デフォルトの名無しさん
19/01/18 12:26:49.75 /+PP0p1B.net
WS_OVERLAPPEDWINDOW
WS_OVERLAPPED
WS_POPUPWINDOW
WS_POPUP
WS_CHILDWINDOW
WS_CHILD
847:デフォルトの名無しさん
19/01/18 17:24:32.14 1LXUKdBd.net
>>831
「floating window」って非MDIウインドウであってtop-levelである必要はないんじゃね?
「top-level window」ならば必然的に「floating window」だろうけど
848:デフォルトの名無しさん
19/01/18 17:55:26.61 /JSvmQQz.net
>>835
top-level の定義は、親が存在しない (CreateWindow 実行時に NULL が指定され
ている) Window だ、って英語で書かれているよ。
MDI とか関係ないと思うんだけど。
849:デフォルトの名無しさん
19/01/18 18:42:47.29 1LXUKdBd.net
>>835
訂正
「非MDIウインドウであって」→「非MDI子ウインドウであって」ね
>>836
だから『「top-level window」ならば必然的に「floating window」』ってのはOK?
親の存在の有無にかかわらず非MDI子ウインドウならそれは「floating window」でしょ
要するに「floating window」のうち親を持たないのが「top-level window」
850:デフォルトの名無しさん
19/01/18 18:53:17.40 FdTpqa5z.net
フローティングってのはブラウザなんかでタブをドラッグすると独立できる奴ってイメージがあるけどなあ。
851:デフォルトの名無しさん
19/01/18 19:49:53.56 xKp6dC4w.net
>>838
同じ用語が別の文脈で異なるものを指すことはよくある。
このスレのタイトルを見直してごらん。
852:デフォルトの名無しさん
19/01/18 20:27:04.31 bji/uTEx.net
>>838
小さなものってイメージもあるな
853:デフォルトの名無しさん
19/01/19 01:02:57.44 2Tiw7zAQ.net
それはない
854:デフォルトの名無しさん
19/01/19 01:55:25.45 Lyax1h3i.net
どうも、Win32APIそのものの質問ではないですが質問させてください。
Win32API等のサンプルがおいてあったサイトがどうしても見つからないのです。
以前は難なく見つかったので、消失したっぽいのですが。
覚えているのは以下です
- デバイスコンテキストを利用したスプリッターのサンプルがあった(これは自分ライブラリにしたので確実)
- OLEを利用したファイルのD&Dのサンプルがあった(これも自作アプリで利用したので確実)
- 2016年3月までは存在していた(日記を見て確認)
- 確かZIP(かLZHの圧縮ファイル)がアップロードされてたような。(通常のソースとその解説ページもあった)
URLさえ判れば Internet Archive 等で何とかなるかと思うのですが・・・
855:さまよえる蟻人間
19/01/19 02:02:18.49 eJ/T1GXt.net
OLE D&Dの資料は俺様も欲しいっす。
856:デフォルトの名無しさん
19/01/19 02:55:55.30 2Tiw7zAQ.net
みおぼえあるわ
857:デフォルトの名無しさん
19/01/19 03:12:53.98 n7alGXg6.net
見たら思い出しそうではあるが
858:デフォルトの名無しさん
19/01/19 06:43:28.33 wHcHNf+g.net
これとか?
OLE DragDrop (サンプル)
URLリンク(hp.vector.co.jp)
859:842
19/01/19 09:43:29.26 Lyax1h3i.net
>>846
そのページは昨日に到達してましたが、残念ながら違います。
確かOLEのD&DのページはC++で実装されてて、
IDropSource、IDataObject、IDropTargetの共通部分である
QueryInterface、AddRef、Release関数をIUnknownImplementという名前の
クラスを作ってそれをprivate継承してから、内部ではその親クラスの関数を呼び出す事をしていました。
IUnknownImplementという名前は自分のセンスではないのでそのページからそのままコピペしたのだと思います。
以前はOLE D&Dで検索すると難なく到達出来てたので消失したと思われます。
誰かブックマークしてて今では消えてるページのURLとかでそれらしきものがないでしょうか?
860:デフォルトの名無しさん
19/01/19 10:35:14.95 S211ls6J.net
>>847
ブラウザの履歴
861:を検索したら出てこない?
862:デフォルトの名無しさん
19/01/19 11:05:14.74 E3pxDp1L.net
NGチェックで貼れないサイトがあるな
atata sakura ne jp . /com/chap5.html
atata sakura ne jp . /com/chap7.html
URLリンク(docs.microsoft.com)
URLリンク(gist.github.com)
863:デフォルトの名無しさん
19/01/19 11:10:10.62 E3pxDp1L.net
URLリンク(eternalwindows.jp)
URLリンク(rarara.cafe.coocan.jp)
864:デフォルトの名無しさん
19/01/19 11:17:26.03 ie4pzIPS.net
これ?
URLリンク(eternalwindows.jp)
865:デフォルトの名無しさん
19/01/19 18:27:05.61 a3eM+T1s.net
>>841
そう?
メインウィンドウよりでかいフローティングウィンドウなんて見たこと無いんだよな
866:デフォルトの名無しさん
19/01/20 11:49:19.90 h0iPP/nj.net
朝鮮人メンタル
867:842
19/01/20 15:59:03.36 CaWvoORx.net
>>848
最後にアクセスしたのも大分前なので。その間にPCも変わってたりしますし。
>>849 >>850 >>851
残念ながらそれらでもないですね。
今日も探していたのですが見つからずもう諦めてきた感じです。
その際に副産物で見つけた、既にサイトが無くなってたページと
そのInternet Archivesを張っておきます。
かなりこの手の情報が消失してる事が判りますね。
URLリンク(www.g-ishihara.com)
URLリンク(web.archive.org)URLリンク(www.g-ishihara.com)
URLリンク(win32lab.com)
URLリンク(web.archive.org)URLリンク(win32lab.com)
URLリンク(web.kyoto-inet.or.jp)
URLリンク(web.archive.org)URLリンク(web.kyoto-inet.or.jp)
URLリンク(ruffnex.oc.to:80)
URLリンク(web.archive.org)URLリンク(ruffnex.oc.to:80)
URLリンク(www7.plala.or.jp)
URLリンク(web.archive.org)URLリンク(www7.plala.or.jp)
868:デフォルトの名無しさん
19/01/21 07:38:46.81 5BrFA625.net
> top-level の定義は、親が存在しない (CreateWindow 実行時に NULL が指定され
> ている) Window だ、って英語で書かれているよ。
最大の突っ込みどころは根拠が「英語で書かれている」のみ
869:デフォルトの名無しさん
19/01/21 10:35:20.85 UEk4ntQa.net
>>855
The MSDN entry About Windows offers the following definition: A window that
has no parent, or whose parent is the desktop window, is called a top-level window.
URLリンク(stackoverflow.com)
A top-level window is a window that is not a child window, or has no parent window
(which is the same as having the "desktop window" as a parent).
The MSDN entry About Windows offers the following definition:
A window that has no parent, or whose parent is the desktop window, is called
a top-level window.
870:デフォルトの名無しさん
19/01/21 16:33:26.70 5BrFA625.net
>>856
引用元にCreateWindowは出てこないわけだが
871:デフォルトの名無しさん
19/01/22 12:47:25.26 /p6ZcYuK.net
no parentでそれぐらいわかるだろ
872:デフォルトの名無しさん
19/01/22 13:04:37.64 /wbMKv3O.net
PPAP
873:デフォルトの名無しさん
19/01/23 01:51:43.39 fK1BYch6.net
msdnのAbout WindowsのParent or Owner Window Handle
"A window that has a parent is called a child window. "
childでparentがnullの場合はtoplevel
"A window can own, or be owned by, another window."
ここからmsdnのWindow FeaturesのOwned Windowsに移動して
CreateWindowのhwndParentの話になる
要は、child(WS_CHILD)はparentを持ちownerを持たない
WS_POPUPやWS_OVERLAPPEDはparentを持たずownerをもつ
CreateWindowのhwndParentはparentかowner(両義性がある)
874:デフォルトの名無しさん
19/01/24 18:27:16.16 /05KE7l4
875:.net
876:デフォルトの名無しさん
19/01/27 08:58:04.40 Z8Sr7X5M.net
という訳で
CreateWindow hwndParent != 0, WS_OVERLAPPED or WS_POPUPだと
"A window that has no parent, or whose parent is the desktop window, is called
a top-level window. "
のとおり、top-levelになる
877:770
19/01/27 18:15:04.65 qHVP6gPn.net
私は“「Palatino Linotype」フォントでHDCにテキスト描画すると星印「★(U+2605)」などの記号が文字化け扱いされて四角になる”件について質問した者です。
みなさん、何の役にも立たない知ったかぶりの回答ありがとうございました。2019年1月22日にリリースされたKB4476976で無事、修正されたようです。
URLリンク(support.microsoft.com)
テキスト コントロールで、一部の記号が四角形で表示される問題を修正します。
878:デフォルトの名無しさん
19/01/27 22:30:57.69 I4R/P36r.net
>>863
Palatino Linotypeに★(U+2605)は存在しない(>>776)し、
その場合の代替フォントの扱いがてきとうだった(>>778)のが、
KB4476976で修正されただけだろ。
879:770
19/01/27 22:57:15.58 qHVP6gPn.net
>>864
知らないんなら憶測で書き込まないでくれるか?
そういう憶測の書き込み、質問者が混乱するだけで意味がないんだよ。
スレのレベルが下がるからこのスレには書き込みを控えてくれ。
URLリンク(en.wikipedia.org)
880:デフォルトの名無しさん
19/01/27 23:00:10.55 biLrTPET.net
>>863
>みなさん、何の役にも立たない知ったかぶりの回答ありがとうございました
こいつは、荒らしだろ。
無視しろ。相手をするな!
881:デフォルトの名無しさん
19/01/27 23:07:56.82 Z8Sr7X5M.net
> スレのレベルが下がる www
882:デフォルトの名無しさん
19/01/27 23:13:55.20 15mfyiko.net
>>865
そのリンク先に意味無いだろ。
荒らしたいだけか。
883:770
19/01/27 23:21:03.57 qHVP6gPn.net
>>868
リンク先は星印についての英語版Wikipedia。見ればわかるとおり、星印★は欧州で普通に使われている。
日本語のひらがなや漢字を代替フォントで痴漢できているのに、欧州でもよく使う星印★が代替フォントで痴漢できない不可解な状態がようやく解消された。