2014年11月25日火曜日

Winアプリで最大化したとき、端がはみ出て困っていた調べ物ノート


Win8の非クライアント領域サイズの調べ物
Aero のユーザーエクスペリエンスのために、 SM_CXPADDEDBORDER というものが増えたらしい。
…なぜ、SM_CXBORDER 系のままじゃダメだったのだろうか。

2014年11月9日日曜日

csharp の xxxx.resources ファイルの読み書きができないか調べたノート

csharp のリソースを編集する必要が出てきて、あれこれ調べたときのノート。
ResourceReader は、未知のリソースを全て列挙するような使い方らしい。
ResourceManager は、既知のリソースの該当データを読み込む使い方らしい。

普通は使わないですわねぇ。csc とか ResourceManager が裏で上記のようなことをしているっぽい。
もうちょい調べもの。

2014年9月19日金曜日

variadic template と COM の QueryInterface

今のお仕事が、ATL/COM と格闘なのだけど、ATLを使いこなせない雑魚はのアカウントはこちらです。
それはともかくQueryInterface をコツコツ記述していたら、 variadic template で QueryInterface が楽に実装できないかと思ったメモ。
void にマッチしたときのコードが、MSVCでしか動かないコードな気がするけれども、__uuidof の時点で専用コードなので諦めた次第。
本当は、継承をたどってほしいのだけれども、やり方が思いつかない。
IID 比較の if 文が並ぶのを防げるだけでもまあいいのかなぁ。
黙ってATLを調べればいいのだろうけど、資料が見当たらなさが厳しすぎるのです。
BOOST.PP の方が建設的な気もしたけど、Libを追加する気力もなかったので。 Waveの方がいいのかな?

2014年8月25日月曜日

nuget と dshow-baseclasses でごちゃごちゃと。

dshow でおなじみの baseclasses 用の nuget のための autopkg(CoApp, c++版の nuget パッケージ用設定ファイル) を書いたノート。

  1. windows sdk 辺りから dshow/baseclasses フォルダを作業フォルダにコピー。
  2. vs2013 で開いて、設定の微調整。
    1. SolutionDir と 中間Dir を普通にプロジェクトを作成した通りに修正。
      • Win32, 出力Directory: $(SolutionDir)$(Configuration)\
      • Win32, 中間Directory: $(Configuration)\
      • x64, 出力Directory: :$(SolutionDir)$(Platform)\$(Configuration)\
      • x64, 中間Directory: $(Platform)\$(Configuration)\
      • 出力 ファイル(lib) を、自分の趣味で、$(OutDir)$(TargetName)$(TargetExt) に変更。
      • PDB を自分の趣味で、$(OutDir)\$(ProjectName).pdb に変更。
    2. TimeKillSynchronousFlagAvailable 関数で、 エラーでてるから、IsWindowsXPOrGreater 関数に直す。
      このとき, mbcs は消した方が混乱しない気がする。
  3. win32/x64 でビルド。
  4. 下のファイル(BaseClasses.autopkg)を作業フォルダにコピー。
  5. PowerShell 起動して、上記作業フォルダに移動。
  6. Write-NuGetPackage .\BaseClasses.autopkg
    を実行すると、警告が出るけど、パッケージが作れる。
自分のところのローカル nuget サーバーに出来上がったnupkgファイルを置けばいいはず。

2014年5月12日月曜日

Visual Studio のデバッグ用環境変数の設定の仕方メモ

visual studio で、デバッグ時だけ特定の環境変数を設定したいとき。
例えば以下のように書く。$(XXXX) だとダメらしい。

* "PCL_ROOT"という環境変数があり、それをPATHにデバッグ時だけ追加したい。
以下の文字を、プロジェクトプロパティの、「デバッグ」→「環境」に追加する。

PATH=%PATH%;%PCL_ROOT%\bin\;%PCL_ROOT%\3rdParty\FLANN\bin\;%PCL_ROOT%\3rdParty\VTK\bin\

このダイアログに以下の用に設定
その気になれば、環境変数をなんでも設定できるみたい。

 追記:2019/07/10
 久しぶりにこれを試したら設定されず。。。@vs2019
「親またはプロジェクトの既定値から継承」を有効にすると、なんか %PATH%の値がその既定値で上書きされているらしい。
 なので、設定するときはこのチェックを必ず外すように。