IwaoDev

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

2022 / 7月

…\System32\MicrosoftEdgeCP.exe

投稿日 by Iwao

…\System32\MicrosoftEdgeCP.exe が存在するのに,stat などでうまく読み取れない.


ファイルが存在しているかどうかをチェックするために,CFileStatus などを利用している.
CFileStatus::GetStatus() で,幾つかのファイルが正しくチェックできない.
コードをデバッガで追いかけていくと,::FindFirstFile で INVALID_HANDLE_VALUE となってしまう.
検索 すると次の様なものがあった.
FindFirstFile関数はx64環境においてシステムファイルが検索できない?
x86 の場合次のものを呼出して切替える必要があるみたい.
Wow64DisableWow64FsRedirection
Wow64RevertWow64FsRedirection
File System Redirector
FindFirstFile ... INVALID_HANDLE_VALUE


今回 ::GetFileVersionInfo から始まって いろいろとあったのでメモ.

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


VC 14 以降での stat.c の場所

投稿日 by Iwao

VC 14 以降,<sys/stat.h> 関係が大きく変更されている?
CFileStatus でアサート


今回 stat 関数内をデバッグしようとしていて,ソースの場所がすぐにわからなかった.

#ifdef		_MSC_VER
#define		s_stat		struct	_stati64
#define		TSTAT		_tstati64
#else
#define		s_stat		struct	stat
#define		TSTAT		stat
#endif

VC 12 以前は,(VS)\VC\crt\src\ 以下に存在する.


VC で,#include <sys/stat.h> としている所を「右クリック」-「ドキュメント<sys/stat.h>を開く」.
その位置を幾つか上に行って,Include の並びに Source があり,その対応する所に存在する.
VC 14 以降の C ランタイムのソースの場所
VC 2015 以降のどれかで対応がつくと,それ以外でも対応したもの(10.0.?????.0)が開かれる?


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


NAS OpenVPN サーバ設定

投稿日 by Iwao

以前 ASUS ルータ設定 したが,最近安定しないので NAS で設定した.
OpenVPN の設定手順は次の様なもの.
1. VPN サーバで OpenVPN の有効化と設定.
2. .ovpn ファイルの出力.
3. .ovpn ファイルの編集.
4. OpenVPN が NAS に到達できる様に,ルータやファイアウォールを設定.
5. OpenVPN クライアント で .ovpn ファイルを取り込み.
6. クライアントから「接続」.


Synology NAS
「パッケージセンター」で「VPN Server」を「インストール」.
Synology NAS VPN Server
追加された「VPN Server」を起動.
「OpenVPN」を選んで「OpenVPN サーバーを有効にする」にチェック.
この時「ポート」は「1194」から変更(例えば 51234 )して,「適用」.
Synology NAS OpenVPN 設定
これで「エクスポート設定」が押せるようになる.
出力した .ovpn を「メモ帳」などで開いて編集.
先頭の方にある次の行の「YOUR_SERVER_IP」を変更.
remote YOUR_SERVER_IP 51234
remote 27.92.xxx.xxx 51234
DDNS を使用している場合は xxx.myds.me などの指定も可能.
Synology NAS  .ovpn ファイル
私の場合,動作確認のために 192.168.0.xxx の .ovpn も用意している.
OpenVPN  スマートフォンで .ovpn の取り込み
OpenVPN クライアントでの接続時の「ユーザ名」などは,NAS のユーザ情報が利用される.
ルータのポートの設定は次の様なものを追加.
Synology NAS  OpenVPN  ポートマッピング


ASUSTOR NAS
「App Central」で「VPN Server」を「インストール」.
ASUSTOR NAS  VPN Server
「VPN Server」を起動して「OpenVPN」を「ON」に.
「権限」で「ユーザー」を「追加」,「適用」.
「設定」-「OpenVPN」で「ポート」などを変更し「構成ファイルのダウンロード」.
ASUSTOR NAS  OpenVPN 設定
.ovpn 内の OPENVPN_SERVER_IP を変更.
後は同様に OpenVPN クライアントで取り込めば良い.


QNAP NAS
「App Center」で「QVPN Service」を「インストール」.
QNAP NAS  QVPN Service
「QVPN Service 3」を開いて「OpenVPN」の設定.
QNAP NAS OpenVPN 設定
「設定ファイルのダウンロード」したファイルを OpenVPN クライアントへ.

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


::GetFileVersionInfo

投稿日 by Iwao

以前から使用している FileVer.?xx が MFC に依存しているので,その書き直し.


Win8 の頃だったと思うが,OS のバージョンの取得方法が面倒になった.
システム バージョンの取得
オペレーティング システムのバージョン
欲しいのは動作 OS のバージョン文字列なので WinVer.exe などから取得する様にしていた.


で,書き換えようと思って調べていると…
exe のプロパティで表示されるファイルバージョンと異なることに気付いた.
where.exe のバージョン情報
::GetFileVersionInfo で取得すると次の文字列が返ってくる.
10.0.19041.1826 (WinBuild.160101.0800)


次の様なコードを書いて ::GetFileVersionInfo で返されるものをダンプ.

{
	DWORD	VerHandle   = 0 ;
	DWORD	VerInfoSize = 0 ;
	v_char	VerData ;
	VerInfoSize = ::GetFileVersionInfoSize(LPTSTR(file.c_str()),&VerHandle) ;
	VerData.resize(VerInfoSize*2) ;
	if (::GetFileVersionInfo(LPTSTR(file.c_str()),VerHandle,VerInfoSize,&VerData[0])) {
		tstring	tmp_path = ::Get_i_Tools_tmp_date() ;
		tstring	tmp_name = ::Path_AddLastSP(tmp_path) + ::Path_GetName(file) + _T(".dmp") ;
		::v_c_Save(tmp_name.c_str(),VerData) ;
		}
	}

