タグ

windowsとc++に関するMonMonMonのブックマーク (6)

  • Windows 10のウィンドウキャプチャAPI - Qiita

    Windows.Graphics.Capture 自分のプロセスから参照できるウィンドウだけでなく、OS上で表示されている他のプロセスのウィンドウの内容をキャプチャしたい場合、従来であれば太古のGDI関数(もはやまともに動くか怪しい)や、DwmGetDxSharedSurface(隠しAPIなのでお行儀が悪い上にDWM内で同期が取れていないのか取得できるイメージが中途半端)などが利用されてきたようですが、Windows 10 version 1803でキャプチャ専用のAPIがWinRTに用意されました。 Screen capture Starting in Windows 10, version 1803, the Windows.Graphics.Capture namespace provides APIs to acquire frames from a display or app

    Windows 10のウィンドウキャプチャAPI - Qiita
  • C++ から Windows Graphics Capture API を利用する方法について調べてみた - 凹みTips

    はじめに i_saint さんの記事で Windows 10 April 2018 Update (1803) より Windows Graphics Capture という API が追加されたのを最近知りました。 qiita.com docs.microsoft.com ざっくり言えば HWND や HMONITOR から直接 ID3D11Texture2D を引っ張ってこれるものになっています。 私は Unity 向けに uWindowCapture という各ウィンドウを管理・キャプチャして Unity 上で簡単に使えるようにするアセットを作成しているのですが、ここでは BitBlt や PrintWindow といった Win32 API を使っており、一度キャプチャした結果を CPU 側で扱って GPU 側へアップロードする関係上、パフォーマンスがなかなかに厳しいものになっていま

    C++ から Windows Graphics Capture API を利用する方法について調べてみた - 凹みTips
  • 非同期アレコレ - Qiita

    前回の記事の続きというか、補足というか、蛇足というか。 あれから 結論としてstd::mutex使おう、と勝手に放り投げたのですが 速度的にメチャクチャ遅くて、ちょっと使い物にならないなぁという結果になったので コメント頂いた内容など含めて、速度を検証してみました 単純な排他制御コストの比較なので、他のところで早くしろっていうツッコミは無しよ? (例:OpenMPのリダクション指示節とか) ※追記:std::mutexが異常に遅いというのは、VisualStudio2013の問題だったようです。 テストプログラム 概要 int型のグローバル変数に加算処理をして、最終的な変数値を確認するという 色気も何もあったもんじゃないテストを実行して、処理時間と演算結果を確認します 排他制御については、前回の記事のコメントを参考にさせて頂いてます。 環境 Windows 7 (64bit) 上で確認 開

    非同期アレコレ - Qiita
  • VC++ 2015で作ったDLLをWindows XPで動かすと最悪死ぬ - イグトランスの頭の中

    Visual C++ 2015でコンパイルしたプログラムを試していたところ、Windows XPでプロセスが問答無用で死ぬ現象に見舞われました。いろいろ試してみた結果、およそ原因・回避方法が分かりましたので、ここに書き記します。 条件・症状 次の条件をすべて満たす場合に注意が必要です。 Visual C++ 2015でDLLをビルドする そのDLLはLoadLibraryなどで実行時に読み込まれる Windows XPで実行される このとき、次の新機能のいずれも使ってはなりません。死にます。 thread_local 関数内でのstatic変数 死ぬというのは、プロセスの強制終了のことです。 なお、関数内でのstatic変数のVC++ 2015の新機能とは、初期化処理が複数スレッド対応(コンパイラが適切に排他制御するコードを出力する)になるという、C++11仕様への対応です。参考: sta

    VC++ 2015で作ったDLLをWindows XPで動かすと最悪死ぬ - イグトランスの頭の中
  • Windows 10 のアクティブウィンドウを別の仮想デスクトップに飛ばすアプリを作ったよ - tmytのらくがき

    Windows 10 でアクティブなウィンドウを別の仮想デスクトップに飛ばすアプリが完成したのでご報告します http://t.co/bOy8LoDFbU— ぐらばく (@Grabacr07) 2015, 9月 14 このアプリ、「作りかけたけど XXX が原因でダメだった」というブログを書いたら、それを見たつもりんが「できるんじゃね?」ってなってそのまま 2 人で共闘して完成したので情報発信大事ですね— ぐらばく (@Grabacr07) 2015, 9月 14 作ったよ、と言ってもほとんどは@Grabacr07 が作ったので僕がやったのはC++&Win32でいろいろするライブラリと、それをCLRに接続するラッパー周りを作っただけです。 なにしてるの このアプリ作る上で問題となったのが先のブログエントリでも言及されているとおり 他プロセスのウィンドウは、他の仮想デスクトップに移動させるこ

    Windows 10 のアクティブウィンドウを別の仮想デスクトップに飛ばすアプリを作ったよ - tmytのらくがき
  • _T("")マクロだのL""マクロだのLPCTSTRだのの世界一詳しい解説

    _T("")マクロについて 初心者の方へ 下の説明を読むのが面倒なら次のように設定を変更すれば わずらわしい思いはしなくてもよくなります。 また、下の設定をすればLPCTSTRとか訳の分からないものはconst char *と同じ意味になり、 自分でコードを書く時にも_T("") などと書く必要もなくなります。 VisualStudio2005での設定例(2003や2008でもほとんど同じです): プロジェクト名で右クリックしてプロパティを選択 (ここでは太文字でcppTestと書いてあるやつ) 左側のツリーで構成プロパティ→全般を選択するとこのようなものが出てくる。 デフォルトでは文字セットのところが『Unicode 文字セットを使用する』となっているはず。 これを『マルチバイト文字セットを使用する』に変更してOKを押すと設定完了。 上級者向けの説明 おそらくVisual Studio2

  • 1