S.M.A.R.T. 障害が検出されました
2022/05/06 に不良セクタが発生したドライブ.この時,プチフリーズの様な現象で気づいた.
すぐにデータなどは他のデバイス( \\DS220\Public\ )にコピーしたので,特に失われたものはないと思う.
その後テンポラリ( VC の Fallback や SymbolCache )として使って様子を見ていた.
時々,少し遅くなることはあったが,エラーになるようなことはなかったと思う.
前回,この PC の別のドライブが壊れた時のものは次の所.
https://mish.hatenablog.jp/entry/2021/03/04/PC_D_drive_WD_Red_
今日 CrystalDiskInfo を見ると「異常」に.
イベントビューアにも「重大」として記録されている.
もうダメみたい.どうしたものか?
* 不良セクタなどが発生した場合,バックアップがない場合のみコピーして,アクセスしない様にして下さい.
「デュプリケーター」でコピーすることにより,失うものを最小限にすることができるかもしれません.
MDI exe に lnk のドロップで開けない
MDI exe に lnk(ドキュメントへのショートカット)をドロップすると,
—————————
BLAM
—————————
エラーはありませんでした。
—————————
OK
—————————
ショートカット先のドキュメントファイルであれば開ける.
一度 GetOpenFileName などで ダイアログを開くと,その後は問題ない.
デバッガで追いかけると,AfxResolveShortcut でエラーになっている.
対応としては InitInstance の最初に以下を追加.
if (!AfxOleInit()) {
AfxMessageBox(_T("OLE の初期化に失敗しました。")) ;
return FALSE ;
}
今回これを調べたのは,WM_DROPFILES の動作.
InitInstance で次の様にしている場合,CMainFrame::OnDropFiles で処理する.
m_pMainWnd->DragAcceptFiles();
MDI exe では,CView や CChildFrame で処理できそうだが,そのままでは呼ばれることはない.
予めそれぞれで DragAcceptFiles() が必要みたい.
例えば,次の様に CView で呼び出すと WM_DROPFILES が処理できる様になる.
void CBLAMView::OnInitialUpdate()
{
this->DragAcceptFiles();
// ...
}
void CBLAMView::OnDropFiles(HDROP hDropInfo)
{
CView::OnDropFiles(hDropInfo);
}
CMainFrame など以外の実装は Default() を呼出しているだけみたい.
_AFXWIN_INLINE void CWnd::OnDropFiles(HDROP)
{ Default(); }
ビューのウィンドウ以外(グレーの部分)にドロップすると CMainFrame::OnDropFiles が呼ばれる.
C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\MSVC\14.29.30133\atlmfc\src\mfc\winfrm.cpp
void CFrameWnd::OnDropFiles(HDROP hDropInfo)
{
SetActiveWindow(); // activate us first !
UINT nFiles = ::DragQueryFile(hDropInfo, (UINT)-1, NULL, 0);
CWinApp* pApp = AfxGetApp();
ASSERT(pApp != NULL);
for (UINT iFile = 0; iFile < nFiles; iFile++)
{
TCHAR szFileName[_MAX_PATH];
::DragQueryFile(hDropInfo, iFile, szFileName, _MAX_PATH);
pApp->OpenDocumentFile(szFileName);
}
::DragFinish(hDropInfo);
}
CMainFrame で CDocument などを求める.
SDI の場合
CDocument* pActiveDoc = GetActiveDocument() ;
CXxxView* pView = (CXxxView*)GetActiveView() ;
MDI の場合は,GetActiveFrame() で CFrameWnd を求めてから.
CFrameWnd* pActiveFrame = GetActiveFrame() ;
CDocument* pActiveDoc = NULL ;
if (pActiveFrame != NULL) {
pActiveDoc = pActiveFrame->GetActiveDocument() ;
}
CXxxView* pView = NULL ;
if (pActiveFrame != NULL) {
pView = (CXxxView*)pActiveFrame->GetActiveView() ;
}
DS220+ VMM Antivirus Essential
「Redirection」の設定
mish.myds.me から dev.mish.work へのデータの移行ができたので,リダイレクトの設定.
WordPress の移行なので,プラグインの「Redirection」を利用することにした.
移行するデータのルートは次の様な感じ.
https://mish.myds.me/wordpress/dev/
https://dev.mish.work/wordpress/
「正規表現」がよくわかっていないので,簡単な方法で指定した.
…/dev/2020 から 2021 は,単純にリダイレクト.
…/dev/2022 は,「ログイン状態」ではリダイレクトしない様に設定した.
VS Installer 2022
以前 VS 2017 などで「VS インストーラ」プロジェクトを作成した.
今回は VS 2022 で使用できる様にする設定など.
*「VS インストーラ」は,VS 2012 と VS 2013 にはなさそう.
先ず,プロジェクト テンプレートの追加.VS の「拡張機能の管理」メニューを選択.
検索ボックスに「Installer」と入力.
「ダウンロード」ボタンを押して,一度 VS を終了させる.
「新しいプロジェクトの追加」で「Installer」と入力.
「Setup Project」を選択して「次へ」.あとはプロジェクト名を指定して「作成」.
「File System」のウィンドウを開き「Application Folder」を選択.
エクスプローラなどから exe をドロップ.
プロジェクトの「プロパティ」.
AddRemoveProgramsIcon | 「アプリと機能」で表示されるアイコンの指定 |
Description | |
ProductName | 製品名 インストール先フォルダ名にも使用される |
RemovePreviousVersions | 「True」に |
必要に応じて「Application Folder」-「プロパティ」-「Default Location」を変更.
「ツリー」の「Install」-「Start」-「インストール フォルダー」を選択.
プロパティの「InstallAllUsersVisible」を Flase に.
DS220+ HDD 追加
先日セットアップした DS220+ に HDD を追加.
ホットスワップ可能な機種だが,交換ではない場合の手順がよくわからないので,シャットダウンして HDD を挿入.
起動させるとうまく認識していない.もう一度シャットダウン.挿し方が甘かった.
今度は,ちゃんと DISK 2 の LED ランプも点いている.
「ストレージマネージャ」で見ると今度は表示されている.
すぐに再構築されるのかと思ったが,そうではなさそう.
「利用可能なドライブの管理」でどの様な目的の追加なのかを指定するみたい.
「ストレージ拡張用のドライブを追加する」と「ストレージプールの作成」のどちらかだと思うが…
「ストレージ拡張用のドライブを追加する」を選んで進めてみた.
リビルドと思われる動作になったのでこれで良いのだろうと思う.
FBX SDK 2020.3.1
久しぶりに FBX SDK のページを見たら 2020.3.1 があったのでダウンロード.
2022/05/02
追加のインクルードとライブラリを変更.
C:\Program Files\Autodesk\FBX\FBX SDK\2020.3.1\include;%(AdditionalIncludeDirectories)
C:\Program Files\Autodesk\FBX\FBX SDK\2020.3.1\lib\vs2019\x86\$(Configuration);%(AdditionalLibraryDirectories)
https://jml.mish.work/index.php/cpp/fbx-sdk-setting.html
VC 2017 でビルドすると PDB が足りない?ため warning LNK4099 になる.
LibXml2-MD.lib(buf.obj) : warning LNK4099: PDB ‘libxml2.pdb’ が ‘LibXml2-MD.lib(buf.obj)’ で、または ‘c:\Temp\MICSTool\FBXtoM\Release.141\x64\libxml2.pdb’ に見つかりません。デバッグ情報がないものとして、オブジェクトにリンクします。
Zlib-MD.lib(adler32.obj) : warning LNK4099: PDB ‘zlib.pdb’ が ‘Zlib-MD.lib(adler32.obj)’ で、または ‘c:\Temp\MICSTool\FBXtoM\Release.141\x64\zlib.pdb’ に見つかりません。デバッグ情報がないものとして、オブジェクトにリンクします。
インストールされるものを見ると VC 2015 も同様.
VC 2019 ならば OK.