::GetFileVersionInfo で返されるデータのダンプ


ファイルバージョンの取得.

{
	/*
		VS_VERSION_INFO VERSIONINFO
		 FILEVERSION 1,53,2022,1
		 PRODUCTVERSION 1,53,2022,1
		 FILEFLAGSMASK 0x3fL
		#ifdef _DEBUG
		 FILEFLAGS 0x1L
		#else
		 FILEFLAGS 0x0L
		#endif
		 FILEOS 0x4L
		 FILETYPE 0x1L
		 FILESUBTYPE 0x0L
		BEGIN
		    BLOCK "StringFileInfo"
		    BEGIN
		        BLOCK "041104b0"
		        BEGIN
		            VALUE "Comments", "\0"
		            VALUE "CompanyName", "\0"
		            VALUE "FileDescription", "3D Viewer\0"
		            VALUE "FileVersion", "1, 53, 2022, 1\0"
		            VALUE "InternalName", "i3DV\0"
		            VALUE "LegalCopyright", "Copyright (C) 2013-2022  I. Nakagawa\0"
		            VALUE "LegalTrademarks", "\0"
		            VALUE "OriginalFilename", "i3DV.exe\0"
		            VALUE "PrivateBuild", "\0"
		            VALUE "ProductName", "i_Tools\0"
		            VALUE "ProductVersion", "1, 53, 2022, 1\0"
		            VALUE "SpecialBuild", "\0"
		        END
		    END
		    BLOCK "VarFileInfo"
		    BEGIN
		        VALUE "Translation", 0x411, 1200
		    END
		END
	*/
	tstring	StringFileInfo ;
	{
		struct	LANGANDCODEPAGE	{
			WORD	wLanguage ;		//	0x411
			WORD	wCodePage ;		//	1200	0x4b0
			}	*lpTranslate	= NULL ;
		UINT	lenT = 0 ;
		if (::VerQueryValue(&VerData[0],_T("\\VarFileInfo\\Translation"),(void**)&lpTranslate,&lenT)) {
			tstring	lang_cp_str =	::u32to0t(lpTranslate->wLanguage,16,4) +
			                     	::u32to0t(lpTranslate->wCodePage,16,4) ;		//	"041104b0"
			StringFileInfo = _T("\\StringFileInfo\\") + lang_cp_str + _T("\\") ;
			}
		}
	{
		UINT	lenFV = 0 ;
		TCHAR*	lpFV  = NULL ;
		tstring	name  = _T("FileVersion") ;
		if (::VerQueryValue(&VerData[0],LPTSTR((StringFileInfo+name).c_str()),(void**)&lpFV,&lenFV)) {
			std::terr << lpFV	<<	std::endl ;
			}
		}
	}

FVersion.hxx

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


QNAP NAS Notes Station 3

投稿日 by Iwao

Twitter を見ていたら「Notes Station」というものがあった.
QNAP NAS Notes Station

インストール方法などは次の所.
https://www.qnap.com/ja-jp/how-to/tutorial/article/notes-station-3
Edge に Notes Station 3 Clipper を追加.
PC からだと次の様な指定でアクセスできる.
http://(QNAP NAS):8080/ns/
スマートフォン用は Qnote3

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


ADM 4.1.0.RJ52 の更新で …

投稿日 by Iwao

ASUSTOR NAS の ADM 4.0 から 4.1 への更新で?,Web サーバなどが動作しなくなった.
「Web Center」で「Web サーバー」を設定.
ADM 4.1  「Webサーバー」の設定
これで //as.mish.work/ でアクセスできるようにはなった.


が,WordPressJoomla! がうまく動作していない.
「Apache HTTP Server」に切替えれば良いものと思うが,エラーになってしまう.
ADM 4.1  Webサーバー  「Apache HTTP Server」でエラー


WordPress は,それぞれの記事の表示で「404 Not Found」となっていまう.
Joomla! は「グローバル設定」-「SEO設定」-「フレンドリURL」を「いいえ」で動作する様にはなる.
どこかの設定が足りないものと思うが,ちょっとわからないのでこのままとする.


「保存」した VirtualBox の環境が起動できない.
ADM 4.1  保存した VirtualBox 環境が起動しなくなった
「保存状態を破棄」して起動できた.


夜になって,ADM 4.1.0.RJ72 がリリースされている.
更新後,「Apache HTTP Server」を指定できることを確認.
WordPress と Joomla! はうまく機能する様になった.
ファームの不具合だった?


更新して,今度は VirtualBox に入れなくなってしまった.
ADM 4.1  VirtualBox にログインできない
Linux Center は問題なさそう.


2022/07/13
ADM 4.1.0.RJD1 があった.
更新して,起動できる様になったことを確認.
ADM 4.1  VirtualBox 起動できる様になった

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


VC 2019 以降の include

投稿日 by Iwao

%LOCALAPPDATA%\Microsoft\MSBuild\v4.0\Microsoft.Cpp.Win32.user.props がないとの問い合わせが…


次の所は以前まとめたもの.VC 2010 以降は,これが引き継がれるものと思っていた.
VC include lib のパス
私の環境の VC 2022 で確認すると,ちゃんと引き継がれている.
VC 2022 プロパティ マネージャー
検索すると VC 2019 から Microsoft.Cpp.Win32.user.props は使用されなくなった?
Microsoft.Cpp.Win32.user.props file missing
Visual Studio プロジェクトの設定を共有または再利用する


今の所は Win32 のみなので,また今度時間がある時に調べる.
VC Linux の include 設定


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

  • カテゴリー:


top