Win10 VC 2005 で C1083 msxml.dll
今まで WinXP + VC 2005 だったプロジェクトを Win10 に持ってきてビルドすると,
1>------ ビルド開始: プロジェクト: i3DV, 構成: Debug Win32 ------ 1>コンパイルしています... 1>MainFrm.cpp 1>t:\develop\_.src\__iwao\xml_ms_.hxx(21) : fatal error C1083: タイプ ライブラリ ファイルを開けません。'msxml.dll': No such file or directory 1>i3DVView.cpp 1>t:\develop\_.src\__iwao\xml_ms_.hxx(21) : fatal error C1083: タイプ ライブラリ ファイルを開けません。'msxml.dll': No such file or directory ... 1>コードを生成中... 1>i3DV - エラー 16、警告 0 ========== ビルド: 0 正常終了、1 失敗、0 更新、0 スキップ ==========
Win10 には msxml.dll がないためエラーとなっている.
VC 2008 以降のプロジェクトは Win7 でビルドできる様にしていた ので問題ない.
#if (_WIN32_WINNT >= 0x0600) // Vista
#import <msxml6.dll> named_guids
#define MSXML MSXML2
#define CLSID_DOMDocument CLSID_DOMDocument60
#else
#import <msxml.dll> named_guids
#endif
WinXP 環境でも msxml6.dll は存在しているので,_MSC_VER>=1400 で判断する様に変更.
#if (_MSC_VER >= 1400) // VC 2005
#import <msxml6.dll> named_guids
#define MSXML MSXML2
#define CLSID_DOMDocument CLSID_DOMDocument60
#else
#import <msxml.dll> named_guids
#endif
msxml.dll を使用しない方法 で書き直し
https://jml.mish.work/index.php/cpp/xml.html
VC 10 以降で C2146 C4430
共通のソースなどが入っているサーバ WSS が壊れたので,他に逃がして「T:ドライブ」として参照するようにした.
VC のディレクトリの設定を DevS より下に T:\ を追加.
その時,VC 10 以降の次のファイルを編集してビルドが通らなくなってしまった.
C:\Users\Iwao\AppData\Local\Microsoft\MSBuild\v4.0\Microsoft.Cpp. … .user.props
1>------ ビルド開始: プロジェクト: DmpC, 構成: Debug Win32 ------ 1> StdAfx.cpp 1> _WIN32_WINNT not defined. Defaulting to _WIN32_WINNT_MAXVER (see WinSDKVer.h) 1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\winnt.h(290): error C2146: 構文エラー : ';' が、識別子 'PVOID64' の前に必要です。 1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\winnt.h(290): error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません 1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\winnt.h(8992): error C2146: 構文エラー : ';' が、識別子 'Buffer' の前に必要です。 1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\winnt.h(8992): error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません 1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\winnt.h(8992): error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません ========== ビルド: 0 正常終了、1 失敗、0 更新不要、0 スキップ ==========
原因は DX90SDK の Include で,間違って追加した次のものを削除して対応.
T:\Develop\Lib\DX90SDK\Include;
WSS その後
先日からシャットダウンされる現象があったが,ディスクが壊れた?
丁度 5 年になる.
アイ・オー・データ機器 クラウド状態管理NarSuS からのお知らせです
****@********.jp 様
<機器情報>
製品名 :HDL-Z2WM2C2
シリアル番号 :S***********
MACアドレス:34:76:c5:1d:ca:60
ファームver :1.48(1.39)
<設置場所>
電話番号:0*********
住所 :***********************
●2019/06/27 06:05
内蔵スロット1のディスクにエラーが検出されました。
HDD状態が異常です。ステータス情報画面を開き、HDD状態を確認してください。データバックアップ後にカートリッジを交換してください。
詳しくは「状態管理NarSuS」にログインしてご確認ください。
「クラウド状態管理NarSuS」へのログインはこちら
https://www.narsus.jp
※このメールは送信専用のメールアドレスから配信されています。
ご返信いただいてもお答えできませんのでご了承ください。
この画面の「アクション」と書かれた部分を押すと,カートリッジの交換方法が表示される.
ここを見ると,次のように書かれている.
【ご注意】
●ハードディスク故障が発生した場合、カートリッジの交換を行う前に、必ずデータのバックアップを行ってください。
●バックアップしたデータの確認が終わるまでは、電源を切らないようにしてください。電源OFF後に製品を再起動した際に製品が正常に起動せず、製品内のデータにアクセスできない場合や、RAID構成が崩壊し修復不能の状態に至る危険性がございます。
マニュアルも確認すると,電源を入れたまま交換するみたい.
現在,見た目(ネットワークから覗く限り)は普通に見えるので,他の NAS にバックアップ中.
交換用カートリッジ(ハードディスク)は HDLZ-OP1.0R .
リモートで接続してイベントビューアで見ると,確かに壊れているみたい.
WSS がシャットダウンされる
2019/06/20 にもあったが,
アイ・オー・データ機器 クラウド状態管理NarSuS からのお知らせです
****@*********.jp 様
<機器情報>
製品名 :HDL-Z2WM2C2
シリアル番号 :S***********
MACアドレス:34:76:c5:1d:ca:60
ファームver :1.48(1.39)
<設置場所>
電話番号:0*********
住所 :**********************
●2019/06/25 05:23
前回のシステムシャットダウンは予期されていませんでした。
詳しくは「状態管理NarSuS」にログインしてご確認ください。
「クラウド状態管理NarSuS」へのログインはこちら
https://www.narsus.jp
※このメールは送信専用のメールアドレスから配信されています。
ご返信いただいてもお答えできませんのでご了承ください。
タイミングとしては,バックアップが終わった頃か?
キーワードの指定が悪いのかもしれないが,検索してもあまり情報がなさそう.
先日 Windows Update してからなので,その中で関連しそうな KB4503276 を外して様子見.
KB4503276 をアンインストールして再起動すると今度は KB4493446 が入ってしまう.
切り分けのためにこれもアンインストール.
VC 2017 , 2019 Browse.VC.db エラー
VC 2017 や 2019 のプロジェクトファイルを開いたとき,
—————————
Microsoft Visual Studio
—————————
C++ 参照データベース ファイル E:\Temp\_Fallbck\\BROWSE.VC-74b349de\Browse.VC.db を作成または開くときにエラーが発生しました。C++ プロジェクトでは、IntelliSense と参照情報は利用できません。
試せる修正方法:
他のアプリケーションがファイルにアクセスしていないことを確認します。
この問題が解決しない場合、ファイルを削除してからソリューションを再度開いてください。
—————————
OK
—————————
今まで気が付かなかったが,
この記事を書いていてよーく見ると,_Fallbck\\ とバックスラッシュが 2 つになっている.
VC 2015 までは大丈夫だった E:\Temp\_Fallbck\ がうまく認識してくれないみたい.
E:\Temp\_Fallbck の様に最後の \ を削除してエラーがなくなった.
https://mish.work/Iwao/Doc/other/vs/
https://jml.mish.work/index.php/cpp/vs-install.html
auひかり ASUS ルータで IPSec VPN
先日 OpenVPN の設定は行ったが,今度は IPSec VPN .
発売当初には機能がなかったため?か,あまり設定情報が見つからない.
IPSec VPN サーバーを有効にする「ON」.
「ユーザー名」と「パスワード」を追加.
Android での設定は「設定」-「ネットワークとインターネット」-「VPN」.
「+」を押して「名前」を入力.
「タイプ」は「IPSec Xauth PSK」を選択.
「サーバーアドレス」は IP または DNS 名を指定.
「IPSec事前共有鍵」を入力(デフォルトだと 00000000 ).
「ユーザー名」と「パスワード」は登録したものを入力.
iOS の場合は次のような感じ.
最初 LAN 内で設定していたが,それではうまく接続できなかった(OpenVPN は可能).
これに気付くのにしばらく時間がかかってしまった.
今回これを試したのは,上海からの OpenVPN がうまく動作しなくなったため.
しかし,IPSec VPN でもうまく接続できず.
2022/02/20
最近このページへのアクセスが少し増えたので,動作を確認.
すると,うまく接続できなくなっている.
Android からでは「失敗しました」となってしまう.
クラスの配列のダンプ
先日の「クラスの配列」をダンプする template を利用するためのサンプル.
// ******************************************************************************* // Name : tpl_tstr.cpp // : test template To_string vector // Author : I. Nakagawa // Create : 2019/06/13 // ******************************************************************************* #include <iostream> #include "i_vector.hxx" #include "tstring.hxx" #include "i_define.hxx" #include "_tdefine.hxx" // ******************************************************************************* // To tstring // Create : 2019/06/10 // ******************************************************************************* template <class T> tstring To_tstring(const std::vector<T>& vt) { tstring str ; for (size_t index=0 ; index<vt.size() ; index++) { T e1 = vt[index] ; tstring s1 = e1.To_tstring() ; str += s1 + _T("\r\n") ; } return str ; } // ******************************************************************************* // sample class // Create : 2019/06/13 // ******************************************************************************* class Str_2 { public: Str_2 (const tstring& s1=tstring(),const tstring& s2=tstring()) { Str1 = s1 ; Str2 = s2 ; } public: virtual tstring To_tstring (void) const { return Str1 + _T("\t") + Str2 ; } protected: tstring Str1 ; tstring Str2 ; } ; typedef std::vector<Str_2> v_Str_2 ; // ******************************************************************************* // main // Create : 2019/06/13 // ******************************************************************************* int _tmain (int argc,TCHAR* argv[]) { _tsetlocale(LC_ALL,_T("")) ; { v_Str_2 v_s2 ; { Str_2 sd_1(_T("asdf"),_T("qwer")) ; Str_2 sd_2(_T("zxcv"),_T("ASDF")) ; Str_2 sd_3(_T("QWER"),_T("ZXCV")) ; Str_2 sd_4(_T("1234")) ; Str_2 sd_5 ; v_s2.push_back(sd_1) ; v_s2.push_back(sd_2) ; v_s2.push_back(sd_3) ; v_s2.push_back(sd_4) ; v_s2.push_back(sd_5) ; v_s2.push_back(sd_4) ; v_s2.push_back(sd_3) ; v_s2.push_back(sd_2) ; v_s2.push_back(sd_1) ; } std::tout << ::To_tstring<Str_2>(v_s2) ; } return 0 ; }
C:\WINDOWS\system32>cd C:\Users\Iwao\AppData\Local\Temp C:\Users\Iwao\AppData\Local\Temp>ssh -l Iwao -p 22 192.168.xx.xx Iwao@192.168.xx.xx's password: Iwao@DS116:~$ source ./set_ds_inc.sh Iwao@DS116:~$ cd gcc_test/Test/tpl_tstr/ Iwao@DS116:~/gcc_test/Test/tpl_tstr$ ll total 20 drwxrwxrwx+ 3 Iwao users 4096 Jun 13 10:42 . drwxrwxrwx+ 15 Iwao users 4096 Jun 13 10:32 .. drwxrwxrwx+ 2 Iwao users 4096 Jun 13 10:42 bak -rwxrwxrwx+ 1 Iwao users 2166 Jun 13 10:35 tpl_tstr.cpp Iwao@DS116:~/gcc_test/Test/tpl_tstr$ g++ tpl_tstr.cpp Iwao@DS116:~/gcc_test/Test/tpl_tstr$ ll total 44 drwxrwxrwx+ 3 Iwao users 4096 Jun 13 10:43 . drwxrwxrwx+ 15 Iwao users 4096 Jun 13 10:32 .. -rwxrwxrwx 1 Iwao users 23540 Jun 13 10:43 a.out drwxrwxrwx+ 2 Iwao users 4096 Jun 13 10:42 bak -rwxrwxrwx+ 1 Iwao users 2166 Jun 13 10:35 tpl_tstr.cpp Iwao@DS116:~/gcc_test/Test/tpl_tstr$ ./a.out asdf qwer zxcv ASDF QWER ZXCV 1234 1234 QWER ZXCV zxcv ASDF asdf qwer Iwao@DS116:~/gcc_test/Test/tpl_tstr$
改行コード
デバッグ用で class の配列のデータのダンプのために次の様なコードを作成.
template <class T> tstring To_tstring(const std::vector<T>& vt) { tstring str ; for (size_t index=0 ; index<vt.size() ; index++) { T e1 = vt[index] ; tstring s1 = e1.To_tstring() ; str += s1 + _T("\r\n") ; } return str ; }
それで気になったのが,それぞれの OS での改行コード.
wiki 改行コード
mac も LF になっていた.
NAS 上の「ディスク上のサイズ」
比較的小さなファイル(数 K バイト)をバックアップしていて,サイズを見ると異常に大きい?
292 個のファイルで「ディスク上のサイズ」が 292 MB の表示.
ファイルを置いているのは,NAS の HDL-AHW .
Win7 で利用していた時は気にならなかったと思い,そちらで見ると問題ない.
今度は 1 バイトのファイルを作成して同じ様にみると,Win10 では 1 MB となる.
異なるメーカーの NAS の情報だが,その様になってしまうみたい.
BUFFALO リンクステーション スマホ・タブレットで使える ネットワークHDD
LinkStation LS420D0402C
WD Cloud や Synology NAS DS116 では問題ない.
2021/04/05
HVL-LS4 を追加.
新しい機種だと正しく表示されるのかと思ったが,そうではなかった.
Win10 では 1 バイトのファイルが 1 MB の表示になる.
2022/02/15
ASUS ルータの「簡易 NAS 機能」でも同様に 1 MB になっている.
Win10 Hyper-V インストール – 3
VirtualBox で作成した VDI の Hyper-V での利用.
VDI から VHD への変換が必要になる.
VirtualBox のイメージを Hyper-V のVHD形式に簡単にコンバートする方法
VirtualBox – 仮想クドライブ変換 VDI形式 -> VHD形式
Microsoft Windows [Version 10.0.18362.113] (c) 2019 Microsoft Corporation. All rights reserved. C:\Users\Iwao>"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" clonehd D:\VHD.HPV\Win10_IP\Win10_IP.vdi D:\VHD.HPV\Win10_IP\Win10_IP.vhd -format VHD VBoxManage.exe: error: Cannot register the hard disk 'D:\VHD.HPV\Win10_IP\Win10_IP.vdi' {ca7e8f58-344b-41c1-8c8f-e57fbe497adc} because a hard disk 'E:\VHD\Win10_IP\Win10_IP.vdi' with UUID {ca7e8f58-344b-41c1-8c8f-e57fbe497adc} already exists VBoxManage.exe: error: Details: code E_INVALIDARG (0x80070057), component VirtualBoxWrap, interface IVirtualBox, callee IUnknown VBoxManage.exe: error: Context: "OpenMedium(Bstr(pszFilenameOrUuid).raw(), enmDevType, enmAccessMode, fForceNewUuidOnOpen, pMedium.asOutParam())" at line 191 of file VBoxManageDisk.cpp C:\Users\Iwao>"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" clonehd E:\VHD\Win10_IP\Win10_IP.vdi D:\VHD.HPV\Win10_IP\Win10_IP.vhd -format VHD 0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100% Clone medium created in format 'VHD'. UUID: 7b8bbd69-c19e-4224-a338-a8734dbcad0c C:\Users\Iwao>
設定がうまくないのかもしれないが,VirtualBox に比べて少し遅い様に感じる.
何か方法があるのかもしれないが,WinXP などサポート対象でない仮想マシンは私の場合使い物にならない.
この辺りは VirtualBox などは意図した動作をしているので,そちらで使い続ける様になりそう.
Win10 Hyper-V インストール – 2
Hyper-V で,既存の Win7 仮想マシンが開けることまでは確認した.
「Hyper-V Switch」を使用して,Hyper-V を無効にして再起動.
VirtualBox で開こうとすると,Nonexistent host networking interface name
仮想マシンの設定の「ネットワーク」を開くと「Hyper-V Virtual Ethernet Adapter …」となっている.
直接ではなく「仮想スイッチ」を経由して割り当てられるみたい.
Hyper-V 拡張可能スイッチ ネットワーク アダプターの概要
仮想スイッチと物理的な NIC との対応がわかり辛いので,表示名称を変更できないかと探したがわからなかった.
「設定」-「ネットワークと…」-「イーサネット」-「アダプターのオプション…」で確認することに.
2019/06/15 VirtualBox で開く時,次の様になることもあり.
次の物理ネットワークインターフェースが見つからないので、仮想マシンWin10Proを開始できません:
Realtek PCIe GbE Family Controller (adapter 1)
マシンのネットワーク設定を変更するとか、マシンを停止してください。
Win10 Hyper-V インストール
開発環境のいろいろなツールを使おうとすると Hyper-V が要求される.
The Hyper-V Virtual Machine Management service is not started. Please ensure that Hyper-V is installed and enabled and that the service is running.
次の所を参考にインストール.
Windows 10 上に Hyper-V をインストールする
PC を再起動.