ホーム » 2021 (ページ 4)

年別アーカイブ: 2021

2024年12月
1234567
891011121314
15161718192021
22232425262728
293031  

カテゴリー

アーカイブ

ブログ統計情報

  • 100,476 アクセス


SDI exe でファイルのドロップ

SDI exe でファイルをドロップされた時,関連する異なるファイルを開きたくなった.
次の様に,変換済みのデータが存在している時はそれを対象とする.
https://dev.mish.work/wordpress/2021/03/03/win-prevent-2nd/


ドキュメントクラスの OnOpenDocument で変更するのは可能だが「MRU ファイル リスト」に残ってしまう.


15 年位前に,ブラウザからリンクをドロップして動作させるコードを書いた.
最近のブラウザでは,当時の様な操作はできないみたい.
WM_DROPFILES でリンクのテキストが取れたのだったと思う.
この時,何を参考にしてここにたどり着いたかは不明.
それを見ると CMainFrame::OnDropFiles にコードが書いてある.
デフォルトのコードとしては,CFrameWnd::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 であればループで回せば良い.

Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

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)'

C2679 右オペランドを扱う演算子が見つかりません
最近の VC はエラーの原因以外の情報がいっぱい表示されることがあるのでちょっとわかり難い.
「Unicode 文字セットを使用する」になっているのに std::cerr としていたため.
std::terr とすれば OK .
または,std::wcerr .

Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

エントリ ポイントが見つかりません

FBX SDK 2020.1.1 を使用したコンソール AP のプロジェクトを VC 11 でビルド.
「プラットフォームツールセット」は「Visual Studio 2012 – Windows XP (v110_xp)」.
「プラットフォームツールセット」-「Visual Studio 2012 - Windows XP (v110_xp)」
ビルドした exe を WinXP 環境で実行すると,
—————————
T_FBX.exe – エントリ ポイントが見つかりません
—————————
プロシージャ エントリ ポイント InterlockedCompareExchange64 がダイナミック リンク ライブラリ KERNEL32.dll から見つかりませんでした。
—————————
OK
—————————
InterlockedCompareExchange64 がダイナミック リンク ライブラリ KERNEL32.dll から見つかりませんでした。
Dependency Walker
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 が,うまく機能している?

Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

QNAP NAS に Joomla!

「AppCenter」で「Joomla」をインストール.表示されるバージョンは古いが,後で更新できる.
「AppCenter」で「Joomla」をインストール
「インストール」後「開く」.
サイト情報の設定.「サイト名」や「サイトの説明」は後からでも変更できる.
Joomla! サイト設定
データベース設定.ユーザ名とパスワードは「SQL サーバー」の設定 で指定したもの.
Joomla! データベースの設定
インストール内容の確認.
Joomla! インストール内容の確認
言語の追加インストール.
Joomla! 言語の追加インストール
言語パッケージの選択.
Joomla! 言語パッケージの選択
Japanese を指定.
Joomla! Japanese を指定
インストール完了.
Joomla! インストール
「installationディレクトリを削除」で「管理画面」などに入れるようになる.
Joomla! 管理画面のログイン
Joomla! を「今すぐアップデート」で更新.
Joomla! 「今すぐアップデート」
更新のインストール.
Joomla!  3.9.25 のインストール

Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

仮想マシンの XP が遅くなった?

今はもう誰も必要ないと思う情報.


先日 WinXP の VHD が入っている HDD が壊れて交換.
その時,ついでに PC のメモリも増設している.
壊れかけた HDD には不良セクタがあった様だが,対象の VHD は大丈夫だった.
デュプリケーターでコピーして,それなりに動作していると思う.


その後,仮想マシンの WinXP の動作が遅くなった?
全体的に遅いのではなく,メッセージボックスが出る時に数秒止まる様な感じ.
WinXP が遅くなった?


何が原因かしばらくわからなかった.
ホストのメモリに余裕がでたので,仮想マシンのメモリの割り当てを増やした.
この仮想マシンは 1.5G だったのを 3G に.
これがいけなかったみたいで,2G にすることで前の状態に戻ったと思われる
これは関係なかった.再起動による一時的な解消.
「仮想マシンの状態を保存」をすると解消される?


2021/03/14
遅くなるのは,音が出る時.使っているうちに音が再生されるまでのタイムラグが大きくなる.
使い勝手は良くないが,
VirtualBox の「仮想マシンの状態を保存」で解消できることを確認.
仮想マシンの状態を保存
「一時停止」では効果はない.

Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

QTS に入れない?

