Iwao myds

dev.mish.work へ移行しました.

この画面は、簡易表示です

ADM DataSync Center

久しぶりに ASUSTOR NAS 上で C++ のコードを試そうと思い見ていると…
共通のコードが古い.丁度 1 年前の更新で止まっている.
他の QNAP NAS などは,正しく更新されている.
ある程度区切りの良い状態で「Google ドライブ」に更新して,それぞれの NAS の同期機能でコピーしている.
この様にすることで,自動バックアップと NAS 上の共通コードの更新を行っている.
QNAP NAS HBS 3


今まで ASUSTOR NAS では「DataSync for GoogleDrive」を使用してきた.
ADM DataSync for GoogleDrive
が,起動しようとすると「ロード中」となって,表示が変わらなくなりうまく動作しない.
App Central を見ても,なさそう.DataSync Center になったみたい.


「DataSync Center」のインストール.
ASUSTOR NAS  DataSync Center インストール
「DataSync Center 」を起動して「Googleドライブ」に「チェック」.
「同期設定をインポートします」にカーソルを合わせると,
DataSync for GoogleDrive からの同期データは,DataSync Center にインポートすることができます.
「Googleドライブ から NAS へ」を指定.
Googleドライブ から NAS へ
同期するパスの指定.ここでは Public なども指定できるので,Home への依存はなくなったみたい.
ASUSTOR NAS DataSync Center 同期パスの指定
あとはそのまま受け入れると同期が始まる.
DataSync Center 「同期中」

この投稿は役に立ちましたか? 役に立った 役に立たなかった 0 人中 0 人がこの 投稿 は役に立ったと言っています。


error LNK2019 : … _GdiplusStartup

VC 6 で作成したプロジェクトを VC 8 に上げてビルドすると…

------ ビルド開始: プロジェクト: DocTh, 構成: Debug Win32 ------
リンクしています...
ComNGP01.obj : error LNK2019: 未解決の外部シンボル _GdipCreateSolidFill@8 が関数 "public: __thiscall Gdiplus::SolidBrush::SolidBrush(class Gdiplus::Color const &)" (??0SolidBrush@Gdiplus@@QAE@ABVColor@1@@Z) で参照されました。
ComNGP01.obj : error LNK2019: 未解決の外部シンボル _GdipDeleteBrush@4 が関数 "public: virtual __thiscall Gdiplus::Brush::~Brush(void)" (??1Brush@Gdiplus@@UAE@XZ) で参照されました。
ComNGP01.obj : error LNK2019: 未解決の外部シンボル _GdipCloneBrush@8 が関数 "public: virtual class Gdiplus::Brush * __thiscall Gdiplus::Brush::Clone(void)const " (?Clone@Brush@Gdiplus@@UBEPAV12@XZ) で参照されました。
ComNGP01.obj : error LNK2019: 未解決の外部シンボル _GdipFree@4 が関数 "public: static void __cdecl Gdiplus::GdiplusBase::operator delete(void *)" (??3GdiplusBase@Gdiplus@@SAXPAX@Z) で参照されました。
ComNGP01.obj : error LNK2019: 未解決の外部シンボル _GdipAlloc@4 が関数 "public: static void * __cdecl Gdiplus::GdiplusBase::operator new(unsigned int)" (??2GdiplusBase@Gdiplus@@SAPAXI@Z) で参照されました。
ComNGP01.obj : error LNK2019: 未解決の外部シンボル _GdipCreateLineBrushI@24 が関数 "public: __thiscall Gdiplus::LinearGradientBrush::LinearGradientBrush(class Gdiplus::Point const &,class Gdiplus::Point const &,class Gdiplus::Color const &,class Gdiplus::Color const &)" (??0LinearGradientBrush@Gdiplus@@QAE@ABVPoint@1@0ABVColor@1@1@Z) で参照されました。
ComNGP01.obj : error LNK2019: 未解決の外部シンボル _GdipCreateFromHDC@8 が関数 "public: __thiscall Gdiplus::Graphics::Graphics(struct HDC__ *)" (??0Graphics@Gdiplus@@QAE@PAUHDC__@@@Z) で参照されました。
ComNGP01.obj : error LNK2019: 未解決の外部シンボル _GdipDeleteGraphics@4 が関数 "public: __thiscall Gdiplus::Graphics::~Graphics(void)" (??1Graphics@Gdiplus@@QAE@XZ) で参照されました。
ComNGP01.obj : error LNK2019: 未解決の外部シンボル _GdipSetSmoothingMode@8 が関数 "public: enum Gdiplus::Status __thiscall Gdiplus::Graphics::SetSmoothingMode(enum Gdiplus::SmoothingMode)" (?SetSmoothingMode@Graphics@Gdiplus@@QAE?AW4Status@2@W4SmoothingMode@2@@Z) で参照されました。
ComNGP01.obj : error LNK2019: 未解決の外部シンボル _GdipFillRectangle@24 が関数 "public: enum Gdiplus::Status __thiscall Gdiplus::Graphics::FillRectangle(class Gdiplus::Brush const *,float,float,float,float)" (?FillRectangle@Graphics@Gdiplus@@QAE?AW4Status@2@PBVBrush@2@MMMM@Z) で参照されました。
ComNGP01.obj : error LNK2019: 未解決の外部シンボル _GdipFillRectangleI@24 が関数 "public: enum Gdiplus::Status __thiscall Gdiplus::Graphics::FillRectangle(class Gdiplus::Brush const *,int,int,int,int)" (?FillRectangle@Graphics@Gdiplus@@QAE?AW4Status@2@PBVBrush@2@HHHH@Z) で参照されました。
ComNGP01.obj : error LNK2019: 未解決の外部シンボル _GdipFillPie@32 が関数 "public: enum Gdiplus::Status __thiscall Gdiplus::Graphics::FillPie(class Gdiplus::Brush const *,float,float,float,float,float,float)" (?FillPie@Graphics@Gdiplus@@QAE?AW4Status@2@PBVBrush@2@MMMMMM@Z) で参照されました。
ComNGP01.obj : error LNK2019: 未解決の外部シンボル _GdiplusStartup@12 が関数 "public: static int __cdecl UseGdiPlus::Startup(void)" (?Startup@UseGdiPlus@@SAHXZ) で参照されました。
ComNGP01.obj : error LNK2019: 未解決の外部シンボル _GdiplusShutdown@4 が関数 "public: static int __cdecl UseGdiPlus::Shutdown(void)" (?Shutdown@UseGdiPlus@@SAHXZ) で参照されました。
c:\Temp\iShellE\DocTh\Debug.080/DocTh.exe : fatal error LNK1120: 外部参照 14 が未解決です。
DocTh - エラー 15、警告 0
========== ビルド: 0 正常終了、1 失敗、0 更新、0 スキップ ==========

