ホーム » 2020 (ページ 2)

年別アーカイブ: 2020

2024年12月
1234567
891011121314
15161718192021
22232425262728
293031  

カテゴリー

アーカイブ

ブログ統計情報

  • 100,430 アクセス


フォルダの更新日時の変更

今までファイルの更新日時の変更は使っていた.
https://www.vector.co.jp/soft/winnt/util/se500182.html
が,このツールでフォルダの更新日時を変更しようとするとできない.
コードは CFile::SetStatus を使用している.

	CFileStatus	fs ;
	CFile::GetStatus(file,fs) ;
	fs.m_mtime = newTime ;
	CFile::SetStatus(file,fs) ;

CFile::SetStatus の中(…\atlmfc\src\mfc\filest.cpp)を見ると ::SetFileTime を使用している.
また Linux などでも使える utime(…\crt\src\utime.c)も ::SetFileTime を使っている.
VC 6 で作成したものをデバッガで追いかけると ::CreateFile で 0xffffffff が返ってきている.


ASUSTOR NAS で試すと,特に問題なく変更できる.

Iwao@AS5202T:/volume1/home/Iwao/gcc_test/Test/t_linux/t_mtime/t_utime $ cat t_utime.cpp
#include        <clocale>

#include        "i_trace.hxx"
#include        "filetime.hxx"
#include        "itls_tmp.hxx"
#include        "c_which.hxx"

int     _tmain  (int argc,TCHAR* argv[])
{
        _tsetlocale(LC_ALL,_T("")) ;
        {
                tstring temp_path = ::Get_i_Tools_tmp_date() ;
                tstring fold_path = ::Path_AddLastSP(temp_path) + ::Now_Format(_T("%H%M%S")) ;
                tstring file_path = ::Path_AddLastSP(temp_path) + ::Now_Format(_T("%H%M%S")) + _T(".tmp") ;
                {
                        ::Folder_Create   (fold_path) ;
                        ::File_CreateEmpty(file_path) ;
                        }
                {
                        time_t  f_time = ::File_GetMTime(file_path.c_str()) ;
                                f_time-= 3600*24*7 ;
                        ::File_SetMTime(file_path.c_str(),f_time) ;
                        ::File_SetMTime(fold_path.c_str(),f_time) ;
                        }
                {
                        tstring cmd     = tstring(cmd_ls_la) + _T(" ") + ::QuotM_Add_Auto(temp_path) ;
                        _tsystem(cmd.c_str()) ;
                        }
                }
        return  0 ;
        }
Iwao@AS5202T:/volume1/home/Iwao/gcc_test/Test/t_linux/t_mtime/t_utime $ g++ t_utime.cpp -Wall
Iwao@AS5202T:/volume1/home/Iwao/gcc_test/Test/t_linux/t_mtime/t_utime $ ll
total 136
drwxrwxrwx    2 Iwao     users       4.0K Nov  7 16:24 ./
drwxrwxrwx    3 Iwao     users       4.0K Nov  7 15:32 ../
-rwxr-xr-x    1 Iwao     users     122.7K Nov  7 16:24 a.out*
-rwxrwxrwx    1 Iwao     users        838 Nov  7 16:22 t_utime.cpp*
Iwao@AS5202T:/volume1/home/Iwao/gcc_test/Test/t_linux/t_mtime/t_utime $ ./a.out
total 0
drwxr-xr-x    3 Iwao     users           80 Nov  7 16:24 .
drwxr-xr-x    3 Iwao     users           60 Nov  7 16:24 ..
drwxr-xr-x    2 Iwao     users           40 Oct 31 16:24 162451
-rw-------    1 Iwao     users            0 Oct 31 16:24 162451.tmp
Iwao@AS5202T:/volume1/home/Iwao/gcc_test/Test/t_linux/t_mtime/t_utime $                                  

ASUSTOR NAS AS5202T 上で utime
今日はここまで.


2024/01/04
フォルダの更新日時の設定

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

Win10 他の PC が表示されない

::SHBrowseForFolder を使用している所で,最近 PC 名でアクセスできないと問合せが…
SHBrowseForFolder
私自身はエクスプローラで直接入力していたので特に困ってはなかったが,ちょっと調べたのでメモ.