QNAP NAS の設定画面 QTS に入ろうとするが入れない.
QTS にログインできない
Q’center には入れて,見るとエラーになっている.
Q'center で「システムにアラートがあります」
昨日 15:20 位から異常になったと思われる.
Q'center システムの温度が正しくない
スマートフォンでの Qmanager でもエラーになっている.
Qmanager の「警告」
Qfile などは動作している.スクリーンショットは QNAP NAS に自動アップロードされたもの.


実は先日も一度発生している現象.その時は,更に HDD の片方も認識していない状態だった.
その時は,SSH 接続したコンソールから reboot して正常になった.
再起動する他の方法は,
* PC の Qfinder Pro で対象の NAS を「右クリック」-「再起動」.
* スマートフォンの Qmanager の「システムツール」-「システム」-「再起動」.
どちらもうまく動作しない.と思ったが…
QNAP NAS 再起動


ファームウェア 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 の再起動などのスケージュール

Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

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 スキップ ==========

C4996: 'MBCS_Support_Deprecated_In_MFC'
今回のプロジェクトは,dll の単体テストのためのものなのでこのまま(warning が出る状態)とする.
これを回避するには「文字セット」を「Unicode 文字セットを使用する」にすること.
どうしても warning C4996 を消したいのではあれば,StdAfx.h で afx*.h のインクルードの前に NO_WARN_MBCS_MFC_DEPRECATION を定義すれば良い.
#define NO_WARN_MBCS_MFC_DEPRECATION
stdafx.h に #define NO_WARN_MBCS_MFC_DEPRECATION

Is this 投稿 useful? Useful Useless 1 of 1 people say this 投稿 is useful.

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
変換 exe 呼出し 単体テスト
これらのコードでの問題は,
* 異常終了が判断できない.
* 変換に時間がかかる時,複数回呼んでしまう.


起動しているかどうかは 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 ;
	}

Mutex で exe の起動を管理


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 を利用した単体テスト用コード

Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

QNAP NAS に WordPress

QNAP NAS TS-253D に WordPress のインストール.
「AppCenter」でインストール.
「WordPress」を「開く」.
「WordPress」を「開く」


2022/01/13 バージョンによっては,ここでエラーになる様です.
QNAP NAS WordPress データベース エラー
このページの下の,データベース名「wordpress」を作成後「WordPress」を開いてください.


「日本語」を選択して「続ける」.
「日本語」を選択して「続ける」
次の画面で「さあ、始めましょう!」.
「データベース」情報の設定
データベースなどの設定画面でそのまま進めるとエラーに.
データベース接続確立エラー
これは,まだ phpMyAdmin を入れてないのと,データベースの設定も終わっていないため.
phpMyAdmin
「phpMyAdmin」をインストール.
まだそれだけでは phpMyAdmin には入れない.
phpMyAdmin に入れない
How to install WordPress on QTS 4.4
「コントロールパネル」の「SQL サーバー」で「SQL サーバーを…」にチェックを付けて「適用」し「root」のパスワードを登録する必要がある.
Root パスワードの設定
何故か http 接続では phpMyAdmin に入れない.https 接続では入れた.
左のツリーから「新規作成」を「クリック」.データベース名を「wordpress」として「作成」.
データベース名を「wordpress」として「作成」
WordPress のインストールに戻って,データベース情報を入力.
wordpress のデータベース情報の入力
これでインストールができる様になる.
WordPress インストールの開始


「インストールの実行」を押して,サイトの情報などを入力.
WordPress のサイト情報などの入力


https://jml.mish.work/various/nas/qnap-nas.html

Is this 投稿 useful? Useful Useless 0 of 1 people say this 投稿 is useful.

VirtualBox BLKCACHE_IOERR

今まで特に問題なく使えていた VHD が今日の午前中から調子が悪い.
VirtualBox BLKCACHE_IOERR

仮想マシンの実行中にエラーが発生しました!エラーの詳細を以下に示します。説明されたエラーを修正し、仮想マシンの再実行することができます。
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 キャッシュを使う」とあったが…
ホストの I/O キャッシュを使う
チェックを付けて起動させると,
スタートアップ修復
どうも違うみたいで,元に戻した.


どこかが壊れたのか?安定しない.
ブルースクリーンになってしまう


2021/02/28
どうも物理ディスクに障害が発生しているみたい.
突然ホストがブルースクリーンに.
Z170S0 がブルースクリーンに
起動後,ディスクの状態が「注意」となっていて「代替処理保留中のセクタ数」の所が黄色に.
代替処理保留中のセクタ数
イベントビューアを見ると disk のエラーがいっぱい.
イベントビューア 「disk 」のエラー
さかのぼって調べるとさらに 1 週間前位にもあり.
イベントビューア 「disk 」のエラー 2021/02/19
D ドライブのものをバックアップしていて,対象の VHD をコピーしている時読み取りエラーとなった.
VHD 「送り側のファイルまたはディスクから読み取れません」
最近,ホストの Windows Update 後などの再起動が遅いと感じていたが,この辺りが原因だったか?
PC の内蔵ディスクが壊れた?

Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