ドキュメントに対する EMF  VC 8
リンク対象に Gdiplus.lib を追加して対応.

この投稿は役に立ちましたか? 役に立った 役に立たなかった 0 人中 0 人がこの 投稿 は役に立ったと言っています。


VirusTotal SmpTxt.exe

Synology NAS の Cloud Sync のログに,ダウンロードできないファイルが幾つかあった.
対象のファイルは SmpTxt.zip で,その中の SmpTxt.exe がうまくない様子.
VC 6 でビルドしたものがマルウェアなどとして検出されている.VC 8 でビルドしたものは問題ない.
VirusTotal  SmpTxt.exe
Vector に登録できているので誤検出だろうと思うが,どうしたものか.
i_ShellExt 未定義ドキュメントのサムネイルを表示可能に

この投稿は役に立ちましたか? 役に立った 役に立たなかった 0 人中 0 人がこの 投稿 は役に立ったと言っています。


SSD の温度が高くなった?

昨日の午後になって,SSD の温度がいつもより高いことに気づいた.
SSD の温度
今まで,使っていない時は 50~60℃位だったのが,70℃以上になっている.


最近の更新は,SSD のファームのアップデートと,月齢の Windows Update .
どちらかが影響しているものと思われるが,何とも言えない?
表示だけの問題であれば良いが…

この投稿は役に立ちましたか? 役に立った 役に立たなかった 0 人中 0 人がこの 投稿 は役に立ったと言っています。


NAS ファイアウォール設定

以前から phpMyAdmin を狙ったアクセスが多い.
見つけると IP の範囲で Synology NAS のファイアウォールに追加してきた.
その影響かどうかわからないが WordPress などへのアクセスが減った気がする.
日本からの 443 を許可する設定を追加してみた.
Synology NAS ファイアウォール設定 日本を「許可」
これで少しはアクセスが増えるか?

この投稿は役に立ちましたか? 役に立った 役に立たなかった 0 人中 0 人がこの 投稿 は役に立ったと言っています。


WebGL Three.js r144

久しぶりに Three.js を更新しようかと…
いつものデータを r144 に書き換えて…

r131 と比べると,オブジェクトが暗い.


サンプルのデータを見ると mtl が変更されている.


ライブラリの変更履歴 を見ると 136 → 137 で変更されている.
r136 までにして,この辺りが更新された時に見直すこととするか?

この投稿は役に立ちましたか? 役に立った 役に立たなかった 0 人中 0 人がこの 投稿 は役に立ったと言っています。


CHttpFile Read String

何年か前に Web 上の html読み取るコード を書いた.
それを 今回書き直し