Win10 他の PC が表示されない」で検索すると幾つかの対応方法が見つかる.
Windows10 – ネットワーク上のコンピューターが表示されない時の対処法
Windows 10 にてネットワークコンピュータが表示されない場合
【解決】ネットワークでコンピューターや共有フォルダが表示されない【Windows10】
Windows 10のエクスプローラの[ネットワーク]にPCが表示されない場合の対処方法
SMBv1 は、Windows 10 バージョン1709、Windows Server バージョン1709以降のバージョンでは既定でインストールされません。
「SMB 1」を入れる様な記述も多いが,「WS-Discovery」を利用する方法で…
Win10 エクスプローラでコンピュータ名が見えない
動作を確認するために,タスクマネージャのサービスで「Function Discovery Resource Publication」を「開始」.
「Function Discovery Resource Publication」を「開始」
エクスプローラで見える様になる.
Win10 エクスプローラでコンピュータ名が見える様になる


保有している NAS で,QNAP TS-253D は表示されている.
Synology NAS DS116 は「Windowsネットワーク探索を有効化して…」のチェックで表示されるようになる.
Synology NAS DS218jをWindowsからネットワーク探索
Synology NAS Windows ネットワーク探索の有効化
その他の NAS では設定がわからず,直接入力で対応.
実際はネットワークドライブとして割り当てたり,ショートカットを作成したりしている.
TS-253D


2021/11/10
Win10 などで,Windows Update してからアクセスできなくなった.
この場合は「ゲストログオンを有効にする」必要がある.
グループポリシーでゲストログオンを許可する
https://dev.mish.work/wordpress/2021/11/05/win-2022-classic-asp/
https://youtm-log.com/failure/pc-failure/anzendenai/

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

MFC コントロールのサブクラス化

今まで CWnd::SubclassDlgItem を使ってきたが,DDX_Control も同じ様なことをしているのではと思い調べてみた.


リストボックスをサブクラス化した時の OnInitDialog でのコード.

{
	m_CtrlListFolder.SubclassDlgItem(IDC_LIST_FOLDER,this) ;
	m_CtrlListFolder.Init() ;
	m_CtrlListFolder.ResetContent() ;
	m_CtrlListFolder.SetItemHeight(30) ;
	}

IDC_LIST_FOLDER は,オーナードローリストボックス.
リストボックス オーナードロー
Inside Visual C++ や MFC による Windows 95 プログラミング を参考にしたと思う.
DDX_Control
MFC のバージョンが上がると少しずつ変更が加わっている.
ソースは DlgData.cpp .VC 11 からは WinCore2.cpp .
MFC のソースは難しい.


かなり前の MSDN で次の内容を見つけた.
[MSVC] MFC を使用しての動的サブクラス化
[MSVC] MFC を使用しての動的サブクラス化
DDX_Control でもいけそうな気もするが,…

テクニカル ノート 14:カスタム コントロール

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

C++ 継承でのエラー C2660

元々一つのクラスとしていたが,それを分割した時のエラー対応のメモ.

bool	D_Image::Draw	(HDC hdc,const RECT rect)
{
	if (GetDocPath().empty())		{	return	false ;		}
	{
		if (::Path_GetExtLow(GetDocPath()) == _T("emf")) {
			return	E_MetaF::Play(hdc,GetDocPath().c_str(),rect) ;
			}
		}
	if (HBMP == NULL && HICN == NULL) {
	//	...
		}
	if	(HBMP != NULL)	{	return	::Bitmap_Draw(hdc,rect,HBMP) ;	}
	else if	(HICN != NULL)	{	return	::Icon_Draw  (hdc,rect,HICN) ;	}
	return	false ;
	}
bool	D_Image::Draw	(HWND hwnd)
{
	if (GetDocPath().empty())		{	return	false ;		}
	if (hwnd == NULL)			{	return	false ;		}
	RECT	rect = {	0	} ;
	::GetClientRect(hwnd,&rect) ;
	bool	result = false ;
	{
		HDC		hdc  = ::GetDC(hwnd) ;
		result = Draw(hdc,rect) ;
		::ReleaseDC(hwnd,hdc) ;
		}
	return	result ;
	}

この E_MetaF::Play の部分を分離.

