ホーム » 2022 » 6月

月別アーカイブ: 6月 2022

2022年6月
 1234
567891011
12131415161718
19202122232425
2627282930  

カテゴリー

アーカイブ

ブログ統計情報

  • 80,417 アクセス



MFC OnUpdate… が来ない?

自前の Doc::UpdateCommand で CCmdUI の処理を実装して,イベントが来なかった.
MFC OnUpdate... が来ない
原因は,範囲の指定が間違っていた.
ON_UPDATE_COMMAND_UI_RANGE (ID_Start, ID_End, OnUpdateCmd)
すぐに気づかなかったのでメモ.

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

vector<long> などを文字列に

std::vector<long> の文字列への変換.
何年も前に書いたコードで,使い方を忘れているのでそのまとめ.


次の様な関数を用意している.
template <class VX> tstring Vx_To_tstring(const VX& vx,LPCTSTR sp=_T(" "))
vxx_tstr.hxx  ::Vx_To_tstring
次の様な使い方で long の配列を文字列へ変換できる.
tstring vl_str = ::Vx_To_tstring<v_long>(long_ary) ;


クラスの配列のダンプ

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

ツールバーのコマンドが効かない

ある AP の動作で,ツールバーの一部のコマンドが入らない.
ツールバーのコマンドが効かない
いろいろと確認すると,x64 exe で,リリース版,デバッグ版は関係ない.
x86 exe は問題ない(ちゃんと機能する).
2015/11 の exe でも同様の現象を確認.
メニューの同様のコマンドは問題ない.


ツールバーがちらつくので,UPDATE_COMMAND_UI の実装でうまくない部分があると思われる.
一時的に Disable にしているなど…


調べるのに時間がかかりそうなので,取りあえずメモ.
状態により,次の矛盾したものが呼ばれることがあったため修正.
pCmdUI->Enable(FALSE) ;
pCmdUI->Enable(TRUE) ;

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

WordPress のバックアップ

Twitter を見ていたら,次の様なものがあった.
QNAPはWordPressを対象に、ライセンスフリーでオールインワンのバックアップソリューションを発表
QNAPはWordPressを対象に、ライセンスフリーでオールインワンのバックアップソリューションを発表
チュートリアルを見ると,WordPress のプラグインと MARS と言う NAS アプリを使うみたい.
How to Back up and Restore a WordPress Website Using Multi- Application Recovery Service (MARS)?


先ず,プラグインをインストールして「有効化」.
WordPress プラグイン QNAP NAS Backup


QNAP NAS に MARS をインストール.
QNAP NAS に MARS をインストール


WordPress の「QNAP Backup」で表示される「AccessKey」を「コピー」.
MARS の「アプリケーション」-「WordPress」で「サービスの追加」.
MARS の「アプリケーション」-「WordPress」で「サービスの追加」


MARS の「バックアップ」で「バックアップジョブの作成」.
MARS の「バックアップ」で「バックアップジョブの作成」
「今すぐバックアップ」でバックアップが始まる.


ログを見ると「成功」にはなっているが,転送サイズが 656 Byte なので,うまく動作していない?
QNAP NAS MARS  バックアップ結果


ここを同じ様にやってみたら,うまくバックアップはできたと思われる.
//dev.mish.work/wordpress のバックアップ結果

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

DS116 entware

localtime が正しく求められない ままの環境.
https://jml.mish.work/index.php/various/nas/synology-nas.html
ある程度 DS220+ に移行したので,SSH 接続環境の再設定.


CLI コマンドの導入.
DS220+ と同様
名前 :「SynoCommunity」
場所 :「https://packages.synocommunity.com/」
「SynoCli File Tools」をインストールして tree , mc , nano などを追加.
これで追加した tree は,localtime が正しく求められている.
DS116  tree -D


Entware のインストール.
Install on Synology NAS

Iwao@DS116:~$ sudo -i
Password:
root@DS116:~# mkdir -p /volume1/@Entware/opt
root@DS116:~# rm -rf /opt
root@DS116:~# mkdir /opt
root@DS116:~# mount -o bind "/volume1/@Entware/opt" /opt
root@DS116:~# uname -m
armv7l
root@DS116:~# wget -O - https://bin.entware.net/armv7sf-k3.2/installer/generic.sh | /bin/sh
--2022-06-15 14:51:04--  https://bin.entware.net/armv7sf-k3.2/installer/generic.sh

