ホーム » 2021 (ページ 4)
年別アーカイブ: 2021
SDI exe でファイルのドロップ
SDI exe でファイルをドロップされた時,関連する異なるファイルを開きたくなった.
次の様に,変換済みのデータが存在している時はそれを対象とする.
https://dev.mish.work/wordpress/2021/03/03/win-prevent-2nd/
ドキュメントクラスの OnOpenDocument で変更するのは可能だが「MRU ファイル リスト」に残ってしまう.
15 年位前に,ブラウザからリンクをドロップして動作させるコードを書いた.
最近のブラウザでは,当時の様な操作はできないみたい.
WM_DROPFILES でリンクのテキストが取れたのだったと思う.
この時,何を参考にしてここにたどり着いたかは不明.
それを見ると CMainFrame::OnDropFiles にコードが書いてある.
デフォルトのコードとしては,CFrameWnd::OnDropFiles を呼出している.
::DragQueryFile でファイル名を取って CWinApp::OpenDocumentFile を呼出している.
CMainFrame::OnDropFiles でファイル名を取った後,処理を追加して CWinApp::OpenDocumentFile を呼べば良い.
手順としては (VC)\…\atlmfc\src\mfc\winfrm.cpp の CMainFrame::OnDropFiles をコピーして編集している.
void CMainFrame::OnDropFiles(HDROP hDropInfo) { SetActiveWindow(); // activate us first ! CWinApp* pApp = AfxGetApp(); ASSERT(pApp != NULL); v_tstring files = ::DropFilesTo(hDropInfo) ; if (files.size() > 0) { tstring file = files[0] ; // ここで,必要に応じてファイル名を変更するなどの処理 pApp->OpenDocumentFile(file.c_str()) ; } ::DragFinish(hDropInfo); // CFrameWnd::OnDropFiles(hDropInfo); }
今回は SDI なのでこんな感じ.MDI であればループで回せば良い.
C2679 右オペランドを扱う演算子…
あるプロジェクトに デバッグライト を追加してビルドすると
------ ビルド開始: プロジェクト:T_cmb_f, 構成:Release Win32 ------ T_cmb_f.cpp T_cmb_f.cpp(32): error C2679: 二項演算子 '<<': 型 'tstring' の右オペランドを扱う演算子が見つかりません (または変換できません)。 C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\ostream(495): note: 'std::basic_ostream<char,std::char_traits<char>> &std::basic_ostream<char,std::char_traits<char>>::operator <<(std::basic_streambuf<char,std::char_traits<char>> *)' の可能性があります C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\ostream(475): note: または 'std::basic_ostream<char,std::char_traits<char>> &std::basic_ostream<char,std::char_traits<char>>::operator <<(const void *)' C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\ostream(455): note: または 'std::basic_ostream<char,std::char_traits<char>> &std::basic_ostream<char,std::char_traits<char>>::operator <<(long double)'
最近の VC はエラーの原因以外の情報がいっぱい表示されることがあるのでちょっとわかり難い.
「Unicode 文字セットを使用する」になっているのに std::cerr としていたため.
std::terr とすれば OK .
または,std::wcerr .
エントリ ポイントが見つかりません
FBX SDK 2020.1.1 を使用したコンソール AP のプロジェクトを VC 11 でビルド.
「プラットフォームツールセット」は「Visual Studio 2012 – Windows XP (v110_xp)」.
ビルドした exe を WinXP 環境で実行すると,
—————————
T_FBX.exe – エントリ ポイントが見つかりません
—————————
プロシージャ エントリ ポイント InterlockedCompareExchange64 がダイナミック リンク ライブラリ KERNEL32.dll から見つかりませんでした。
—————————
OK
—————————
VC 10 や VC 12 でビルドしたものは問題ない?
SDK のバージョンを変更して試してみると,
2019.0 までは OK で,2019.2 以降がうまくない.
他に VC 14 以降でビルドしたものがうまく動作しない.
何も表示されず exe が抜けて(終了して)しまったり,FBX の変換動作が機能しなかったりしている.
SDK 2020 では XP がサポートされていない.
https://help.autodesk.com/view/FBX/2020/ENU/
https://help.autodesk.com/view/FBX/2019/ENU/
FBX SDK とは直接関係ないが,
VC 14 以降のコンソール AP で,XP ではうまく実行できないものがある?
「プラットフォームツールセット」は「Visual Studio 2015 – Windows XP (v140_xp)」.
「標準 Windows ライブラリを使用する」とした exe は,起動はするがうまく実行できない.
「共有 DLL で MFC を使う」にすれば動作する.
「スタティック ライブラリで MFC を使用する」は未確認.
2020/03/16
VC 14 でビルドしたコンソール AP がうまく動作しなかったのは _stat .
何年か前に書いていた.WinXP で VC 14 _stat
vcredist_x86.exe を更新したからか,現象がちょっと変わってしまった.
全てではないが,先日通らなかったものが通る様になったものもある.
_stat で抜けてしまっていた exe が,うまく機能している?
QNAP NAS に Joomla!
「AppCenter」で「Joomla」をインストール.表示されるバージョンは古いが,後で更新できる.
「インストール」後「開く」.
サイト情報の設定.「サイト名」や「サイトの説明」は後からでも変更できる.
データベース設定.ユーザ名とパスワードは「SQL サーバー」の設定 で指定したもの.
インストール内容の確認.
言語の追加インストール.
言語パッケージの選択.
Japanese を指定.
インストール完了.
「installationディレクトリを削除」で「管理画面」などに入れるようになる.
Joomla! を「今すぐアップデート」で更新.
更新のインストール.
仮想マシンの XP が遅くなった?
今はもう誰も必要ないと思う情報.
先日 WinXP の VHD が入っている HDD が壊れて交換.
その時,ついでに PC のメモリも増設している.
壊れかけた HDD には不良セクタがあった様だが,対象の VHD は大丈夫だった.
デュプリケーターでコピーして,それなりに動作していると思う.
その後,仮想マシンの WinXP の動作が遅くなった?
全体的に遅いのではなく,メッセージボックスが出る時に数秒止まる様な感じ.
何が原因かしばらくわからなかった.
ホストのメモリに余裕がでたので,仮想マシンのメモリの割り当てを増やした.
この仮想マシンは 1.5G だったのを 3G に.
これがいけなかったみたいで,2G にすることで前の状態に戻ったと思われる.
これは関係なかった.再起動による一時的な解消.
「仮想マシンの状態を保存」をすると解消される?
2021/03/14
遅くなるのは,音が出る時.使っているうちに音が再生されるまでのタイムラグが大きくなる.
使い勝手は良くないが,
VirtualBox の「仮想マシンの状態を保存」で解消できることを確認.
「一時停止」では効果はない.
QTS に入れない?
QNAP NAS の設定画面 QTS に入ろうとするが入れない.
Q’center には入れて,見るとエラーになっている.
昨日 15:20 位から異常になったと思われる.
スマートフォンでの Qmanager でもエラーになっている.
Qfile などは動作している.スクリーンショットは QNAP NAS に自動アップロードされたもの.
実は先日も一度発生している現象.その時は,更に HDD の片方も認識していない状態だった.
その時は,SSH 接続したコンソールから reboot して正常になった.
再起動する他の方法は,
* PC の Qfinder Pro で対象の NAS を「右クリック」-「再起動」.
* スマートフォンの Qmanager の「システムツール」-「システム」-「再起動」.
どちらもうまく動作しない.と思ったが…
ファームウェア 4.5.2.1566 の問題かもしれない.
更新版の 4.5.2.1594 があったので更新して様子見.
リリースノートには特に書かれていない?
LAN 2 を外さないとファームウェアの更新ができないのは相変わらず.
2021/03/16
今日もスマートフォンで警告が…
QTS には入れた.その時 /tmp の空き容量がないとのメッセージ.
C:\Users\Iwao\AppData\Local\Temp>ssh -l Iwao -p 22 ts253d Warning: Permanently added the RSA host key for IP address 'fe80::265e:beff:fe40:316%15' to the list of known hosts. Iwao@ts253d's password: [Iwao@TS253D ~]$ df Filesystem Size Used Available Use% Mounted on none 400.0M 291.4M 108.6M 73% / devtmpfs 3.8G 8.0K 3.8G 0% /dev tmpfs 64.0M 64.0M 0 100% /tmp tmpfs 3.8G 252.0K 3.8G 0% /dev/shm tmpfs 16.0M 0 16.0M 0% /share /dev/mmcblk0p5 7.7M 46.0K 7.7M 1% /mnt/boot_config tmpfs 16.0M 0 16.0M 0% /mnt/snapshot/export /dev/md9 493.5M 146.7M 346.7M 30% /mnt/HDA_ROOT cgroup_root 3.8G 0 3.8G 0% /sys/fs/cgroup /dev/mapper/cachedev1 3.5T 1.5T 2.0T 42% /share/CACHEDEV1_DATA /dev/md13 417.0M 387.9M 29.1M 93% /mnt/ext tmpfs 48.0M 108.0K 47.9M 0% /share/CACHEDEV1_DATA/.samba/lock/msg.lock df: /mnt/ext/opt/samba/private/msg.sock: Permission denied tmpfs 16.0M 0 16.0M 0% /share/NFSv=4 /dev/mapper/cachedev1 3.5T 1.5T 2.0T 42% /share/NFSv=4/Public /dev/mapper/cachedev1 3.5T 1.5T 2.0T 42% /lib/modules/4.14.24-qnap/container-station df: /share/CACHEDEV1_DATA/.qpkg/container-station/system-docker/overlay2/b3655c92c81974ab3428c03b4cd50a3692cdc6c90c5b1cc80b65b42d1d8fa77d/merged: Permission denied df: /share/CACHEDEV1_DATA/.qpkg/container-station/system-docker/overlay2/753b9bed0bec605404d3cb39a2d60430575c8b0f32f23f818a4a8befdc0cb590/merged: Permission denied /dev/mapper/cachedev1 3.5T 1.5T 2.0T 42% /share/CACHEDEV1_DATA/.qpkg/container-station/kernel-module/ubuntu-hd /dev/mapper/cachedev1 3.5T 1.5T 2.0T 42% /lib/modules/4.14.24-qnap/container-station/ubuntu-hd [Iwao@TS253D ~]$
確かに空いていない.
/tmp/httpdusr 以下(幾つかのコードでここを利用している)を開放することで正常に.
容量の割り当てが 64 M になっているが,どうしたものか.
[SOLVED]TS-251 : Increase size of /tmp
2021/04
NAS を定期的に再起動することで対応.
NAS の再起動などのスケージュール
MBCS_Support_Deprecated_In_MFC
最初 VC 6 で作成したプロジェクト.VC 8 までは順にあげてあった.これをさらに VC 14.x まであげたもの.
その中の一部のプロジェクトを「マルチ バイト文字セットを使用する」に変更してビルドすると,
1>------ ビルド開始: プロジェクト:TEDHPro4, 構成:Debug Win32 ------ 1> StdAfx.cpp 1>c:\program files (x86)\microsoft visual studio 14.0\vc\atlmfc\include\afx.h(38): warning C4996: 'MBCS_Support_Deprecated_In_MFC': MBCS support in MFC is deprecated and may be removed in a future version of MFC. 1> c:\program files (x86)\microsoft visual studio 14.0\vc\atlmfc\include\afx.h(33): note: 'MBCS_Support_Deprecated_In_MFC' の宣言を確認してください 1> _WIN32_WINNT not defined. Defaulting to _WIN32_WINNT_MAXVER (see WinSDKVer.h) 1> TEDHPro4.cpp 1> TEDHProD.cpp 1> コードを生成中... 1>StdAfx.obj : warning LNK4075: /EDITANDCONTINUE は /OPT:LBR の指定によって無視されます。 1> TEDH4140.vcxproj -> c:\Temp\EDHProM\TEDHPro4\Debug.140\TEDHPro4.exe 1> TEDH4140.vcxproj -> c:\Temp\EDHProM\TEDHPro4\Debug.140\TEDHPro4.pdb (Full PDB) ========== ビルド: 1 正常終了、0 失敗、4 更新不要、0 スキップ ==========
今回のプロジェクトは,dll の単体テストのためのものなのでこのまま(warning が出る状態)とする.
これを回避するには「文字セット」を「Unicode 文字セットを使用する」にすること.
どうしても warning C4996 を消したいのではあれば,StdAfx.h で afx*.h のインクルードの前に NO_WARN_MBCS_MFC_DEPRECATION を定義すれば良い.
#define NO_WARN_MBCS_MFC_DEPRECATION
Win 環境で 2 重起動の禁止
ライブラリとして提供されている部分を,他のコードと分離するためコンソール AP(変換 exe)として作成.
テスト用にそれを呼出す部分も別のコンソール AP(呼出 exe)として作成.
変換 exe は,aaa.dat を aaa.txt の様に異なる形式に変換する機能.
呼出 exe は,::ShellExecute(…,”変換.exe aaa.dat”,…) の様に呼出し aaa.txt を処理する.
データにより変換(*.dat から *.txt へ)時間は数秒から数時間.
変換できたかどうかをチェックしている部分は次の様なコード.
for (size_t index=0 ; index<1000 ; index++) { ::Sleep(100) ; if (::File_IsExist(g3d_name)) { break ; } }
データが悪いのか,ライブラリの問題なのかは不明たが,変換 exe の中でエラーになってしまうことがある.
エラーを軽減する方法はわかっているが,それでも完全ではない.
同じデータでも通る時とそうでないことがあり不安定.
そのため,変換後データが存在しない時に,変換中でなければ「変換 exe」を再起動させなければならない.
2021/03/09
ここまでの部分を単体のコードとして作成.
t_call.cpp
t_conv.cpp
T_mtex_2021_03_09.zip
これらのコードでの問題は,
* 異常終了が判断できない.
* 変換に時間がかかる時,複数回呼んでしまう.
起動しているかどうかは Mutex を使えば良さそう.
変換 exe が起動している間,::CreateMutex (…,”入力ファイル名”) で作成したものを保持する.
呼出 exe のループでは,その Mutex が存在するかチェック.
なくなった時に,出力ファイルが存在している時はループを抜ける.
出力ファイルが存在していない時は,もう一度「変換 exe」を呼出す.
今まで作成の Mutex を使用したコード.
Prevent2.hxx Prevent2.cxx
ExclusS.hxx
t_conv.cpp
bool test (const tstring& name_in_) { tstring f_name = ::Path_GetName(name_in_) ; HANDLE hMutex = ::CreateMutex(NULL,FALSE,f_name.c_str()) ; time_t now = ::time(NULL) ; if ((now % 3) == 0) { ::Sleep(3000) ; tstring name_out = name_in_ + _T(".out") ; tstring name_uni = ::Get_unique_name(name_out) ; ::File_CreateEmpty(name_uni) ; } else { ::Sleep(500) ; } ::CloseHandle(hMutex) ; return true ; }
t_call.cpp
bool t_call (c_tstring& in_name_) { tstring name_in_ = in_name_ ; { tstring f_name = ::Path_GetName(name_in_) ; HANDLE hMutex = ::CreateMutex(NULL,FALSE,f_name.c_str()) ; DWORD error = ::GetLastError() ; ::CloseHandle(hMutex) ; if (error == ERROR_ALREADY_EXISTS) { return true ; } } tstring this_exe = ::i_GetModuleFileName() ; tstring conv_exe = ::Path_AddLastSP(::Path_GetDir(this_exe)) + _T("t_conv.exe") ; name_in_ = ::QuotM_Add_Auto(name_in_) ; // ... // 変換 exe を起動 // ... return true ; }
2021/03/10 更にクラスに.W_mutex.hxx
次の様にできる.
bool test (const tstring& name_in_) { W_mutex mutex(::Path_GetName(name_in_).c_str()) ; time_t now = ::time(NULL) ; if ((now % 3) == 0) { ::Sleep(3000) ; tstring name_out = name_in_ + _T(".out") ; tstring name_uni = ::Get_unique_name(name_out) ; ::File_CreateEmpty(name_uni) ; } else { ::Sleep(500) ; } return true ; } bool t_call (c_tstring& in_name_) { tstring name_in_ = in_name_ ; { W_mutex mutex(::Path_GetName(name_in_).c_str()) ; if (mutex.Is_exist()) { return true ; } } tstring this_exe = ::i_GetModuleFileName() ; tstring conv_exe = ::Path_AddLastSP(::Path_GetDir(this_exe)) + _T("t_conv.exe") ; name_in_ = ::QuotM_Add_Auto(name_in_) ; // ... return true ; }
2021/12/01
W_mutex を利用した単体テスト用コード
QNAP NAS に WordPress
QNAP NAS TS-253D に WordPress のインストール.
「AppCenter」でインストール.
「WordPress」を「開く」.
2022/01/13 バージョンによっては,ここでエラーになる様です.
このページの下の,データベース名「wordpress」を作成後「WordPress」を開いてください.
「日本語」を選択して「続ける」.
次の画面で「さあ、始めましょう!」.
データベースなどの設定画面でそのまま進めるとエラーに.
これは,まだ phpMyAdmin を入れてないのと,データベースの設定も終わっていないため.
「phpMyAdmin」をインストール.
まだそれだけでは phpMyAdmin には入れない.
How to install WordPress on QTS 4.4
「コントロールパネル」の「SQL サーバー」で「SQL サーバーを…」にチェックを付けて「適用」し「root」のパスワードを登録する必要がある.
何故か http 接続では phpMyAdmin に入れない.https 接続では入れた.
左のツリーから「新規作成」を「クリック」.データベース名を「wordpress」として「作成」.
WordPress のインストールに戻って,データベース情報を入力.
これでインストールができる様になる.
VirtualBox BLKCACHE_IOERR
今まで特に問題なく使えていた VHD が今日の午前中から調子が悪い.
仮想マシンの実行中にエラーが発生しました!エラーの詳細を以下に示します。説明されたエラーを修正し、仮想マシンの再実行することができます。 The I/O cache encountered an error while updating data in medium "ahci-0-0" (rc=VERR_IO_CRC). Make sure there is enough free space on the disk and that the disk is working properly. Operation can be resumed afterwards. エラーID: BLKCACHE_IOERR 重要度: 致命的でないエラー
検索すると「ホストの I/O キャッシュを使う」とあったが…
チェックを付けて起動させると,
どうも違うみたいで,元に戻した.
2021/02/28
どうも物理ディスクに障害が発生しているみたい.
突然ホストがブルースクリーンに.
起動後,ディスクの状態が「注意」となっていて「代替処理保留中のセクタ数」の所が黄色に.
イベントビューアを見ると disk のエラーがいっぱい.
さかのぼって調べるとさらに 1 週間前位にもあり.
D ドライブのものをバックアップしていて,対象の VHD をコピーしている時読み取りエラーとなった.
最近,ホストの Windows Update 後などの再起動が遅いと感じていたが,この辺りが原因だったか?
PC の内蔵ディスクが壊れた?
VC 14 デバッグ MFC にステップイン
VC 2015 で MFC を使用した SDI.exe をデバッグしていると,MFC のコードにステップインできない?
入っている他の VC で試すと VC 2013 まではうまく機能している.
検索しても,これはという内容には引っ掛からなかった?
アプリケーションクラスの CG3toMApp::InitInstance() を抜ける時,そのままステップ実行していると…
「Microsoft Symbol Servers」にチェックを付けて「読み込み」.
MFC ソース内のデバッグができる様になった.
設定としては「ツール」-「オプション」の中の「デバッグ」-「シンボル」.
2022/02
%TEMP% では消えてしまうので,シンボルキャッシュの場所を変更している.
VC フォールバック 設定
https://itl.mish.work/Iwao/Doc/other/vs/
https://jml.mish.work/index.php/cpp/vs-install.html
「お名前.com」の設定
先日申し込んだ「お名前.com」の設定のメモ.
やはり全体的にわかり辛い.
ログインした時のホップアップも邪魔.
欲しい情報の検索をかけても help.onamae.com が上位に表示されてしまう.
またその内容(特に画像)が古いものが多い気がする.
メールが多すぎるので「お知らせメールの受信」を「配信なし」に設定.
画面右上の「お名前ID:?????」の所をクリックして「会員情報の確認/変更」に入り,その画面の下の方で設定.
whois 情報は申込時のデフォルト(WHOIS情報公開代行)のまま.
DNS の設定へ入る方法がわかり辛かった.
間違って「お申込み」のリンクの方を選んでしまうとカード情報の入力になる.
やりたかったのは「次へ」を押すとその画面が切り替わり表示される.
その中の「DNSレコード設定を利用する」の「設定する」をクリック.
「Aレコード」の方はうまくいったが,「AAAAレコード」の方はどこかの設定が悪いみたいでうまくいかない.
2021/02/22
Search Console の「DNS レコードでのドメイン所有権の確認」.
「以下の … DNS 設定にコピーします」を「コピー」.
「Value」の所に「貼り付け」.
「確認画面へ進む」,「設定する」で設定.
「Search Console」に戻り,「DNS レコードでのドメイン所有権の確認」の「確認」.
10 分程度で反映された.
2021/02/23
IPv6 関係で「DNSレコード設定」はそれ(AAAAレコード)で良かったみたい.
LAN 内では 3 つの NAS それぞれにアクセスできるようになった.
外からは,ルータの設定などがまだ足りないみたいでうまくアクセスできていない.
CMutex の使用でデッドロック?
何年も前(2015/11?)からなのかもしれないが,
今の PC になってから作成した exe が起動時やサムネイルの表示などで停止する現象が時々発生している.
発生する頻度が低いのと,現象が絞り切れていなかったのでそのままになっていた.
今日,デバッグしていると exe が起動しない.
その時までに起動済みのものは動作しているが,止まってしまうものもあり.
以前この現象が発生した時は再起動することで回避したが,今回はもう少し調べてみることにした.
デバッガで追いかけると CMutex の Lock(INFINITE) で戻って来ない.
使用している所は次の様な感じ.
{ _MutexS_ mt(FALSE,_T("DocIB::GetBitmap")) ; MutexS m(&mt) ; { // 共有のリソースに対する操作 } }
通常の動作では Unlock されないことがある様には思えないが…
デバッガを使っていて Lock 中に exe を強制終了してしまったか?
_MutexS_ UseGdiPlus::ME(FALSE,_T("UseGdiPlus::GP_Token")) ; { MutexS me(&ME) ; if (IsInitialized()) { // ... } // .. }
いい修正方法が思い浮かばないので,とりあえずメモ.
2021/02/19
その後いろいろと検索して調べたが,通常の動作ではロックされたままとなることはなさそう.
https://docs.microsoft.com/ja-jp/dotnet/standard/threading/mutexes
表示されてはないが起動したままの exe があるかと思い,タスクバーを見たが特になさそう.
昨日,わかっているものの幾つかは「タスクの終了」で終わらせている.
そうなるとロックされている Mutex は,自前のシェルエクステンションと思われる.
「タスクバー」に表示されている「エクスプローラ」は終了させたが,まだ誰かがロックしている.
画面には表示されていない explorer.exe が幾つかか存在したので,すべて終わらせた.
これでロックされた Mutex は解放されたみたい.
今度は,デバッガを使用してうまく起動しなかった exe をいろいろ試すことに.
デバッガで Lock した直後にブレイクポイントを設定して停止.
当然であるが他の exe を起動すると Lock の所で止まってしまう.
デバッガで Unlock の後まで実行すると,他の exe も止まっていた所から動き出す.
デバッガで Lock した直後に停止させて,他の exe を起動.
デバッガで「デバッガの停止」してみる(Unlock していない)と,他の exe が動き出す.
これらの動作を見ると,使い方としてはそれ程間違ってはなさそう.
コードを追いかける限りでは,「マズい」所がわからない.
複数のプロセスから呼ばれた時に意図しないタイミングとなってしまう所があるのか?
ある程度はっきりしたのは,自前のシェルエクステンションの GDIPlus 関係の時の Lock で止まっていること.
ドキュメント付きの起動で抜ける?
個人的なコートでのメモです.
普通に exe を起動してドキュメントを開くのは問題ない.
ドキュメント付きで起動すると,ウィンドウが表示されて,ドキュメントを読込み後終了してしまっている.
デバッガで追いかけると,ProcessShellCommand の呼び出しで FALSE となっている.
原因は,ドキュメントの読込み後にアプリケーションクラスにアクセスしている所で初期化が済んでないため.
初期化のコード(RcntFM)を CCommandLineInfo の前にして対応.
// メイン MDI フレーム ウィンドウを作成 CMainFrame* pMainFrame = new CMainFrame; if (!pMainFrame->LoadFrame(IDR_MAINFRAME)) return FALSE; m_pMainWnd = pMainFrame; // ドラッグ/ドロップ オープンを許可します m_pMainWnd->DragAcceptFiles(); { RcntFM.Read() ; RcntFM.SetStartID(ID_RECENT_FILE_00) ; } // DDE、file open など標準のシェル コマンドのコマンドラインを解析します。 CCommandLineInfo cmdInfo; ParseCommandLine(cmdInfo); if (cmdInfo.m_nShellCommand == CCommandLineInfo::FileNew) { cmdInfo.m_nShellCommand = CCommandLineInfo::FileNothing ; } // コマンドラインでディスパッチ コマンドを指定します。 if (!ProcessShellCommand(cmdInfo)) return FALSE;
これをやっていて困ったのが,ソースのタイル表示.
VS 2019 ではうまく動作するが,2017 など他のものではエラーになってしまう.
--------------------------- GLSm140: devenv.exe - アプリケーション エラー --------------------------- 0x000000006359C044 の命令が 0x0000000000000000 のメモリを参照しました。メモリが read になることはできませんでした。 プログラムを終了するには [OK] をクリックしてください プログラムをデバッグするには [キャンセル] をクリックしてください --------------------------- OK キャンセル ---------------------------
QNAP ローカルマスターブラウザ
QNAP NAS の QTS の設定状態をいろいろ見ていたら「ローカルマスターブラウザを有効にする 無効」が目についた.
先日も閉じた LAN 環境が遅くて使えないくらいになり,幾つかの機器の再起動で何とか今は落ち着いた状態.
DS116 Wi-Fi とルータ間かと思い,別のアクセスポイントをかませてみたが,これは関係なさそう.
TS253D で「ローカルマスターブラウザ」を「有効」にして様子見.
ASUSTOR NAS AS5202T の設定を見ると「ローカルマスターブラウザを有効にする」にチェックが入っていた.
こちらは無効に.
QNAP NAS での写真管理
先日設定した Qfile で スマートフォンの写真のバックアップ は可能になった.
が,その写真などを参照する時の使い勝手が良くない.
Qphoto とうまく連携できない?また Qphoto の動作もイマイチ?
「QNAP 写真管理」で検索すると QuMagie というのがあった.
NAS に QuMagie と QuMagie Core を入れて,スマートフォンには QuMagie をインストール.
これで,他の NAS と似た様な使い勝手になった.
QuMagie の「アルバム」-「場所」.
「モノ」.
QNAP NAS で写真のバックアップ
以前調べてわからなかった,スマートフォンの写真などの QNAP NAS へのバックアップ.
Synology NAS や ASUSTOR NAS ではそれぞれ専用のアプリで簡単に設定できる.
Synology NAS Photo Station
ASUSTOR NAS Photo Gallery
QNAP NAS Photo Station
改めて調べてみると Qfile を使用するみたい.
次の所を参考にさせてもらった.
「Qfile」で画像データの自動転送 ~ スマートフォンの写真をNASで管理する方法
メニューから「自動アップロード」を選択.
アップロードするデータとアップロード先などの指定.
「完了」でアップロードが開始される.
VC 12 LNK1104 , VC 14.2 LNK2019
VC 6 のプロジェクトを順に更新して,…
------ ビルド開始: プロジェクト:BChgN, 構成:Debug Win32 ------ BChgN.obj : warning LNK4075: /EDITANDCONTINUE は /OPT:LBR の指定によって無視されます。 LINK : fatal error LNK1104: ファイル 'mfc120d.lib' を開くことができません。 ------ ビルド開始: プロジェクト:G3_CLS, 構成:Release Win32 ------ LINK : fatal error LNK1104: ファイル 'mfc120.lib' を開くことができません。 ------ ビルド開始: プロジェクト:G3_CLS, 構成:Debug Win32 ------ G3_CLS.obj : warning LNK4075: /EDITANDCONTINUE は /OPT:LBR の指定によって無視されます。 LINK : fatal error LNK1104: ファイル 'mfc120d.lib' を開くことができません。 ------ ビルド開始: プロジェクト:G3_toM, 構成:Debug Win32 ------ ComPrj01.obj : warning LNK4075: /EDITANDCONTINUE は /OPT:LBR の指定によって無視されます。 LINK : fatal error LNK1104: ファイル 'mfc120d.lib' を開くことができません。 ------ ビルド開始: プロジェクト:ig3_toM, 構成:Release Win32 ------ LINK : fatal error LNK1104: ファイル 'mfc120.lib' を開くことができません。 ------ ビルド開始: プロジェクト:ig3_toM, 構成:Debug Win32 ------ ComPrj01.obj : warning LNK4075: /EDITANDCONTINUE は /OPT:LBR の指定によって無視されます。 LINK : fatal error LNK1104: ファイル 'mfc120d.lib' を開くことができません。 ========== ビルド: 0 正常終了、6 失敗、4 更新不要、0 スキップ ==========
ビルドを開始しました... ------ ビルド開始: プロジェクト: BChgN, 構成: Debug Win32 ------ BChgN.obj : warning LNK4075: /EDITANDCONTINUE は /INCREMENTAL:NO の指定によって無視されます。 msvcrtd.lib(exe_wwinmain.obj) : error LNK2019: 未解決の外部シンボル _wWinMain@16 が関数 "int __cdecl invoke_main(void)" (?invoke_main@@YAHXZ) で参照されました c:\Temp\TestMBL\BChgN\Debug.142\BChgN.exe : fatal error LNK1120: 1 件の未解決の外部参照 プロジェクト "BChg142.vcxproj" のビルドが終了しました -- 失敗。 ========== ビルド: 0 正常終了、1 失敗、9 更新不要、0 スキップ ==========
BChgN は SDI.exe .それ以外は MFC を使用したコンソール AP .
うまくビルドできる vcxproj と比べると,ソースのプリプロセッサの定義が異なる.
それならと思い,VC の「ソリューション エクスプローラ」で,ソースを一度プロジェクトから外して,再度追加.
うまくビルドできる様になった.
vcxproj をエディタで開き直すと,<PreprocessorDefinitions Condition> がない.
<ItemGroup> <ClCompile Include="ComPrj01.cpp" /> <ClCompile Include="ig3_toM.cpp" /> </ItemGroup>
StdAfx.cpp 以外はファイル名のみで良さそう.
他のプロジェクトは,エディタで削除して対応.
2020/01/25
今度は,MFC を使用していないコンソール AP .
VC の設定で「それぞれのソースのプロパティページ」-「構成プロパティ」-「C/C++」-「プリプロセッサ」-「プリプロセッサの定義」をブランクにしてみたが…
コンパイルすると _UNICODE などが定義されない.
「<親またはプロジェクトの既定値から継承>」にすることで,意図した設定になった.
2024/07/04
以前は VC 7 などを通していたが,最近は VC 8 以降のみにしている.
VC6 プロジェクトの移行
VC6 から VC2019 への移行
こうすることで,プリプロセッサの定義がうまくない現象はなくなった様に思う..
DS116 が遅い?
昨日の夕方,次の様なメールが…
サイトがダウンしています Jetpack による2021年1月21日 (木) 6:09 午後の最後のチェック時に i_Tools (mish.myds.me/wordpress/i-tools) が読み込めませんでした。 サイトのアクティビティログを確認すると、この問題の原因になっている可能性のある最近の変更に関する詳細がわかります。サイトに変更を加えていない場合はホスティングサービスに連絡し、追加のサポートを受けてください。 サイトが再びオンラインになったことをJetpackが検出したときに、こちらから別のメールを送信します。 サポートが必要ですか ? ご心配はいりません。 このメールは、サイトでダウンタイムモニタリングが有効にされているため、送信されました。サポートにご連絡いただく場合は、リファレンス番号 [136721734/intermittent] をお知らせください。 これらのアラートはセキュリティ設定でカスタマイズできます。 Automattic, Inc. 60 29th St. #343, San Francisco, CA 94110, USA WordPress.com のメール設定を管理します。 JetpackPlan
いつもなら数分で復旧したとメールが来るが,今回は違った.
自分で作成した接続ログのページを見ようとすると遅くて使えない.
DS115j で運用していた頃の Antivirus Essential が動作した時の様な感じ.
https://dev.mish.work/wordpress/2017/01/29/ds115j-9/
DSM に入ってリソースモニタで見ると CPU に負荷がかかっている.
「プロセス」を見ると,CPU を 数% 使用するプロセスが 30 個位あったと思う.
「php72」だったと思うがハードコピーなどがないので定かではない.
DSM から NAS を再起動して通常の状態になった.
DSM のログを見たが,特にこれはというものはわからない.
//mish.myds.me/ に対して変なアクセスがあったので,その影響か?