class	D_I_E	:	public		D_Image		{
public:
	virtual	bool	Draw		(HDC  hdc,const RECT rect)	{
		if (GetDocPath().empty())	{	return	false ;		}
		{
			if (::Path_GetExtLow(GetDocPath()) == _T("emf")) {
				return	E_MetaF::Play(hdc,GetDocPath().c_str(),rect) ;
				}
			}
		return	D_Image::Draw(hdc,rect) ;
		}
	} ;

この状態で変数の宣言を D_I_E として呼び出している所でエラー.

		Sel_doc.Draw(this->GetSafeHwnd()) ;
	//	Sel_doc.D_Image::Draw(this->GetSafeHwnd()) ;
--------------------構成: T_DImage - Win32 Debug--------------------
コンパイル中...
T_DI_Dlg.cpp
\\TestXP\Documents\Develop\VC_Test\Test\etc\EnhMetaF\T_DImage\T_DI_Dlg.cpp(186) : error C2660: 'Draw' : 関数が不正な 1 個の実引数をともなって呼び出されました。
cl.exe の実行エラー
T_DImage.exe - エラー 1、警告 0

下の様に修飾すれば通る.
また,D_I_E の関数として次のものを用意すれば D_Image:: の様に修飾しなくても大丈夫.

	virtual	bool	Draw		(HWND hwnd)	{
		return	D_Image::Draw(hwnd) ;
		}

変更の内容にもよるが,
なるべく既存のコード(呼び出している部分)の変更が最小限となる方が良いか?
C++ 継承でのエラー

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

構造体の初期化

幾つかの Windows API を呼び出す所を書き換えていて,
RECT や POINT の構造体の初期化で色々と気になり少し調べたことのまとめ.


class として書く場合は,コンストラクタで初期化しているので意識しない.

struct	Vector2	{
//	Vector2	()					{}
	Vector2	(T v=0)		: x(v),	y(v)		{}
	Vector2	(T x, T y)	: x(x),	y(y)		{}
//	...
	T	x ;
	T	y ;
	} ;

MFC を使用している時も同様.

	CRect	rect(0,0,0,0) ;

他の Win32 の構造体だと

	MEMORYSTATUSEX	memStat ;
	memset(&memStat,0,sizeof(MEMORYSTATUSEX)) ;
	memStat.dwLength= sizeof(MEMORYSTATUSEX) ;
	::GlobalMemoryStatusEx(&memStat) ;

Windows では ::ZeroMemory を使っていることもあり.

#define ZeroMemory(pb,cb)           memset((pb),0,(cb))

これまで RECT を 0 にする場合,次の様にも書いていた.

	RECT	rect = { 0,0,0,0 } ;

次の様に省略する方法もあるのは知っていたがあまり使っていない.

	RECT	rect = { 0 } ;

K & R 2nd の A8.7 に書かれている.
Web で検索すると ” RECT rect = { } ; ” の様な記述もあったが,これはどうかと…


構造体のコピーや戻り値は悩む所.
RECT の様な単純な構造では特に問題ないと思う.
XML などのツリー構造の場合はデータにより時間がかかるので注意が必要.


2020/10/13
次の様なコードで動作 を確認.

struct	strct_c	{
	i__8	i1 ;
	i_32	i4 ;
	i_16	i2 ;
	i_64	i8 ;
	} ;

bool	test_struct	(void)
{
	strct_a	sa_rn ;
	strct_b	sb_rn ;
	strct_c	sc_rn ;
	strct_a	sa_f0 = {1,2,3,4} ;
	strct_b	sb_f0 = {1,2,3,4} ;
	strct_c	sc_f0 = {1,2,3,4} ;
	strct_a	sa__0 = {0} ;
	strct_b	sb__0 = {0} ;
	strct_c	sc__0 = {0} ;
	strct_a	sa_m0 ;	memset(&sa_m0,0,sizeof(sa_m0)) ;
	strct_b	sb_m0 ;	memset(&sb_m0,0,sizeof(sb_m0)) ;
	strct_c	sc_m0 ;	memset(&sc_m0,0,sizeof(sc_m0)) ;
	::dump_mem(&sc_rn,sizeof(sc_rn)) ;
	::dump_mem(&sc_f0,sizeof(sc_f0)) ;
	::dump_mem(&sc__0,sizeof(sc__0)) ;
	::dump_mem(&sc_m0,sizeof(sc_m0)) ;
	return	true ;
	}

