高 DPI – 3
HVTR-BCTX3 , AVHD-VR2.0 追加
HVTR-BCTX3 と AVHD-VR2.0 を追加.
TV との接続ではなく,PC モニタ(21 インチ HDMI 接続)と接続.
特に問題なく視聴可能.
T90Chi に「テレリモ」と「テレプレ」をインストール.
DBR-T460 に録画しておいたビデオが再生できることを確認.
Wi-Fi 環境のせい?か,時々途切れることがある.
リンク速度は 100 Mbps あるが,受信速度が 10 Mbps を下回ると途切れるみたい.
MBP の VirtualBox の Win 10 で試すと,
「テレリモ」はインストールでき操作もできるが,「テレプレ」はインストールできなかった.
2016/06/23
昨日ちょっとわからなかったのが,DBR-T460 に録画したものの再生.
「ホーム」-「録画リスト」-「ホームネットワーク」で「DBR-T460」が表示される.
高 DPI – 2
CMetaFileDC::CreateEnhanced の lpBounds を指定していたが,うまくなかった様で NULL に.
また,これとは異なるが再生デバイスが異なる場合うまくなかったので,
ENHMETAHEADER の rclFrame ではなく rclBounds に変更.
何を参考にしたのか不明だが,幅を求めるのに TEXTMETRIC だけを使用していた.幾つかあり.
CComboBox::SetDroppedWidth
CListBox::SetHorizontalExtent
CDC::GetTextExtent
WD Cloud その後
昨年の秋に追加した WD Cloud .
最近,気温が高くなってきて…
気温 + 25 ℃くらいになる様なので,扇風機で冷やしている.
ファンレスの場合これが心配.
別の WSS の NAS は,ファンがうるさくなるが 50 ℃になることはなかったと思う.
PC の D ドライブの 64 GB のファイルをコピーして,25 分位(42 MB).
ファイルをバックアップしていて,exe など数 MB のファイルの場合,極端に遅くなることがある.
Virtual PC の VHD を WD Cloud に置いての動作.
「休止状態」にする時,うまく移行できない時が何度かあった.
速度的にはローカルの HDD などと比べても遜色ない様に感じる.
高 DPI
高 DPI についての情報
MSDN 高 DPI アプリケーションの記述方法
MSDN ユーザー インターフェイス: 高 DPI 対応
blogs.msdn アプリの高 DPI 対応について
PDC 2008 高 DPI 対応の Win32 アプリケーションを記述する
MSDN magazine Windows 8.1 用の高 DPI アプリケーションを作成する
_MBCS _tcspbrk
MBCS.exe で _tcspbrk を使用していて,ファイルパスの 0x5c の認識がうまくなかった.
_tcs… の関数を MBCS exe としてデバッガで見てみると
30: LPTSTR result1 = _tcschr (_T(“Test”),_T(‘s’)) ;
0040238A push 73h
0040238C push offset string “Test” (0048b0b0)
00402391 call @ILT+985(__tcschr) (004013de)
00402396 add esp,8
00402399 mov dword ptr [ebp-10h],eax
31: LPTSTR result2 = _tcsstr (_T(“Test”),_T(“sp”)) ;
0040239C push offset string “sp” (0048b0ac)
004023A1 push offset string “Test” (0048b0b0)
004023A6 call strstr (0042d170)
004023AB add esp,8
004023AE mov dword ptr [ebp-14h],eax
32: LPTSTR result3 = _tcspbrk(_T(“Test”),_T(“sp”)) ;
004023B1 push offset string “sp” (0048b0ac)
004023B6 push offset string “Test” (0048b0b0)
004023BB call strpbrk (0042d130)
004023C0 add esp,8
004023C3 mov dword ptr [ebp-18h],eax
33: size_t result4 = _tcsspn (_T(“Test”),_T(“sp”)) ;
004023C6 push offset string “sp” (0048b0ac)
004023CB push offset string “Test” (0048b0b0)
004023D0 call @ILT+1260(__tcsspn) (004014f1)
004023D5 add esp,8
004023D8 mov dword ptr [ebp-1Ch],eax
Afx.h をインクルードすると?
576: int CString::FindOneOf(LPCTSTR lpszCharSet) const
…
579: LPTSTR lpsz = _tcspbrk(m_pchData, lpszCharSet);
5F42E312 mov edx,dword ptr [lpszCharSet]
5F42E315 push edx
5F42E316 mov eax,dword ptr [this]
5F42E319 mov ecx,dword ptr [eax]
5F42E31B push ecx
5F42E31C call _tcspbrk (5f4012b0)
5F42E321 add esp,8
5F42E324 mov dword ptr [lpsz],eax
35: LPTSTR result1 = _tcschr (_T(“Test”),_T(‘s’)) ;
00401D14 push 73h
00401D16 push offset string “Test” (004230b0)
00401D1B call @ILT+485(__tcschr) (004011ea)
00401D20 add esp,8
00401D23 mov dword ptr [ebp-14h],eax
36: LPTSTR result2 = _tcsstr (_T(“Test”),_T(“sp”)) ;
00401D26 mov esi,esp
00401D28 push offset string “sp” (004230ac)
00401D2D push offset string “Test” (004230b0)
00401D32 call dword ptr [__imp__strstr (00426668)]
00401D38 add esp,8
00401D3B cmp esi,esp
00401D3D call _chkesp (0040e246)
00401D42 mov dword ptr [ebp-18h],eax
37: LPTSTR result3 = _tcspbrk(_T(“Test”),_T(“sp”)) ;
00401D45 mov esi,esp
00401D47 push offset string “sp” (004230ac)
00401D4C push offset string “Test” (004230b0)
00401D51 call dword ptr [__imp__strpbrk (0042666c)]
00401D57 add esp,8
00401D5A cmp esi,esp
00401D5C call _chkesp (0040e246)
00401D61 mov dword ptr [ebp-1Ch],eax
38: size_t result4 = _tcsspn (_T(“Test”),_T(“sp”)) ;
00401D64 push offset string “sp” (004230ac)
00401D69 push offset string “Test” (004230b0)
00401D6E call @ILT+655(__tcsspn) (00401294)
00401D73 add esp,8
00401D76 mov dword ptr [ebp-20h],eax
VC 11 以降の ODMenu
自前の UndoRedo テンプレートで,VC 11 以降メニューの表示が更新されなくなった.
対応は,アプリケーションクラスのヘッダで,ODMRoot.hxx のインクルードを追加すれば良い.
これとは別の動的なメニューも正しく表示できてないが,こちらはまだ原因を特定できてない.
CCmdUI::SetText
コンストラクタで static
次の様なクラスで,VC 14 ではコンストラクタ内の static を呼出した段階で止まってしまう?
VC 12 まででは OK .
class T_static {
public:
T_static () ;
} ;
T_static::T_static ()
{
{
static T_static root ;
}
std::tout << _T("T_static") << std::endl ;
}
コンストラクタの初期化動作を次の様に変更.
T_static::T_static ()
{
static bool Initialized = false ;
if (!Initialized) {
Initialized = true ;
static T_static root ;
}
std::tout << _T("T_static") << std::endl ;
}
VC 6 コンソール AP を VC 11 で…
VC 6 コンソール AP を順にアップしたプロジェクトを VC 11 でビルドすると,
—— すべてのリビルド開始: プロジェクト: T_DbgCls, 構成: Debug Win32 ——
T_DbgCls.cpp
_WIN32_WINNT not defined. Defaulting to _WIN32_WINNT_MAXVER (see WinSDKVer.h)
c:\program files (x86)\microsoft sdks\windows\v7.1a\include\sal_supp.h(57):
warning C4005: ‘__useHeader’ : マクロが再定義されました。
c:\program files (x86)\microsoft visual studio 11.0\vc\include\sal.h(2872) :
’__useHeader’ の前の定義を確認してください
c:\program files (x86)\microsoft sdks\windows\v7.1a\include\specstrings_supp.h(77):
warning C4005: ‘__on_failure’ : マクロが再定義されました。
c:\program files (x86)\microsoft visual studio 11.0\vc\include\sal.h(2882) :
’__on_failure’ の前の定義を確認してください
c:\program files (x86)\microsoft visual studio 11.0\vc\atlmfc\include\atlcore.h(638):
error C2039: ‘SetDefaultDllDirectories’ : ‘`global namespace” のメンバーではありません。
c:\program files (x86)\microsoft visual studio 11.0\vc\atlmfc\include\atlcore.h(638):
error C2065: ‘SetDefaultDllDirectories’ : 定義されていない識別子です。
c:\program files (x86)\microsoft visual studio 11.0\vc\atlmfc\include\atlcore.h(640):
error C2065: ‘LOAD_LIBRARY_SEARCH_SYSTEM32’ : 定義されていない識別子です。
========== すべてリビルド: 0 正常終了、1 失敗、0 スキップ ==========
プロジェクト設定の,「プラットフォームツールセット」を「Visual Studio 2012 (v110) 」とすれば通る.
さらに,VC 12 では,
—— ビルド開始: プロジェクト:T_DbgCls, 構成:Debug Win32 ——
T_DbgCls.obj : warning LNK4075: /EDITANDCONTINUE は /OPT:LBR の指定によって無視されます。
LINK : fatal error LNK1104: ファイル ‘mfc120d.lib’ を開くことができません。
========== ビルド: 0 正常終了、1 失敗、0 更新不要、0 スキップ ==========
Win 10 10586 3D Builder
3MF 形式ではいたデータが,10586 にしてから開けないでいた.エラー : 0x80004005
model タグに,xmlns 属性が必要になった?
<model unit= "millimeter " xmlns="http://schemas.microsoft.com/3dmanufacturing/core/2015/02 " >
ply だと,
3MF でのテクスチャは未だ.
2016/05/02 テクスチャなどの大文字,小文字も区別される?また,path も / から正しく指定する必要がある.
テクスチャの場合,colorid の指定が object の属性では効果がなくなった?
triangle 内での指定が必要?
::SaveUTF8
xml などを保存する時, ::SaveUTF8(outName, outStr) ; の様にしていた.
動作としてはそれ程問題なかったように思うが,32 ビット exe で対象のデータが 50 MB 位を超えるとメモリ不足に…
例えば 100 MB の xml データの場合,
もとのデータの Xml_E で 200 M,tstring の outStr でも 200 M.
保存する前に,UNICODE から,UTF8 に変換するために 100 M.
200 M の連続領域が確保できないことが多いみたい.
::SaveUTF8 で,v_tstring (文字列の配列)形式のものを作成.
bool SaveUTF8 (LPCTSTR pathName,const v_tstring& strAry)
{
FILE* ofp = ::Open_File(pathName,_T(“wb”)) ;
for (size_t index=0 ; index<strAry.size() ; index++) {
tstring str = strAry[index] + _T(“\r\n”) ;
std::string u8Str = ::To_UTF8(str.c_str()) ;
v_char v_chr = ::To_v_char(u8Str) ;
::fwrite(&v_chr[0],sizeof(char),v_chr.size(),ofp) ;
}
::fclose(ofp) ;
return true ;
}
UNICODE から UTF8 への変換時間などはそれほど気にならない.100 MB のファイル 800,000 行で 10 秒程度.
幾つかの形式で保存した時のファイルサイズ
OBJ | AMF | DAE | X3D | PLY | AC | |
---|---|---|---|---|---|---|
サイズ MB | 111 | 368 | 85 | 29 | 191 | 57 |
比率 | 1.00 | 3.31 | 0.76 | 0.26 | 1.71 | 0.51 |
VC 6 Release inline
次の様な呼出しで,Release ビルドでうまく動作しないことがあった.
…\PntFnc\TCrossL\TCrossLD.cpp 2 円の交点のエラー時の動作
Vd2 cp1 = ::get_point_on_line (l1c,l2c,l1r) ;
デバッグ版では意図した動作となる.
inline Vd2 get_point_on_line ( const Vd2& ls, const Vd2& le, const double d )
{
if (ls == le) { return ls ; }
Vd2 unit = (le-ls).Normalized() ;
Vd2 pos = ls + unit * d ;
return pos ;
}
ls と le を比較している部分で抜けてしまっている?
VC 7 では OK.
よくわからないので,間接的に呼出す様に変更.
inline Vd2 get_point_on_line(const Vd2& ls,const Vd2& le,const double d) { return get_point_on_line_(ls,le,d); }
内積で誤差?
以前書いたコードで次の様にしていた.
デバッグ版では単位ベクトルにすると誤差が大きい様に感じたが,リリース版ではそれ程でもない?
double Naiseki (const P3& p1,const P3& p2) { // → → → → // a・b=|a||b|cosθ // a.x*b.x+a.y*b.y+a.z*b.z=sqrt(ax*ax+ay*ay+az*az)*sqrt(bx*bx+by*by+bz*bz)*cosθ // ... a,bのベクトルが単位ベクトルの時 // sqrt(ax...) と sqrt(bx...) は 1 // a.x*b.x+a.y*b.y+a.z*b.z=1*1*cosθ // a.x*b.x+a.y*b.y+a.z*b.z=cosθ // → → // a・b=ax*bx+ay*by+az*bz P3 p1u = p1.Uni() ; P3 p2u = p2.Uni() ; // return (p1u.x*p2u.x+p1u.y*p2u.y+p1u.z*p2u.z) ; // 誤差の補正 double dp = p1u.x*p2u.x+p1u.y*p2u.y+p1u.z*p2u.z ; if (dp<-1 || 1<dp) { if (dp < -1.) { dp = -1. ; } if (dp > 1.) { dp = 1. ; } } return dp ; } P3 Gaiseki (const P3& p1,const P3& p2) { // → → → → // a×b=|a||b|sinθ・c // → → // a×b=(ay*bz-az*by,az*bx-ax*bz,ax*by-ay*bx) P3 pt ; pt.x = p1.y * p2.z - p1.z * p2.y ; pt.y = p1.z * p2.x - p1.x * p2.z ; pt.z = p1.x * p2.y - p1.y * p2.x ; return pt ; }
VC2015
MSDN にあった C++ を使った “hello world” アプリの作成 (Windows 10) をやっていて,…
実行すると,
—————————
Microsoft Visual Studio
—————————
Windows ストア アプリ ‘5a7750b3-af94-47d7-a064-b9adc49f8813_7r65t4tynye04!App’ をアクティブにできません。アクティベーション要求がエラー ‘Windows はターゲット アプリケーションと通信できませんでした。これは通常、ターゲット アプリケーションのプロセスが中断されたことを示します。詳細については、[出力] ウィンドウ ([デバッグ]->[ウィンドウ]->[出力]) の [デバッグ] ペインで確認できます’ で失敗しました。
この問題のトラブルシューティングについては、ヘルプを参照してください。
—————————
OK ヘルプ
—————————
リビルドしたら通るようになった?が,今度は
—————————
Microsoft Visual Studio
—————————
Windows ストア アプリ ‘5a7750b3-af94-47d7-a064-b9adc49f8813_7r65t4tynye04!App’ をアクティブにできません。アクティベーション要求がエラー ‘アプリは必要な時刻に開始されませんでした’ で失敗しました。
この問題のトラブルシューティングについては、ヘルプを参照してください。
—————————
OK ヘルプ
—————————
全く実行されてないわけではないので,もっと別の所に原因があるのかもしれない.
VB のプロジェクトを生成して,ビルド,実行すると
—————————
Microsoft Visual Studio
—————————
Windows ストア アプリ ‘b4f551ca-330f-478f-ab2e-c23232b2918c_7r65t4tynye04!App’ をアクティブにできません。アクティベーション要求がエラー ‘アプリは開始されませんでした’ で失敗しました。
この問題のトラブルシューティングについては、ヘルプを参照してください。
—————————
OK ヘルプ
—————————
T90Chi – 4
スリープ後の復帰で,画面が真っ黒になる現象は「ctrl」+「alt」+「delete」で回避できることがわかった.
が,その後現象の発生頻度が減ったように感じる.
それとは別の現象として,再起動した様な形跡が増えた?
イベントビューアを見ると,
SD カードを追加したので,幾つかを「ジャンクション」を使用して SD カードで動作する様に変更.
mklink /j Temp D:\Temp\C_Temp
2016/02/14
Win 10 付属のメールで変な現象.
意図せず,受信トレイなどに入っているメールが順に削除されてしまった.ウィルスにやられたような動作.
このメールソフトではメールを削除すると,サーバからも削除される?
その設定を変更可能かどうかなどは不明.
T90Chi – 2
しばらく使っての感想.
VS 2013 と nStyler をインストール.
スピードは思ったより良い.
メモリが 2G なのでちょっと厳しい?
キーボードとドッキングした状態では,タスクバーのタッチが難しいので上に.
LAN 上の他の PC の参照が不安定?
IP アドレスでは接続可能だが \\WDCloud では接続できないことが多い?
ピンチ操作が MK_CONTROL+WM_MOUSEWHEEL となるようであるが,作成した AP で意図した動作と逆.
ブラウザによるが,タッチ操作ではうまく動作しない.
threejs loder vtk
マウスと USB Hub を追加.
原因が不明だが,Bluetooth の設定が OFF になることが何度かあり.
USB Hub に DVD ドライブを接続した時,最初認識したが途中から見えなくなった.
T90Chi 本体のバッテリーが減っていたせいか?
充電後再接続して CD の再生まで確認.
USB メモリの読み込みも確認.
USB Hub を 107SH と X02T に接続.
USB マウスを接続して動作することを確認.X02T では,USB メモリの動作も確認.
T90Chi 追加
一番最初のセットアップ時,キーボードの認識をスキップしたらうまく接続できなくなった.
と言うか,どうやって接続するかがわからなかった.
単にペアリングする時のパスコードを画面とキーボードで同じにすれば良い様で,両方に 0 を入力.
また,この時 Wi-Fi が不安定だったが Bluetooth と干渉していたのか?
ちゃんと接続できたら,入力は快適になった.
タッチしての操作は,まだ慣れないせいかマウスが欲しいと感じる.
スピードは mac 上の仮想 PC と同じ程度か?
ディスクの空きは 40 GB 位.
この記事も T90Chi で書いてみた.