ホーム » 2019 » 6月

月別アーカイブ: 6月 2019

2019年6月
 1
2345678
9101112131415
16171819202122
23242526272829
30  

カテゴリー

アーカイブ

ブログ統計情報

  • 100,738 アクセス


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': No such file or directory への対応


msxml.dll を使用しない方法 で書き直し
https://jml.mish.work/index.php/cpp/xml.html


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

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;
VC 10 間違って DX90SDK のインクルードを追加してしまった

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

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
※このメールは送信専用のメールアドレスから配信されています。
ご返信いただいてもお答えできませんのでご了承ください。
HDL-Z2WMC2C2 NarSus ステータス情報
この画面の「アクション」と書かれた部分を押すと,カートリッジの交換方法が表示される.
ここを見ると,次のように書かれている.
【ご注意】
●ハードディスク故障が発生した場合、カートリッジの交換を行う前に、必ずデータのバックアップを行ってください。
●バックアップしたデータの確認が終わるまでは、電源を切らないようにしてください。電源OFF後に製品を再起動した際に製品が正常に起動せず、製品内のデータにアクセスできない場合や、RAID構成が崩壊し修復不能の状態に至る危険性がございます。
マニュアルも確認すると,電源を入れたまま交換するみたい.


現在,見た目(ネットワークから覗く限り)は普通に見えるので,他の NAS にバックアップ中.
交換用カートリッジ(ハードディスク)は HDLZ-OP1.0R
リモートで接続してイベントビューアで見ると,確かに壊れているみたい.
Harddisk0\DR0 に不良ブロックがあります。
ディスクの管理 再構築中 88%
ディスクの管理 再構築完了

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

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 を外して様子見.
WSS がシャットダウンされるので,Windows Update の画像


KB4503276 をアンインストールして再起動すると今度は KB4493446 が入ってしまう.
切り分けのためにこれもアンインストール.

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

VC 2017 , 2019 Browse.VC.db エラー

VC 2017 や 2019 のプロジェクトファイルを開いたとき,
VC browse.vc.db エラー
—————————
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 の様に最後の \ を削除してエラーがなくなった.
VC 2017 フォールバック位置の指定


https://mish.work/Iwao/Doc/other/vs/
https://jml.mish.work/index.php/cpp/vs-install.html

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

auひかり ASUS ルータで IPSec VPN

先日 OpenVPN の設定は行ったが,今度は IPSec VPN .
発売当初には機能がなかったため?か,あまり設定情報が見つからない.


IPSec VPN サーバーを有効にする「ON」.
「ユーザー名」と「パスワード」を追加.
ASUS RT-AC86U IPSec VPN 設定
Android での設定は「設定」-「ネットワークとインターネット」-「VPN」.
「+」を押して「名前」を入力.
「タイプ」は「IPSec Xauth PSK」を選択.
「サーバーアドレス」は IP または DNS 名を指定.
「IPSec事前共有鍵」を入力(デフォルトだと 00000000 ).
「ユーザー名」と「パスワード」は登録したものを入力.
Android IPSec VPN 設定 1
Android IPSec VPN 設定 2
iOS の場合は次のような感じ.
iOS IPSec VPN 設定


最初 LAN 内で設定していたが,それではうまく接続できなかった(OpenVPN は可能).
これに気付くのにしばらく時間がかかってしまった.


今回これを試したのは,上海からの OpenVPN がうまく動作しなくなったため.
しかし,IPSec VPN でもうまく接続できず.


2022/02/20
最近このページへのアクセスが少し増えたので,動作を確認.
すると,うまく接続できなくなっている.
RT-AC86U  IPSec VPN  接続状態 有効
Android からでは「失敗しました」となってしまう.

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

「休止状態」がなくなった?

昨日の夜,PC の使用を終えようとすると「休止状態」が表示されていない.
「休止状態」がない
本来は次の様にしている.
「休止状態」あり
「スリープ」に移行する bat ファイルがうまく機能しなかったためと思われる.
powercfg /h off
rundll32 PowrProf.dll,SetSuspendState 0,1,0
powercfg /h on


管理者として実行」した「コマンドプロンプト」で
powercfg /h on
powercfg /h on

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

クラスの配列のダンプ

先日の「クラスの配列」をダンプする 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 ;
    }

DS116 での動作テスト.
DS116 上でのクラスの配列のダンプ

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$ 
Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

改行コード

デバッグ用で 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 になっていた.


cat コマンドでは -e で改行コードの表示が可能.
cat --help

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

NAS 上の「ディスク上のサイズ」

比較的小さなファイル(数 K バイト)をバックアップしていて,サイズを見ると異常に大きい?
NAS 上のファイルの「ディスク上のサイズ」が大きい
292 個のファイルで「ディスク上のサイズ」が 292 MB の表示.
ファイルを置いているのは,NAS の HDL-AHW
Win7 で利用していた時は気にならなかったと思い,そちらで見ると問題ない.
Win7 での表示
今度は 1 バイトのファイルを作成して同じ様にみると,Win10 では 1 MB となる.
1 バイトのファイのプロパティ
異なるメーカーの NAS の情報だが,その様になってしまうみたい.
BUFFALO リンクステーション スマホ・タブレットで使える ネットワークHDD

LinkStation LS420D0402C
WD CloudSynology NAS DS116 では問題ない.


2021/04/05
HVL-LS4 を追加.
新しい機種だと正しく表示されるのかと思ったが,そうではなかった.
Win10 では 1 バイトのファイルが 1 MB の表示になる.


2022/02/15
ASUS ルータの「簡易 NAS 機能」でも同様に 1 MB になっている.
ルータの簡易 NAS 機能 ディスク上のサイズ

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

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>

Hyper-V で開いた Win10
設定がうまくないのかもしれないが,VirtualBox に比べて少し遅い様に感じる.


何か方法があるのかもしれないが,WinXP などサポート対象でない仮想マシンは私の場合使い物にならない.
この辺りは VirtualBox などは意図した動作をしているので,そちらで使い続ける様になりそう.

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

Win10 Hyper-V インストール – 2

Hyper-V で,既存の Win7 仮想マシンが開けることまでは確認した.
Hyper-V Switch」を使用して,Hyper-V を無効にして再起動.
VirtualBox で開こうとすると,Nonexistent host networking interface name
Nonexistent host networking interface name
仮想マシンの設定の「ネットワーク」を開くと「Hyper-V Virtual Ethernet Adapter …」となっている.
VirtualBox ネットワーク設定でのアダプタの名称
直接ではなく「仮想スイッチ」を経由して割り当てられるみたい.
Hyper-V 拡張可能スイッチ ネットワーク アダプターの概要
仮想スイッチのプロパティ
仮想スイッチと物理的な NIC との対応がわかり辛いので,表示名称を変更できないかと探したがわからなかった.
「設定」-「ネットワークと…」-「イーサネット」-「アダプターのオプション…」で確認することに.
コントロールパネル ネットワーク接続


2019/06/15 VirtualBox で開く時,次の様になることもあり.
VirtualBox で ネットワークインターフェースが見つからない
次の物理ネットワークインターフェースが見つからないので、仮想マシンWin10Proを開始できません:
Realtek PCIe GbE Family Controller (adapter 1)
マシンのネットワーク設定を変更するとか、マシンを停止してください。

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

Win10 Hyper-V インストール

開発環境のいろいろなツールを使おうとすると Hyper-V が要求される.
Emulator for Android で 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 を再起動.
Emulator for Android 起動画面


通常の仮想マシンなどの作成や起動は「Hyper-V マネージャー」から.
「Hyper-V マネージャー」の起動

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