VC 14 デバッグ MFC にステップイン

VC 2015 で MFC を使用した SDI.exe をデバッグしていると,MFC のコードにステップインできない?
入っている他の VC で試すと VC 2013 まではうまく機能している.
検索しても,これはという内容には引っ掛からなかった?


アプリケーションクラスの CG3toMApp::InitInstance() を抜ける時,そのままステップ実行していると…
mfc140ud.i386.pdb は読み込まれていません
「Microsoft Symbol Servers」にチェックを付けて「読み込み」.
MFC ソース内のデバッグができる様になった.


設定としては「ツール」-「オプション」の中の「デバッグ」-「シンボル」.
「ツール」-「オプション」-「デバッグ」-「シンボル」


2022/02
%TEMP% では消えてしまうので,シンボルキャッシュの場所を変更している.
VC 2017 シンボルキャッシュの場所
VC フォールバック 設定


https://itl.mish.work/Iwao/Doc/other/vs/
https://jml.mish.work/index.php/cpp/vs-install.html

Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

「お名前.com」の設定

先日申し込んだ「お名前.com」の設定のメモ.

やはり全体的にわかり辛い.
ログインした時のホップアップも邪魔.
欲しい情報の検索をかけても help.onamae.com が上位に表示されてしまう.
またその内容(特に画像)が古いものが多い気がする.


メールが多すぎるので「お知らせメールの受信」を「配信なし」に設定.
画面右上の「お名前ID:?????」の所をクリックして「会員情報の確認/変更」に入り,その画面の下の方で設定.
whois 情報は申込時のデフォルト(WHOIS情報公開代行)のまま.


DNS の設定へ入る方法がわかり辛かった.
お名前.com 「DSN設定」
間違って「お申込み」のリンクの方を選んでしまうとカード情報の入力になる.
やりたかったのは「次へ」を押すとその画面が切り替わり表示される.
その中の「DNSレコード設定を利用する」の「設定する」をクリック.
お名前.com DNSレコードの設定
Aレコード」の方はうまくいったが,「AAAAレコード」の方はどこかの設定が悪いみたいでうまくいかない.


2021/02/22
Search Console の「DNS レコードでのドメイン所有権の確認」.
「以下の … DNS 設定にコピーします」を「コピー」.
お名前.com 「DNS レコードによる所有権の確認」の設定
「Value」の所に「貼り付け」.
「確認画面へ進む」,「設定する」で設定.
「Search Console」に戻り,「DNS レコードでのドメイン所有権の確認」の「確認」.
10 分程度で反映された.


2021/02/23
IPv6 関係で「DNSレコード設定」はそれ(AAAAレコード)で良かったみたい.
LAN 内では 3 つの NAS それぞれにアクセスできるようになった.
外からは,ルータの設定などがまだ足りないみたいでうまくアクセスできていない.


2021/03/09
Search Console 登録による Google からのアクセス.
mish.work を Search Console に登録

Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

CMutex の使用でデッドロック?

何年も前(2015/11?)からなのかもしれないが,
今の PC になってから作成した exe が起動時やサムネイルの表示などで停止する現象が時々発生している.
「ファイル更新監視」が停止
発生する頻度が低いのと,現象が絞り切れていなかったのでそのままになっていた.


今日,デバッグしていると exe が起動しない.
その時までに起動済みのものは動作しているが,止まってしまうものもあり.
以前この現象が発生した時は再起動することで回避したが,今回はもう少し調べてみることにした.


デバッガで追いかけると CMutex の Lock(INFINITE) で戻って来ない
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 で止まっていること.

Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

ドキュメント付きの起動で抜ける?

個人的なコートでのメモです.


普通に exe を起動してドキュメントを開くのは問題ない.
ドキュメント付きで起動すると,ウィンドウが表示されて,ドキュメントを読込み後終了してしまっている.
コマンドライン引数の設定
デバッガで追いかけると,ProcessShellCommand の呼び出しで FALSE となっている.
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;

これをやっていて困ったのが,ソースのタイル表示.
VC 2019 タイル表示
VS 2019 ではうまく動作するが,2017 など他のものではエラーになってしまう.
VC 2015 タイル表示でアプリケーションエラー

---------------------------
GLSm140: devenv.exe - アプリケーション エラー
---------------------------
0x000000006359C044 の命令が 0x0000000000000000 のメモリを参照しました。メモリが read になることはできませんでした。
プログラムを終了するには [OK] をクリックしてください
プログラムをデバッグするには [キャンセル] をクリックしてください
---------------------------
OK   キャンセル   
---------------------------
Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