構造体の初期化 VC6
構造体の初期化 ASUSTOR NAS AS5202T
ある程度は予想通り…
パディング部分の扱いが異なるのでコードによっては注意が必要.

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

TS-253D 再セットアップ – 6

今日 QTS を起動すると,更新版があると表示が…
メッセージに従い操作すると何故か更新できない.
QNAP ファームウェア更新エラー
Qfinder やスマートフォンから操作しても更新できない.
他にも,先日から Ubuntu Linux Station の更新がうまくできなくなっている.


これらがうまく機能しなくなったのは先週くらい?から.
閉じた LAN 用にスイッチングハブを追加してそこに接続したのが影響している?
試しに LAN ケーブルを外して更新すると通った.
同様に Ubuntu Linux Station も更新できた.
QNAP Ubuntu Linux Station インストール


2020/10/05
記事を書いた時は設定場所がわからなかった.
「ネットワーク」-「インターフェース」の中に「システムの既定のゲートウェイ」がある.
開いた設定画面で LAN 1 に設定.
QNAP デフォルトゲートウェイの設定


2020/11/08
先日また QTS の更新版があり更新してみたが…
「システムの既定のゲートウェイ」の設定だけでは回避できないのか?それとも設定が違う?
結局ケーブルを抜いて更新した.

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

コンソール AP での define

コンソール AP で Windows.h や Afx.h を読み込んだ時のエラーに対応するために i_def_aw.hxx を用意.
_AFXDLL で判断しているため「MFC のスタティックライブラリを使用」には対応できない.

//	(VS8)\VC\AtlMFC\Include\AfxV_W32.h 
#ifdef			_MSC_VER
	#ifdef		_UNICODE
		#ifndef	 UNICODE
		#define	 UNICODE		// UNICODE is used by Windows headers
		#endif
	#endif
	#ifdef		 UNICODE
		#ifndef	_UNICODE
		#define	_UNICODE		// _UNICODE is used by C-runtime/MFC headers
		#endif
	#endif
#endif

#ifdef			 _MSC_VER
	#ifdef		 _AFXDLL
		#include <Afx.h>
	#else
		#include <Windows.h>
	#endif
#endif

#ifdef			_MFC_VER
	//		...
#endif

i_def_aw.hxx
i_def_aw.hxx 2020/09


2022/07/27
その後,Windows.h を使用するコードを書いていてのまとめ.
#include "i_def_aw.hxx" // #include <Windows.h>
Win32 API のみで書いていて,MFC を利用する可能性がある場合は,この様に置き換え可能と思われる.
そうでない場合は,それらを利用するソースの先頭で Afx.h または i_def_aw.hxx をインクルードすれば良い.
https://dev.mish.work/wordpress/?s=i_def_aw


2022/08/01
今回書いた FVersion.hxx の様に MFC を利用しないものは,Windows.h の方が良い.
MFC コードが混在する場合 は,i_def_aw.hxx の利用と _MFC_VER での振り分けが良さそう.

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

NAS VirtualBox に Win10 … 続き

今日 ASUSTOR NAS AS5202T の ADM を起動すると VirtualBox の更新版があった.
新しいものは 6.1.12.r01 .以前のものは 5.2.22 だったと思う.


以前 PC で作成した vdi を NAS にコピーして利用している環境 DevX .
5.2 の時よりも起動は安定したか?止まってしまうこともあり.


前回,インストールしようとしたが操作ができずそのままとなっていた.
VirtualBox の更新でどこかの設定が変更されたのかはわからないが,以前選択できなかった「リモートデスクトップ」の設定に入れるようになった.
ASUSTOR NAS VirtualBox 「リモートデスクトップ」設定
Win10 PC の「リモートデスクトップ接続」で接続してインストール.
ASUSTOR NAS リモートデスクトップ接続
いつもの様に進めていくと「Microsoftアカウント」の入力に.
Win10 LTSC 2019 「ローカルアカウント」の入力に
「代わりにドメインに参加する」を選択すると「ローカルアカウント」での入力ができた.


https://jml.mish.work/various/nas/asustor.html

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