これらのコードでは「シフトJIS」で書かれたページ以外ではうまく処理できない?
以前利用した時は IIS のサーバで,html 内の一部のコードを読み取るだけなので,特に問題にはならかなった.
今回も,単純に html が更新されたかどうかだったので,それなりに処理できていた.


今度は,html だけでなく画像などバイナリにも対応したくなった.
favicon.ico
CInternetFile::ReadString の部分を

	{
		CString	buf ;
		while	(pFile->ReadString(buf)) {
			tstring	tmp = ::To_tstring(LPCSTR(LPCTSTR(buf))) ;
			r_buf.push_back(tmp) ;
			}
		read_dt = ::String_Join_Line(r_buf) ;
		}

CInternetFile::Read に変更.

	{
		FILE*	ofp = ::Open_File(dt_file.c_str(),_T("wb")) ;
		v_char	readBuf ;	readBuf.resize(1024) ;
		while	(true) {
			UINT	r_size = pFile->Read(&readBuf[0],1024) ;
			::fwrite(&readBuf[0],1,r_size,ofp) ;
		//	if (r_size < 1024)
			if (r_size < 1)
			{
				break ;
				}
			}
		::fclose(ofp) ;
		}
この投稿は役に立ちましたか? 役に立った 役に立たなかった 0 人中 0 人がこの 投稿 は役に立ったと言っています。

  • カテゴリー:

QNAP NAS に接続できなくなった

QNAP NAS からのメール.


[Warning][QuFirewall] Notification from your device: TS253D
NAS Name: TS253D
Severity: Warning
Date/Time: 2022/09/06 18:51:01
App Name: QuFirewall
Category: Firewall Events
Message: [QuFirewall] Reached alert message threshold. Threshold value: 300, Time interval: 2022-09-06 18:20:01 ~ 2022-09-06 18:51:01.
©2022 QNAP Systems, Inc.


IPv6 でのアクセス拒否が増えたみたいで,LAN 内など通すもの以外を「拒否」に設定変更.
これがいけなかった.設定を間違えてしまったみたいで,IPv6 側の先頭にすべてを拒否する様に指定してしまった.
実際は下の方に登録したつもりだったが,間違って上の方にも入力してしまった.


すると,QTS を含むすべてのアクセスができなくなってしまった.
スマートフォンの Qmanager もつながらない.Qfinder でも見つからない.SSH 接続も不可.


対応方法を検索すると次の様なものが見つかった.
After install QuFirewall i am not able to access the NAS
QNAP FinderでTurbo NASを検出できません。IPアドレスをブラウザに直接入力してもアクセスできません。


が,異なる方法で試してみた.
電源ボタンを 1.5 秒押して,一度シャットダウン.
しばらくおいて,電源 ON .
30 秒程度すると,Qfinder で見える様になった.
Qfinder Pro 7.8.1
ブラウザで QTS を起動し「QuFirewall」を起動.
間違って登録してしまったガードを一時的に無効にして「適用」.
ここまでを QuFirewall の動作が始まる前に完了しなければならない.
あとは,幾つかの設定を見直し.


実際は,うまくタイミングが合わず,3 回位やり直しています.
うまくできない場合は「AppCenter」で「QuFirewall」を「削除」して,最初から設定し直す必要があります.

この投稿は役に立ちましたか? 役に立った 役に立たなかった 0 人中 0 人がこの 投稿 は役に立ったと言っています。


[Error][Multimedia Console]

メールをチェックしていると,QNAP NAS からのメール…
[Error][Multimedia Console] デバイスからの通知: TS253D
NAS 名: TS253D
重大度: Error
日付/時刻: 2022/09/05 02:10:53
アプリ名: Multimedia Console
カテゴリー: データベース
メッセージ: [Multimedia Console] データベースの修復に失敗しました。データベースが破損しており、修復できません。[Multimedia Console] > [インデックス] > [再インデックス化] でマルチメディアコンテンツデータベースを再構築してください。
[Error][Multimedia Console] デバイスからの通知: TS253D
「QuLog Center」にエラーログは残っているが「Multimedia Console」には特にそれらしい表示はない.
「QuMagie」などでも特に問題と思われる現象はなさそう.
「再起動」をスケジュール しているので,その影響か?
このまま様子見.

この投稿は役に立ちましたか? 役に立った 役に立たなかった 0 人中 0 人がこの 投稿 は役に立ったと言っています。


GetActiveView

いつも面倒と思う CView の取得.
https://dev.mish.work/wordpress/2022/05/20/drop-lnk-on-mdi-exe/
普通は,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 ;
	}

Get_active_view

この投稿は役に立ちましたか? 役に立った 役に立たなかった 0 人中 0 人がこの 投稿 は役に立ったと言っています。



    top

    %d人のブロガーが「いいね」をつけました。