QNAP ローカルマスターブラウザ

QNAP NAS の QTS の設定状態をいろいろ見ていたら「ローカルマスターブラウザを有効にする 無効」が目についた.
ローカルマスターブラウザ 無効
先日も閉じた LAN 環境が遅くて使えないくらいになり,幾つかの機器の再起動で何とか今は落ち着いた状態.
DS116 Wi-Fi とルータ間かと思い,別のアクセスポイントをかませてみたが,これは関係なさそう.
TS253D で「ローカルマスターブラウザ」を「有効」にして様子見.
QNAP NAS 「ローカルマスターブラウザ」の設定


ASUSTOR NAS AS5202T の設定を見ると「ローカルマスターブラウザを有効にする」にチェックが入っていた.
AS5202T 「ローカルマスターブラウザ」の設定
こちらは無効に.

Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

QNAP NAS での写真管理

先日設定した Qfileスマートフォンの写真のバックアップ は可能になった.
が,その写真などを参照する時の使い勝手が良くない.
Qphoto とうまく連携できない?また Qphoto の動作もイマイチ?


QNAP 写真管理」で検索すると QuMagie というのがあった.
NAS に QuMagie と QuMagie Core を入れて,スマートフォンには QuMagie をインストール.
QNAP NAS AppCenter QuMagie
これで,他の NAS と似た様な使い勝手になった.
Moto g8 power lite で g5 の写真
QuMagie の「アルバム」-「場所」.
QuMagie 「アルバム」-「場所」
「モノ」.
QuMagie 「モノ」
QuMagie 「モノ」

Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

QNAP NAS で写真のバックアップ

以前調べてわからなかった,スマートフォンの写真などの QNAP NAS へのバックアップ.
Synology NAS や ASUSTOR NAS ではそれぞれ専用のアプリで簡単に設定できる.
Synology NAS Photo Station
ASUSTOR NAS Photo Gallery
QNAP NAS Photo Station


改めて調べてみると Qfile を使用するみたい.
次の所を参考にさせてもらった.
「Qfile」で画像データの自動転送 ~ スマートフォンの写真をNASで管理する方法
メニューから「自動アップロード」を選択.
メニューから「自動アップロード」
アップロードするデータとアップロード先などの指定.
アップロードデータとアップロード先の指定
「完了」でアップロードが開始される.
「完了」でアップロードが開始

Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

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 12 LNK1104 の対応のためエディタでコンパイルオプションを削除
それならと思い,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++」-「プリプロセッサ」-「プリプロセッサの定義」をブランクにしてみたが…
「構成プロパティ」-「C/C++」-「プリプロセッサ」-「プリプロセッサの定義」
コンパイルすると _UNICODE などが定義されない.
<親またはプロジェクトの既定値から継承>
<親またはプロジェクトの既定値から継承>」にすることで,意図した設定になった.


2024/07/04
以前は VC 7 などを通していたが,最近は VC 8 以降のみにしている.
 VC6 プロジェクトの移行
 VC6 から VC2019 への移行
こうすることで,プリプロセッサの定義がうまくない現象はなくなった様に思う..

Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

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

アラート :i_Tools はダウンしているか応答していません
いつもなら数分で復旧したとメールが来るが,今回は違った.
自分で作成した接続ログのページを見ようとすると遅くて使えない.
DS115j で運用していた頃の Antivirus Essential が動作した時の様な感じ.
https://dev.mish.work/wordpress/2017/01/29/ds115j-9/


DSM に入ってリソースモニタで見ると CPU に負荷がかかっている.
「プロセス」を見ると,CPU を 数% 使用するプロセスが 30 個位あったと思う.
「php72」だったと思うがハードコピーなどがないので定かではない.
DSM から NAS を再起動して通常の状態になった.
DS116 リソースモニタ CPU
DSM のログを見たが,特にこれはというものはわからない.
//mish.myds.me/ に対して変なアクセスがあったので,その影響か?


Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

NAS の Wake-on-LAN 設定

NAS の WOL 設定.


Synology NAS
DSM WOL 設定
「コントロールパネル」-「ハードウェアと電源」-「全般」-「電源復旧」


ASUSTOR NAS
ADM WOL 設定
「設定」-「ハードウェア」-「電源」-「設定」


QNAP NAS
QTS WOL 設定
「コントロールパネル」-「システム」-「電源」-「Wake-on-LAN (WOL)」


私の環境は,ASUS ルータがあるのでそのアプリから起動させている.
ASUS ルータアプリ WOL
あまり使うことはないが,外から VPN で接続して ASUSTOR NAS 内の Win10 にアクセスできる様にしている.
VPN 接続して ASUSTOR NAS の VirtualBox にアクセス

Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.