Joomla! の URL

Joomla! のページで,今まで URL に Joomla! が管理している ID が付加されていた.
特に困ってはなかったが,他の NAS に移行すると ID が変わってしまうみたいなので調べてみた.
検索してもなかなかいい情報がヒットしない.
それで見つけたのが次の所.
Joomlaの新しいSEF URL(パーマリンク)
Joomla! の URL の ID を削除する設定
「記事:オプション」の「ルーティング」の所を「モダン」を選択して「URLからIDを削除する」を「はい」に.


Joomla! は,インデックスされるまで 404 となってしまう.
そのため一部のページは次の様なファイルを置くことで対応.
https://mish.work/joomla/index.php/cpp/ref-vcredist-xxx-exe.html

<!DOCTYPE html>
<html	lang="ja"	>
	<head	>
		<meta	charset="UTF-8"	/>
		<meta	name="viewport"	content="width=device-width,initial-scale=1.0"	/>
		<title	>vcredist</title>
		<meta	http-equiv="refresh"	content="0;url=/joomla/index.php/cpp/ref-vcredist-xxx-exe.html">
		</head>
	<body	>
		</body>
	</html>

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

TS-253D 再セットアップ – 5

外からアクセスすることはないが,念のため…
QTS に入るためのポートを変更.
QNAP QTS システムポート
Synology NAS では次の所に書かれている.
Synology NAS のセキュリティを強化する方法
QNAP NAS で書かれていた所.
ワンランク上のセキュリティ対策を施す「myQNAPcloud」


Linux Station のインストール.
QNAP Linux Station
続いて Ubuntu のインストール.
QNAP Ubuntu Linux Station のインストール
右の真ん中辺りの http://…/linux-station-vnc/ をクリックして起動できる.
QNAP Ubuntu 20.04 起動画面
QNAP Ubuntu 20.04


そのままだと英語なので,日本語のインストール.
「Settings」-「Region & Language」-「Manage installed Languages」.
Ubuntu 言語設定
「Install / Remove Languages…」.
Ubuntu 日本語のインストール
「Japanese」にチェックを付けて「Apply」.
どこかに設定があるのかもしれないが,インストールされた「日本語」を選べないので再ログイン.
Ubuntu 「日本語」を選択
有効にするために「Restart」.
Ubuntu restart

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

robocopy でエラー 50 (0x00000032)

次の様なコマンドでファイルをバックアップしていると,

robocopy "\\DevX\Public\Documents\Develop"  "\\AS5202T\Public\Document\Develop"  /e /xo /xf *.bak 
...
                           6    \\DevX\Public\Documents\Develop\VC_Test\T_mem\T_PhysF\
                           8    \\DevX\Public\Documents\Develop\VC_Test\T_STL\
2020/09/11 10:03:08 エラー 50 (0x00000032) コピー先ディレクトリにアクセスしています \\AS5202T\Public\Document\Develop\VC_Test\T_STL\
この要求はサポートされていません。
30 秒間待機しています... 再試行しています...

robocopy エラー 50 0x00000032
何かの拍子に開いたままの状態になってしまったみたいで ASUSTOR NAS で「切断」することで対応.
ADM 「システム情報」-「オンラインユーザー」-「切断」
* 使用しているユーザを切断しない様に注意.


ディレクトリ以下のコピー
ClCpy 2021.06

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

日本語名ファイルのアップロード

次の所から日本語名のファイルをアップロードはできていたが,コードでの対応はうまくできていなかった.
https://itl.mish.work/…/upload.htm
そのため,アップロード時に 7 ビットのファイル名に変換することで対応していた.
これらのコードを書いたのは 3 年位前なので,その当時はまだよくわかっていなかった.
https://dev.mish.work/wordpress/2017/09/04/chttpfile-http-post/
またテクスチャファイル名などが日本語の場合はうまくいかないことも多かった.


最初,日本語名でそのままアップロードすると,いろいろ困った現象に…
PC から NAS 上のアップロード先のファイルが見えなくなってしまった.
一度スマートフォンの NAS 用のファイルマネージャから参照すると PC でも見えるようにはなった.
動作を見ると,サーバ側のコードは動作しているが,格納しているファイル名がうまく渡せていない.
ログなどを確認すると,デバッグ用 MBCS.exe でファイル名が「シフト JIS」のままになっていた.