DS116  wget entware
ここまでで localtime はうまく求まる様になった.


タスクスケジューラの登録.
「作成」-「トリガーされたタスク」-「ユーザー指定のスクリプト」.
「Entware」「root」「ブートアップ」を指定.
「タスク設定」タブのスクリプトを記述するの所に,貼り付け.
NAS を再起動.


gcc のインストール.

Iwao@DS116:~$ sudo -i
root@DS116:~# opkg update
Downloading http://bin.entware.net/armv7sf-k3.2/Packages.gz
Updated list of available packages in /opt/var/opkg-lists/entware
root@DS116:~# opkg install gcc
Installing gcc (7.4.0-7) to root...

DS116  gcc インストール

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

TS-253D SSL 証明書の更新

DS220+ を追加 して,その後いろいろと設定を変更したためか,TS-253D の証明書がうまく更新されない.
「コントロールパネル」-「セキュリティ」-「SSL 証明書…」-「証明書更新」でエラーになる.
原因は,以前「代替名」で指定していた jml.mish.work などがうまくなかったものと思われる.
現在 jml.mish.work は DS220+ の方に割り当てている.


もう一度,「証明書の交換」から入って,次の様に指定することで取得できた.
TS-253D  Let's Encrypt


同様に AS5202T の方も…
AS5202T  Let's Encrypt  エラー
こちらの場合は一度削除する必要があった.
AS5202T  Let's Encrypt


2022/06/13
Synology NAS DS116 は,まだ完全に移行できていないので,ポートマッピングの設定を一時的に変更して取得.
DS116  Let's Encrypt
ポートマッピング
次の画像は「既存の認証を書き換えます」としたもの.
Synology NAS Let's Encrypt 「サブジェクトの別名」の指定の間違い
「サブジェクトの指定の別名」での区切り文字(セミコロン)が間違っているため,「完了」が押せない.


あとは,それぞれの証明書をエクスポートして,リーバースプロキシを設定したサーバでインポート.
DS220+ ASUSTOR NAS の証明書のインポート

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

Win.ini [Mail] MAPI=1

Win.ini がなくて MAPI が動作しなかった(Disable だった)と報告を受けた.


4 年位前に書き直した MAPI を使用したコードではチェックしない様にしたが,古いコードもまだ存在する.
それらのコードは MFC のコード docmapi.cpp を参考にしたもの.
VC 2022 のコードを見ると,Win.ini の [MAIL] の MAPI をチェックしている.
docmapi.cpp  ::GetProfileInt(_T("MAIL"), _T("MAPI"), 0)
最初のコードを書いた 20 年以上前(VC 98)とそれほど変わっていない.


何もインストールしていない環境で Win.ini は存在する?
Win10 Pro 21H2 では次のものが存在している.
Win10 Pro 21H2  win.ini
何かをアンインストールすると削除されることがあるのか?

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

引数が正しくありません。

自分で作成した AP のテストをしていて,「引数が正しくありません。」.
20 年位前から変更していないコードのバグだった.


かなりイレギュラーな操作をしない限り,現象は発生しない.
実際の操作としては,データの挿入場所を指定しないで,強制的に「確定」した場合.
またその操作の前にある手順やデータが影響する.


表示されるメッセージは,MFC のバージョンにより異なる.
また,Windows API 内でこのメッセージが表示されることもある みたい.
AfxThrowInvalidArgException VC 8  無効な引数が発生しました。
AfxThrowInvalidArgException VC 10  引数が正しくありません。


今回のものは,配列に対して,確保されている領域を超えてアクセスしたことが原因.
VC 2017 でデバッグ AfxThrowInvalidArgException


アクセスする前に,要素数が満たしているかのチェックをすることで回避できる.
if ( 2 < ary.GetSize() ) { data = ary[1] ; }


これって何とかならないものかといつも思ってしまう.
クラスとして書いた時には,デフォルト値を返すようにしたりしているが…

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