「.NET なんとか」のメモ.
.NET Framework
.NET (.NET Core)
.NET MAUI
VS などが入っている環境だと,次のコマンドで SDK バージョンを確認できる.
dotnet –list-sdks
Visual C++ で基本的なファイル I/O を実行する
C++/CLI プロジェクトを .NET Core または .NET 5 に移植する方法
この画面は、簡易表示です
「.NET なんとか」のメモ.
.NET Framework
.NET (.NET Core)
.NET MAUI
VS などが入っている環境だと,次のコマンドで SDK バージョンを確認できる.
dotnet –list-sdks
Visual C++ で基本的なファイル I/O を実行する
C++/CLI プロジェクトを .NET Core または .NET 5 に移植する方法
昨日から,VC6 で開いたままだったプロジェクトをビルドすると,あまり見慣れないエラーが…
--------------------Configuration: AsTrmM - Win32 Debug--------------------
Compiling...
HProRNew.cpp
t:\develop\_.src\...\hprornew.cpp(113) : fatal error C1010: unexpected end of file while looking for precompiled header directive
Error executing cl.exe.
AsTrmM.exe - 1 error(s), 0 warning(s)
他の環境で試そうとプロジェクトを閉じようとすると,保存するかの問合せが入った.
保存された dsp と先日バックアップしたそれと比べると,不要な cpp が追加されていた.
ソースを開いた時,操作ミスで間違ってビルド対象に cpp が追加されてしまったみたい.
不要な cpp をプロジェクトから外して対応.うまくいった.
私の場合,自動生成される以外のソースは,次の様な複数の cpp をプロジェクトに追加して運用しています.
ComUse01.cpp
#include "StdAfx.h"
#include "ComPrj00.hpp"
#include "Point.cxx"
#include "Matrix.cxx"
// ...
ComPrj00.hpp
#include "i3DV.h" // App.h
#include "ColorHSV.hxx"
// ...
Synology NAS の Cloud Sync のログに,ダウンロードできないファイルが幾つかあった.
対象のファイルは SmpTxt.zip で,その中の SmpTxt.exe がうまくない様子.
VC 6 でビルドしたものがマルウェアなどとして検出されている.VC 8 でビルドしたものは問題ない.
Vector に登録できているので誤検出だろうと思うが,どうしたものか.
i_ShellExt 未定義ドキュメントのサムネイルを表示可能に
いつも面倒と思う CView の取得.
https:/
普通は,CDocument から CView を操作することはあまりないものと思う.
が,今回はテスト用のコードで CView での表示情報を更新したくなった.
{
CFrameWnd* pFrameWnd = (CFrameWnd*)AfxGetMainWnd() ;
CFrameWnd* pActiveFrame = pFrameWnd->GetActiveFrame() ;
{
CXxxView* pView = (CXxxView*)pFrameWnd->GetActiveView() ;
if (pActiveFrame != NULL) {
pView = (CXxxView*)pActiveFrame->GetActiveView() ;
}
if (pView != NULL) {
PartsA sel_pa = *(pView->GetSelectP()) ;
{
PartsA err_pa = ::xx_get_error_xx(...) ;
sel_pa += err_pa ;
}
*(pView->GetSelectP()) = sel_pa ;
}
}
UpdateAllViews(NULL) ;
}
それを関数に.
CView* Get_active_view (void)
{
CFrameWnd* pFrameWnd = (CFrameWnd*)AfxGetMainWnd() ;
CFrameWnd* pActiveFrame = pFrameWnd->GetActiveFrame() ;
{
CView* pView = pFrameWnd->GetActiveView() ;
if (pActiveFrame != NULL) {
pView = pActiveFrame->GetActiveView() ;
}
return pView ;
}
return NULL ;
}
以前まとめたもの.
ClipView.doc
MSDNのドキュメントは,”Creating a Clipboard Viewer Window” で見つかる.
https:/
mk:@MSITStore:j:\MSDN\ipc.chm::/hh/winbase/clipbrd_47ok.htm
WM_CREATE ビューアとしての登録
NextWnd = ::SetClipboardViewer(hWnd) ;
WM_DESTORY ビューアの登録解除
::ChangeClipboardChain(hWnd,NextWnd) ;
WM_CHANGECBCHAIN 他のビューアが登録解除された
if ((HWND)wParam == NextWnd) { NextWnd = (HWND)lParam ; }
else if (NextWnd != NULL) { ::SendMessage(NextWnd,uMsg,wParam,lParam) ; }
WM_DRAWCLIPBOARD クリップボードの内容が更新された
// 描画または相当の動作
if (NextWnd != NULL) { ::SendMessage(NextWnd,uMsg,wParam,lParam) ; }
VC 2022 でビルドしようとすると,次の様なエラー.
—————————
Microsoft Visual Studio
—————————
オブジェクト参照がオブジェクト インスタンスに設定されていません。
—————————
OK
—————————
プロジェクトの設定などを見直しても特に怪しい部分はなさそう.
ビルド時に生成される幾つかのファイルを手動で削除しても特に変わらない.
さっきまで動作していた VC 2019 も同様のエラーに.
以前うまく動作しているはずのプロジェクトをコピーして,ビルドしようとしても同様.
こうなると,プロジェクトの設定ではなく,環境っぽい.
PC を再起動してうまく動作する様になった.
Win.ini がなくて MAPI が動作しなかった(Disable だった)と報告を受けた.
4 年位前に書き直した MAPI を使用したコードではチェックしない様にしたが,古いコードもまだ存在する.
それらのコードは MFC のコード docmapi.cpp を参考にしたもの.
VC 2022 のコードを見ると,Win.ini の [MAIL] の MAPI をチェックしている.
最初のコードを書いた 20 年以上前(VC 98)とそれほど変わっていない.
何もインストールしていない環境で Win.ini は存在する?
Win10 Pro 21H2 では次のものが存在している.
何かをアンインストールすると削除されることがあるのか?
2022/05/06 に不良セクタが発生したドライブ.この時,プチフリーズの様な現象で気づいた.
すぐにデータなどは他のデバイス( \\DS220\Public\ )にコピーしたので,特に失われたものはないと思う.
その後テンポラリ( VC の Fallback や SymbolCache )として使って様子を見ていた.
時々,少し遅くなることはあったが,エラーになるようなことはなかったと思う.
前回,この PC の別のドライブが壊れた時のものは次の所.
https:/
今日 CrystalDiskInfo を見ると「異常」に.
イベントビューアにも「重大」として記録されている.
もうダメみたい.どうしたものか?
* 不良セクタなどが発生した場合,バックアップがない場合のみコピーして,アクセスしない様にして下さい.
「デュプリケーター」でコピーすることにより,失うものを最小限にすることができるかもしれません.