2014年11月25日火曜日
Winアプリで最大化したとき、端がはみ出て困っていた調べ物ノート
Win8の非クライアント領域サイズの調べ物
Aero のユーザーエクスペリエンスのために、 SM_CXPADDEDBORDER というものが増えたらしい。
…なぜ、SM_CXBORDER 系のままじゃダメだったのだろうか。
2014年11月9日日曜日
csharp の xxxx.resources ファイルの読み書きができないか調べたノート
csharp のリソースを編集する必要が出てきて、あれこれ調べたときのノート。
ResourceReader は、未知のリソースを全て列挙するような使い方らしい。
ResourceManager は、既知のリソースの該当データを読み込む使い方らしい。
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の方がいいのかな?
それはともかく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 パッケージ用設定ファイル) を書いたノート。
- windows sdk 辺りから dshow/baseclasses フォルダを作業フォルダにコピー。
- vs2013 で開いて、設定の微調整。
- 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 に変更。
- TimeKillSynchronousFlagAvailable 関数で、 エラーでてるから、IsWindowsXPOrGreater 関数に直す。
このとき, mbcs は消した方が混乱しない気がする。 - win32/x64 でビルド。
- 下のファイル(BaseClasses.autopkg)を作業フォルダにコピー。
- PowerShell 起動して、上記作業フォルダに移動。
- Write-NuGetPackage .\BaseClasses.autopkg
を実行すると、警告が出るけど、パッケージが作れる。
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%の値がその既定値で上書きされているらしい。
なので、設定するときはこのチェックを必ず外すように。
例えば以下のように書く。$(XXXX) だとダメらしい。
* "PCL_ROOT"という環境変数があり、それをPATHにデバッグ時だけ追加したい。
以下の文字を、プロジェクトプロパティの、「デバッグ」→「環境」に追加する。
PATH=%PATH%;%PCL_ROOT%\bin\;%PCL_ROOT%\3rdParty\FLANN\bin\;%PCL_ROOT%\3rdParty\VTK\bin\
このダイアログに以下の用に設定
追記:2019/07/10
久しぶりにこれを試したら設定されず。。。@vs2019
「親またはプロジェクトの既定値から継承」を有効にすると、なんか %PATH%の値がその既定値で上書きされているらしい。
なので、設定するときはこのチェックを必ず外すように。