送られるデータとしては次の所にあたる部分.
$_FILES[‘userfile’][‘name’]
これを UTF-8 にして渡す必要がある.
コードとしては次の所.

v_char	Make_send_data	(LPCTSTR upFile,LPCTSTR ___boundary)
{
	v_char	up_Data = v_c_Load(upFile) ;
	v_char	sndData ;
	{
		tstring	ct_boundary	=	___boundary ;
		tstring	file_img	=	::QuotM_Add(_T("file_img")) ;
		tstring	fileName	=	::QuotM_Add(::Path_GetName(upFile)) ;
		tstring	dataPre ;
		tstring	dataPst ;
		dataPre+=	CT_boundary__	+	ct_boundary	+			C_CRLF ;
		dataPre+=	CD_cd_f_d_n_	+	file_img	+	CD_cd__fn_	;
		dataPre+=				fileName	+			C_CRLF ;
		dataPre+=	CT_ct_a_o_s							C_CRLF ;
		dataPre+=									C_CRLF ;
		dataPst+=									C_CRLF ;
		dataPst+=	CT_boundary__	+	 ct_boundary	+	CT_boundary__	C_CRLF ;
	//	v_char	vc_pref = ::To_v_char(::To__string(dataPre.c_str())) ;
		v_char	vc_pref = ::To_v_char(::To_UTF8   (dataPre.c_str())) ;
		v_char	vc_post = ::To_v_char(::To__string(dataPst.c_str())) ;
		sndData.insert(sndData.end(),vc_pref.begin(),vc_pref.end()) ;
		sndData.insert(sndData.end(),up_Data.begin(),up_Data.end()) ;
		sndData.insert(sndData.end(),vc_post.begin(),vc_post.end()) ;
		}
	return	sndData ;
	}

To__string でそのまま char の配列としていたものを UTF-8 にしてから char の配列に.
UpFile.hxx アップロードするファイル名を UTF-8 に
UpFile.hxx
quotm.hxx


2020/09/08
今度はサーバ側のコード.
本当はクライアントの CInternetSession のコンストラクタで与える User Agent .
UTF-8 でセットすれば良いのはわかるが,引数が LPCTSTR なのでどうすれば良いかわからず.
そのためサーバ側のログを出力する部分でうまく機能しないことがある.
Synology NAS では,一部文字化けするが特に問題なさそう.
ASUSTOR NAS や QNAP NAS では,20200908.txt の読み込み時に止まっている様子.
次の様に //IGNORE を付加して変換.

iconv API は iconv_open(_T("UTF-8//IGNORE")) 
iconv -f CP932 -t UTF-8//IGNORE 20200908.txt >  20200908.uf8
uconv -f CP932 -t UTF-8 -i      20200908.txt -o 20200908.uf8
Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

FindExecutable と C2664

::FindExecutable の動作を確認しようと思い次の様なコードを書いた.

#include	<clocale>
#include	<iostream>

#include	<Windows.h>

#include	"i_define.hxx"
#include	"tstring.hxx"

tstring	Get_doc_exe	(LPCTSTR doc)
{
	tstring	exe_path ;
	exe_path.resize(MAX_PATH,0) ;
	::FindExecutable(doc,NULL,&exe_path[0]) ;
	return	exe_path.c_str() ;
	}

int	_tmain	(int argc,TCHAR* argv[])
{
	_tsetlocale(LC_ALL,_T("")) ;
	{
		tstring	buf ;
		buf.resize(1000) ;
		{
			while (std::terr << _T("file ? =") , std::tin.getline(&buf[0],buf.size()))
			{
				tstring	str = buf.c_str() ;
				if	(str == _T("q"))	{	break ;		}
				else if (str == _T("Q"))	{	break ;		}
			//	str = ::QuotM_Del_All(str) ;
				if (str.empty())		{	continue ;	}
			//	if (::File_IsNothing(str))	{	continue ;	}
				std::tout << ::Get_doc_exe(str.c_str()) << std::endl ;
				}
			}
		}
	return	0 ;
	}

MBCS でビルドすると問題ないが,UNICODE にすると,

