ADM 4.1.0.RLQ1 VirtulBox …
時々ある ことなので驚きはしないが…
ADM 4.1.0.RLQ1 にアップデートして VirtualBox の仮想マシンがうまく起動しなくなった.
Failed to open/create the internal network ‘HostInterfaceNetworking-eth0’ (VERR_SUPDRV_COMPONENT_NOT_FOUND). Failed to attach the network LUN (VERR_SUPDRV_COMPONENT_NOT_FOUND). One of the kernel modules was not successfully loaded. Make sure that VirtualBox is correctly installed, and if you are using EFI Secure Boot that the modules are signed if necessary in the right way for your host system. Then try to recompile and reload the kernel modules by executing ‘/sbin/vboxconfig’ as root (VERR_SUPDRV_COMPONENT_NOT_FOUND)
設定があるのかもしれないが,検索してもちょっとわからない.
最近の ADM アップデートはあまり安定していない気がする.
それとも,数日仮想マシンを起動していなかったので,どこか弄ってしまったか?
Windows シンボリック リンク
何年か前から VC のビルドでの出力先を C:\Temp 以下に指定している.
c:\Temp\i_Tools\i3DV\Release.060
VC 7 以降では次の様な感じ.
c:\Temp\i_Tools\$(ProjectName)\$(ConfigurationName).070
c:\Temp\i_Tools\$(ProjectName)\$(Configuration).143\$(Platform)\
これで,どの環境でビルドしてもそれなりに動作する様にしている.
共通のソースは NAS でドライブとして割り当て,プロジェクトはローカルや NAS .
また,出来上がった exe は CopyNewF.exe でコピーしている.
Win10 に VC 6 を入れているが,メイン環境に SP6 が当てられない.仮想環境ではうまく入ったマシンもある.
単体テストの範囲ではメイン環境の VC 6 RTM で問題ないが,リリースビルドでうまくない現象がある.
VS 6 RTM bug … ?
これらのことがあり VC 6 でビルドした結果を,メイン PC の C:\Temp\ 以下にまとめられないかと…
また,近いうちに PC が新しく入る予定だが,SSD の容量がそれほど多くないのでそれを含めてのもの.
仮想環境でホスト PC の \\Z170S0\C_Temp を o:\ として割り当てている.
次の様な指定で,仮想環境で o:\ を C:\Temp としてのシンボリック リンクを作成.
mklink /D c:\Temp o:\
これで意図した通りに動作する様にはなったが,デバッグ版では互換性がないみたいでうまくテストできない.
結局ホストの追加のドライブを指定することに.
mklink /D c:\Temp e:\C_Temp.VC6
これで暫く使ってみる.
今までショートカット lnk を使ってきたが,置き換えができそうな所がありテスト的に設定.
D:\Tmp_link>mklink /D .\D2_i_u \\DS220\web\i_Tools\upload\share
.\D2_i_u <<===>> \\DS220\web\i_Tools\upload\share のシンボリック リンクが作成されました
D:\Tmp_link>mklink /D .\D2_T_u \\DS220\web\Test\upload
.\D2_T_u <<===>> \\DS220\web\Test\upload のシンボリック リンクが作成されました
D:\Tmp_link>mklink /D .\D1_i_u \\DS116\web\i_Tools\upload\share
.\D1_i_u <<===>> \\DS116\web\i_Tools\upload\share のシンボリック リンクが作成されました
D:\Tmp_link>mklink /D .\D1_T_u \\DS116\web\Test\upload
.\D1_T_u <<===>> \\DS116\web\Test\upload のシンボリック リンクが作成されました
D:\Tmp_link>dir
ドライブ D のボリューム ラベルは ボリューム です
ボリューム シリアル番号は B630-F57A です
D:\Tmp_link のディレクトリ
2022/09/28 17:31 <DIR> .
2022/09/28 17:31 <DIR> ..
2022/09/28 17:30 <SYMLINKD> D1_i_u [\\DS116\web\i_Tools\upload\share]
2022/09/28 17:31 <SYMLINKD> D1_T_u [\\DS116\web\Test\upload]
2022/09/28 17:30 <SYMLINKD> D2_i_u [\\DS220\web\i_Tools\upload\share]
2022/09/28 17:30 <SYMLINKD> D2_T_u [\\DS220\web\Test\upload]
0 個のファイル 0 バイト
6 個のディレクトリ 435,247,796,224 バイトの空き領域
D:\Tmp_link>
エクスプローラでは次の様に見える.
ジャンクション名をクリックした時の動作が,微妙に異なることがある様に感じる.
リンク先に切替わったり,そのまま展開されたりする.
ある程度意図したことができる様なので,これもこのまま使用してみる.
2022/10/21
新しい Win11 PC の C ドライブを圧迫しないため,次の様にして NAS 上に置くことにした.
mklink /D C:\Temp \\AS5202T\Temp\C_Temp
NAS の再起動などを意識する必要はあるが,速度なども含め,今の所問題はなさそう.
それでちょっとした違いを見つけた.
MFC 14 以降の CCheckListBox で…
何年か前,幾つかのプロジェクトを VC 14 に対応しようとして CCheckListBox の表示がうまくなかった.
CCheckListBox を使っているプロジェクトは限られているので,~MFC 12 にしていた.
今回 いろいろとあり VC 2017 ~ 2022 に対応することに.
MFC が更新されているのかわからないが,以前のものより少し動作は良くなっている?
相変わらず,表示直後にずれているのと,高さが MFC 12 以前に比べ詰まっている.
「MFC CCheckListBox ずれる」で検索すると,OnInitDialog() などで 高さを指定 すれば良いとあった.
{
CRect rect ;
m_CtrlSExtDllNow.GetWindowRect(&rect) ; // 他のコントロールの高さを利用
m_CtrlListSExt.SetItemHeight(0,rect.Height()) ;
}
面倒だったのでエディットボックスの高さを利用している.
これで MFC 12 などで作成したものと同じ様な表示になった.
ADM DataSync Center
久しぶりに ASUSTOR NAS 上で C++ のコードを試そうと思い見ていると…
共通のコードが古い.丁度 1 年前の更新で止まっている.
他の QNAP NAS などは,正しく更新されている.
ある程度区切りの良い状態で「Google ドライブ」に更新して,それぞれの NAS の同期機能でコピーしている.
この様にすることで,自動バックアップと NAS 上の共通コードの更新を行っている.
QNAP NAS HBS 3
今まで ASUSTOR NAS では「DataSync for GoogleDrive」を使用してきた.
が,起動しようとすると「ロード中」となって,表示が変わらなくなりうまく動作しない.
App Central を見ても,なさそう.DataSync Center になったみたい.
「DataSync Center」のインストール.
「DataSync Center 」を起動して「Googleドライブ」に「チェック」.
「同期設定をインポートします」にカーソルを合わせると,
「Googleドライブ から NAS へ」を指定.
同期するパスの指定.ここでは Public なども指定できるので,Home への依存はなくなったみたい.
あとはそのまま受け入れると同期が始まる.
同期には 4 時間程度かかった.
また,Synology NAS と同様で,SmpTxt.zip などはコピーされない.
原因は Release.060/SmpTxt.exe によるもの.
このあと,これらのファイルを更新予定.
error LNK2019 : … _GdiplusStartup
VC 6 で作成したプロジェクトを VC 8 に上げてビルドすると…
------ ビルド開始: プロジェクト: DocTh, 構成: Debug Win32 ------
リンクしています...
ComNGP01.obj : error LNK2019: 未解決の外部シンボル _GdipCreateSolidFill@8 が関数 "public: __thiscall Gdiplus::SolidBrush::SolidBrush(class Gdiplus::Color const &)" (??0SolidBrush@Gdiplus@@QAE@ABVColor@1@@Z) で参照されました。
ComNGP01.obj : error LNK2019: 未解決の外部シンボル _GdipDeleteBrush@4 が関数 "public: virtual __thiscall Gdiplus::Brush::~Brush(void)" (??1Brush@Gdiplus@@UAE@XZ) で参照されました。
ComNGP01.obj : error LNK2019: 未解決の外部シンボル _GdipCloneBrush@8 が関数 "public: virtual class Gdiplus::Brush * __thiscall Gdiplus::Brush::Clone(void)const " (?Clone@Brush@Gdiplus@@UBEPAV12@XZ) で参照されました。
ComNGP01.obj : error LNK2019: 未解決の外部シンボル _GdipFree@4 が関数 "public: static void __cdecl Gdiplus::GdiplusBase::operator delete(void *)" (??3GdiplusBase@Gdiplus@@SAXPAX@Z) で参照されました。
ComNGP01.obj : error LNK2019: 未解決の外部シンボル _GdipAlloc@4 が関数 "public: static void * __cdecl Gdiplus::GdiplusBase::operator new(unsigned int)" (??2GdiplusBase@Gdiplus@@SAPAXI@Z) で参照されました。
ComNGP01.obj : error LNK2019: 未解決の外部シンボル _GdipCreateLineBrushI@24 が関数 "public: __thiscall Gdiplus::LinearGradientBrush::LinearGradientBrush(class Gdiplus::Point const &,class Gdiplus::Point const &,class Gdiplus::Color const &,class Gdiplus::Color const &)" (??0LinearGradientBrush@Gdiplus@@QAE@ABVPoint@1@0ABVColor@1@1@Z) で参照されました。
ComNGP01.obj : error LNK2019: 未解決の外部シンボル _GdipCreateFromHDC@8 が関数 "public: __thiscall Gdiplus::Graphics::Graphics(struct HDC__ *)" (??0Graphics@Gdiplus@@QAE@PAUHDC__@@@Z) で参照されました。
ComNGP01.obj : error LNK2019: 未解決の外部シンボル _GdipDeleteGraphics@4 が関数 "public: __thiscall Gdiplus::Graphics::~Graphics(void)" (??1Graphics@Gdiplus@@QAE@XZ) で参照されました。
ComNGP01.obj : error LNK2019: 未解決の外部シンボル _GdipSetSmoothingMode@8 が関数 "public: enum Gdiplus::Status __thiscall Gdiplus::Graphics::SetSmoothingMode(enum Gdiplus::SmoothingMode)" (?SetSmoothingMode@Graphics@Gdiplus@@QAE?AW4Status@2@W4SmoothingMode@2@@Z) で参照されました。
ComNGP01.obj : error LNK2019: 未解決の外部シンボル _GdipFillRectangle@24 が関数 "public: enum Gdiplus::Status __thiscall Gdiplus::Graphics::FillRectangle(class Gdiplus::Brush const *,float,float,float,float)" (?FillRectangle@Graphics@Gdiplus@@QAE?AW4Status@2@PBVBrush@2@MMMM@Z) で参照されました。
ComNGP01.obj : error LNK2019: 未解決の外部シンボル _GdipFillRectangleI@24 が関数 "public: enum Gdiplus::Status __thiscall Gdiplus::Graphics::FillRectangle(class Gdiplus::Brush const *,int,int,int,int)" (?FillRectangle@Graphics@Gdiplus@@QAE?AW4Status@2@PBVBrush@2@HHHH@Z) で参照されました。
ComNGP01.obj : error LNK2019: 未解決の外部シンボル _GdipFillPie@32 が関数 "public: enum Gdiplus::Status __thiscall Gdiplus::Graphics::FillPie(class Gdiplus::Brush const *,float,float,float,float,float,float)" (?FillPie@Graphics@Gdiplus@@QAE?AW4Status@2@PBVBrush@2@MMMMMM@Z) で参照されました。
ComNGP01.obj : error LNK2019: 未解決の外部シンボル _GdiplusStartup@12 が関数 "public: static int __cdecl UseGdiPlus::Startup(void)" (?Startup@UseGdiPlus@@SAHXZ) で参照されました。
ComNGP01.obj : error LNK2019: 未解決の外部シンボル _GdiplusShutdown@4 が関数 "public: static int __cdecl UseGdiPlus::Shutdown(void)" (?Shutdown@UseGdiPlus@@SAHXZ) で参照されました。
c:\Temp\iShellE\DocTh\Debug.080/DocTh.exe : fatal error LNK1120: 外部参照 14 が未解決です。
DocTh - エラー 15、警告 0
========== ビルド: 0 正常終了、1 失敗、0 更新、0 スキップ ==========
リンク対象に Gdiplus.lib を追加して対応.
VirusTotal SmpTxt.exe
Synology NAS の Cloud Sync のログに,ダウンロードできないファイルが幾つかあった.
対象のファイルは SmpTxt.zip で,その中の SmpTxt.exe がうまくない様子.
VC 6 でビルドしたものがマルウェアなどとして検出されている.VC 8 でビルドしたものは問題ない.
Vector に登録できているので誤検出だろうと思うが,どうしたものか.
i_ShellExt 未定義ドキュメントのサムネイルを表示可能に
2022/09/22
VC のバージョンをあげて対応することに.また SmpTxt.zip 内の VC 6 版は削除予定.
2022/09/26
SmpTxt_2022_09.zip
WebGL Three.js r144
久しぶりに Three.js を更新しようかと…
いつものデータを r144 に書き換えて…
r131 と比べると,オブジェクトが暗い.
サンプルのデータを見ると mtl が変更されている.
ライブラリの変更履歴 を見ると 136 → 137 で変更されている.
r136 までにして,この辺りが更新された時に見直すこととするか?
CHttpFile Read
何年か前に Web 上の html を 読み取るコード を書いた.
それを 今回書き直し.
これらのコードでは「シフトJIS」で書かれたページ以外ではうまく処理できない?
以前利用した時は IIS のサーバで,html 内の一部のコードを読み取るだけなので,特に問題にはならかなった.
今回も,単純に html が更新されたかどうかだったので,それなりに処理できていた.
今度は,html だけでなく画像などバイナリにも対応したくなった.
CInternetFile::ReadString の部分を
{
CString buf ;
while (pFile->ReadString(buf)) {
tstring tmp = ::To_tstring(LPCSTR(LPCTSTR(buf))) ;
r_buf.push_back(tmp) ;
}
read_dt = ::String_Join_Line(r_buf) ;
}
CInternetFile::Read に変更.
{
FILE* ofp = ::Open_File(dt_file.c_str(),_T("wb")) ;
v_char readBuf ; readBuf.resize(1024) ;
while (true) {
UINT r_size = pFile->Read(&readBuf[0],1024) ;
::fwrite(&readBuf[0],1,r_size,ofp) ;
// if (r_size < 1024)
if (r_size < 1)
{
break ;
}
}
::fclose(ofp) ;
}
QNAP NAS に接続できなくなった
QNAP NAS からのメール.
[Warning][QuFirewall] Notification from your device: TS253D
NAS Name: TS253D
Severity: Warning
Date/Time: 2022/09/06 18:51:01
App Name: QuFirewall
Category: Firewall Events
Message: [QuFirewall] Reached alert message threshold. Threshold value: 300, Time interval: 2022-09-06 18:20:01 ~ 2022-09-06 18:51:01.
©2022 QNAP Systems, Inc.
IPv6 でのアクセス拒否が増えたみたいで,LAN 内など通すもの以外を「拒否」に設定変更.
これがいけなかった.設定を間違えてしまったみたいで,IPv6 側の先頭にすべてを拒否する様に指定してしまった.
実際は下の方に登録したつもりだったが,間違って上の方にも入力してしまった.
すると,QTS を含むすべてのアクセスができなくなってしまった.
スマートフォンの Qmanager もつながらない.Qfinder でも見つからない.SSH 接続も不可.
対応方法を検索すると次の様なものが見つかった.
After install QuFirewall i am not able to access the NAS
QNAP FinderでTurbo NASを検出できません。IPアドレスをブラウザに直接入力してもアクセスできません。
が,異なる方法で試してみた.
電源ボタンを 1.5 秒押して,一度シャットダウン.
しばらくおいて,電源 ON .
30 秒程度すると,Qfinder で見える様になった.
ブラウザで QTS を起動し「QuFirewall」を起動.
間違って登録してしまったガードを一時的に無効にして「適用」.
ここまでを QuFirewall の動作が始まる前に完了しなければならない.
あとは,幾つかの設定を見直し.
実際は,うまくタイミングが合わず,3 回位やり直しています.
うまくできない場合は「AppCenter」で「QuFirewall」を「削除」して,最初から設定し直す必要があります.
[Error][Multimedia Console]
メールをチェックしていると,QNAP NAS からのメール…
[Error][Multimedia Console] デバイスからの通知: TS253D
NAS 名: TS253D
重大度: Error
日付/時刻: 2022/09/05 02:10:53
アプリ名: Multimedia Console
カテゴリー: データベース
メッセージ: [Multimedia Console] データベースの修復に失敗しました。データベースが破損しており、修復できません。[Multimedia Console] > [インデックス] > [再インデックス化] でマルチメディアコンテンツデータベースを再構築してください。
「QuLog Center」にエラーログは残っているが「Multimedia Console」には特にそれらしい表示はない.
「QuMagie」などでも特に問題と思われる現象はなさそう.
「再起動」をスケジュール しているので,その影響か?
2022/09/07
NAS を再起動したら,また同じメッセージが送られてきた.
メッセージにある様に「再インデックス化」することに.
2022/09/08
インデックスはできていると思うが,NAS の再起動時また記録されてしまう.
2022/09/09
「Multimedia Console」の更新版(2.0.1)があったので更新.
これで状況はよくなるか?