--------------------構成: get_exe - Win32 Release--------------------
コンパイル中...
get_exe.cpp
C:\Documents and Settings\All Users\Documents\Develop\VC_Test\PC_doc\get_exe\get_exe.cpp(37) : error C2664: 'class std::basic_istream<unsigned short,struct std::char_traits<unsigned short> > &__thiscall std::basic_istream<unsigned short,struct std::
char_traits<unsigned short> >::getline(unsigned short *,int)' : 1 番目の引数を 'char *' から 'unsigned short *' に変換できません。 (新しい機能 ; ヘルプを参照)
        指示された型は関連がありません; 変換には reinterpret_cast、 C スタイル キャストまたは関数スタイルのキャストが必要です。
C:\Documents and Settings\All Users\Documents\Develop\VC_Test\PC_doc\get_exe\get_exe.cpp(37) : fatal error C1903: 直前のエラーを修復できません; コンパイルを中止します。
cl.exe の実行エラー

get_exe.exe - エラー 2、警告 0

C2664 については ここ
Windows.h の include を i_define.hxx より後に.


::FindExecutable ではうまくない様な記述もあるが,今回の目的にはこれで良いかなと思う.
https://dobon.net/vb/dotnet/system/findassociatedexe.html
::FindExecutable を使用した動作テスト
https://itl.mydns.jp/…/get_exe_2020_09.zip


更にちょっと面白い動作があったので…

#include	"i_define.hxx"
#include	"tstring.hxx"
#include	<Windows.h>

#include	<clocale>
#include	<iostream>

int	_tmain	(int argc,TCHAR* argv[])
{
	_tsetlocale(LC_ALL,_T("")) ;
	{
		tstring	buf ;
		buf.resize(1000) ;
		{
			while (std::terr << _T("file ? =") , std::tin.getline(&buf[0],buf.size()))
			{
				tstring	str = buf.c_str() ;
				if	(str == _T("q"))	{	break ;		}
				else if (str == _T("Q"))	{	break ;		}
				if (str.empty())		{	continue ;	}
				::ShellExecute(NULL,NULL,str.c_str(),NULL,NULL,SW_SHOWNORMAL) ;
				}
			}
		}
	return	0 ;
	}

関連付けされているドキュメントは,::ShellExecute で普通に開く.
そうでないドキュメントは,エクスプローラでクリックしたのと同じような動作.
NotePad や MSPaint などと入力すると,幾つかの exe は起動できる.
起動できないものもあり,その違いは不明.
https://itl.mydns.jp/…/se_doc_2020_09.zip

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

TS-253D 再セットアップ – 4

QTS で Virtualization Station をクリックすると,
Virtualization Station にようこそ
「終了」を押してしばらくすると,
QNAP VirtualizationStation 3
「VM の作成」.
予め iso は NAS にコピー済み.
QNAP  VS3  VM の作成
「OK」を押すと,
QNAP VM3  自動インストール
ここは「キャンセル」.
QNAP VS3  VM のリスト
「Win10x86」のアイコンを押すと,
QNAP  VS3  Win10x86  スタート
「スタート」を押すと,Windows のセットアップが始まる.
QNAP VS3  Win10 セットアップ
後は Windows のいつものインストール動作.
「ローカルアカウント」でインストール.
QNAP VS3  Win10 ローカルアカウント
「VM 情報」を選択して「ゲストツールCDを挿入する」.
QNAP VM3 ゲストツールCD の挿入
QNAP VM3  ゲストツールのインストール
QNAP VM3  ゲストツールのインストール VNC
ブラウザではあまり反応が良くない気がする.
PC などで操作する場合は VNC クライアント を使用した方が少しは快適.

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

CEdit に複数行の貼り付けで消える?

先日作成していたツールで,エディットボックスに複数行のデータを貼り付けるとうまく機能しない現象があった.
数行ならば OK だが,20 行位を超えると,一瞬表示されるが消えてしまう.
表示できる行数を超えていると貼り付けできないみたい.
Edit プロパティ 垂直スクロールバー 垂直オートスクロール
対応方法は「Edit プロパティ」の「垂直スクロールバー」か「垂直オートスクロール」にチェックを付ける.
VC 2019 CEdit V scroll

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

TS-253D 再セットアップ – 3

Entware のインストール.前回 と同様だが少し画像と説明を追加.


「App Center」を開き,右上の「設定(歯車マーク)」をクリック.「アプリリポジトリ」タブを選択.
QNAP NAS  AppCenter 設定
「追加」を押して「OPKG Store」の URL「 https://www.qnapclub.eu/en/repo.xml 」を入力.
ログイン情報は不要.
QNAP NAS  QPKG store の追加
https://www.qnapclub.eu/en/howto/1


左のアイコンに「OPKG Store」が増える.選択して「すべてのアプリ」.検索ボックスに「Entware」と入力.
QPKG store から Entware を検索
「Entware-std」をインストール.
QNAP NAS  Entware のインストール
これで opkg コマンドが使える様になる.
ASUSTOR NAS で作成した .out は,この段階で動作する様になるみたい.


gcc と python3 などのインストール
admin で入ったコンソール で,
opkg install gcc
opkg install python3
他に tree , mc なども.



ASUSTOR NAS
Synology NAS


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


2023/01/11
//qnapclub.eu/ にうまく接続できないので…
https://www.qnapclub.eu/en/repo.xml
https://www.qnapclub.eu/en/howto/1

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

TS-253D 再セットアップ – 2

ファームウェアのインストールが終わると…
QNAP  スマートインストールガイド開始
手順は次の所にある通り.
https://unistar.jp/column/2899/
QNAP  インストールガイド 概要
スナップショットは使わないかと思い,ボリューム容量は「最大に設定」.
QNAP  ボリューム容量を「最大に設定」
QNAP  File Station 5  ダッシュボード


設定した内容
ユーザを追加.
通知センタのメール通知設定.
アンチウィルスを有効に.
Q’center をインストール,設定.
HBS 3 Hybrid Backup Sync のインストール,Google ドライブからの片方向コピー設定
RAID の同期が動作しているためか,ファイルのコピーに時間がかかる.
同期が終わるまでこのままの方が良さそう.


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


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

TS-253D 再セットアップ

ある程度の動作を確認したので再セットアップ.
「コントロールパネル」-「工場出荷時設定に復元」-「設定リセット」を選択.
再起動した後入り方がわからず,
admin で入ったままのコンソールがあったので,poweroff で電源 OFF .
もう一つの HDD を取り付けて起動.
Qfinder で見つかった.
QNAP NAS  Qfinder Pro
その後しばらく入り方がわからなかったが,admin/245EBE40..15(MAC アドレス)で入れた.
QNAP デフォルトパスワードについて(ファームウェア4.4.2以降)
QNAP  Qfinder パスワード設定


確かにデータなどは残っているが,個人的には使い勝手が良くないので「工場出荷時設定の復元と…」.
違いなどは次の所を参考にさせてもらった.
https://datarescue.yamafd.com/qnap_reset/
QNAP NAS 工場出荷時設定の復元と...フォーマット


起動すると,確かにデータは消えているが,思ったものと違う.
QNAP ストレージ&スナップショット
結局「NAS の再初期化」を選択.
再起動後,「ファームウェアのインストール」画面になった.
QNAP  ファームウェアのインストール


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

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

FBX SDK 2020.1.1

FBX SDK 2020.1.1 があった.
FBX SDK 2020.1.1
今は時間が取れないので,ダウンロードとインストールまで.


いつもの様に,インクルードとライブラリのパスを変更 2020.1.1 に.
FBX SDK インクルードパスの設定
FBX SDK ライブラリパスの設定
2020.1 であったワーニング LNK4099 は出なくなった?

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

TS-253D 温度

昨日から,システムの温度とファンの回転数が正しく表示されなくなった.
TS-253D  システムの温度
ディスクの温度は 40 度位なので正常と思われる.
ファンの音も変化するので,表示だけの問題ではないかと思う.
NAS の再起動で一時的に正しく表示するが,しばらくするとダメ.
スマートフォンの Qmanager も同様.
先日 QTS(ファームウェア)をアップデートした関係か?


記事を書いた後 NAS を再起動.その後安定している?
TS-253D  温度


2020/08/25
今日は CPU 使用率の表示がされない.
TS-253D  CPU 使用率
これも NAS の再起動で解消.


2020/08/26
Q’center が更新された.何か不具合があったのかも…


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

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