Visual Studio 2017 でビルドして Windows 7 にインストール

午後4時起床,晴れ.朝食は6枚切り食パン2枚,茹で卵1個.Windows 10のZEKOVA_2020でリリース版を走らせたとき,「タイプ初期化子が例外をスローしました」というエラーが出る.VBのプロパティでコンパイル→ターゲットCPUをAnyCPUからx96に変えてやればエラーは解消する.ツールバーのターゲットプラットフォームを「Any CPU」のままにしておいても問題は発生しない.これまではVBのターゲットCPUはAnyCPUになっていたはずなのだが,何がどう変わったのだろう?

VBのプロパティの設定箇所は2箇所ある.①プラットフォーム,②ターゲットCPUだ.プラットフォームはAny CPUで,この設定は変更することができない.ターゲットCPUは現状ではx86としないと「タイプ初期化子が例外をスロー」してしまうが,Windows 7のVS 2005で管理しているプロジェクトで見ても,「ターゲットCPU」は「x86」になっていた.おそらくこれを最近の操作で切り替えてしまったためにエラーが発生するようになったのではないかと推定される.従って,「ターゲットCPU」=「x86」というのを定式とすることで決まりとしてよい.

Windows 7の環境でこのことを確認してみよう.⇒同じ設定で動作するようになった.ターゲットCPUはすべてのプロジェクトで共通でなくてはならないということだろう.ただし,プラットフォームはAnyCPUで問題ないものと思われる.さて,次に確認しなくてはならないのは,Windows 10でビルドしたパッケージがWindows 7にインストール可能かどうか?という点だ.これをVersion 2.1.0.010 Release 2019-01-11としてリリースしてみよう.⇒インストールできた.

Windows 10で生成したパッケージがWindows 7にインストールできたのだから,Windows 7でビルドしたパッケージがインストールできることはまず間違いないところだが,一応確認しておこう.微細なところで設定が異なるなどのことがないようにWindows 10からコピーしたものを試すことにする.このバージョンは今後 ZELKOVA2019として管理することにする.mmm… 失敗した.まだコピーが完了していなかった.

コピーに失敗したのだろうか?ビルドは完了しているが,実行しようとして,DLLが有効なWin32アプリケーションではありませんというエラーになった.どういうことだろう?「サービスの実行可能ファイルのパスに空白が含まれている場合に発生することがあります」という情報があるが,空白が含まれたパスは使用していない.(参考フォルダとして残す場合には空白を入れることもある)

“%1 は有効な Win32 アプリケーションではありません。” というエラー メッセージがサービスの開始時に表示され、イベント ID 7000 が発生する

もう一度コピーからやり直してみよう.

おかしい.「新しいキーボードをインストールしています」という通知が出た.何を意味しているのだろう?もう一度読もうとしたが,消えてしまっている.設定にはDell USB Entry Keybordしか登録されていない.あとは,USB Optical Mouseだけだ.

今度は起動できた.多分これはコピーをやり直したためではなく,アプリをアンインストールしてから実行したためと思われる.DLLを探すときの手順に問題があるように思われる.⇒インストーラを作ってみよう.Version 2.1.0.011 Release 2019-01-11とした.インストールできた.問題なく起動できる.Windows 10でビルドしたモジュールをインストールしてみる.いや,これはすでに実行している.上記でアンインストールしたモジュールがそれだ.

ただし,上記のようなエラーが起きているところから見ると,Windows 10でビルドしたDLLとWindows 7でビルドしたDLLは同じVS 2017でまったく同じソースから生成しているにも関わらず何か微妙な差異が存在するように思われる.もう一度今度はWindows 10で生成したインストーラで上書きインストールしてみよう.⇒問題なさそうだ.

これでともかく,Windows 10と7の上でVS 2017でビルドしたインストーラをインストールできることが確認された.念のため,Windows 7でビルドしたインストーラがWindows 10上でも使えることを確認しておこう.いや,その前にまだこのマシンにはZELKOVA2019の最新版がインストールされていない.インストールしたが,バージョン番号が変化しない.これはかなりおかしい.

プログラムと機能で見ると,インストールされているのはV2.1.0.010だ.にも関わらずヘルプでは2.1.0.002と表示されている.

これはおそらく,インストールは実行されたが,DLLがダブっているか,ないし更新されていないためと思われる.Program Files (x86)には一つしかない.しかし,明らかに中身は古い.というか,EXEも古いのでまったく更新されていない.多分アンインストールしてからインストールしてやれば更新できるとは思われるが… 今度は差し替わった.少し変則的な動作になっているが,ここは目を瞑って先に進もう.

Windows 7でビルドしたZelkovaTreeSetup.2.1.0.011.msiをインストールしようとして,下記のエラーになった.

image

カスペルスキーがブロックしているようだ.⇒ブロックしたモジュールリストで「許可」に切り替えて再試行して通った.インストールはできたが,やはり,前回インストールの内容が更新されていない.かなりまずい.この場合もアンインストールしてからインストールし直せば正常な状態になるものとは思われるが,それでは運用上かなり不都合だ.⇒アンインストールして更新できた.

この問題は「別の問題」として保留して前に進むことにする.開発用フォルダの中を少し整理しておこう.今後はZELKOVAフォルダではなく,ZELKOVA2019を標準フォルダ名として使うことにする.

Windows 10とWindows 7でZELKOVA2019が動作することは確認されたが,もう一つの問題はこのバージョンがXPで動くかどうか?という問題だ.現在のところ,所内にはWindows XP 搭載のPCは存在しない.ネカフェにあるかどうか調べてみたところ,少なくとも快活クラブでは2016年頃に全22,000台のパソコンをすべてWindows 10に切り替えている.自遊空間にはあるだろうか?中古で15000~20000円だ.

XPをもはやサポートしないという選択もあり得るが,仮にサポートしないとしても,動作しないというのはおもしろくない.SC430を復活させることは不可能だろうか?以前は電池を交換しただけで動くようになったということもある.今回はまだそれを試していないのでやってみる必要はある.

Visual Studio 2015まではXPをサポートしていたようだが,VS 2017では切り捨てている.Visual Studio 2017/2015/2013/2012 で、Win32アプリケーションを作成概略 によると,XP用のアプリをビルドするためには,プロジェクトのプロパティで「プラットフォームツールセット」をVisual Studio 2017 – Windows XP(v141_xp)のように変える必要があるが,インストールされているVS 2017には V141 はあっても v141_xp という選択肢はない.

いや,v141でも可と取れるような書き方になっているので,動作する可能性はある.これは試してみなければ分からないような気がする.とりあえず,XPでの動作チェックは保留して先に進もう.

32ビット版がXPで動作する可能性は十分あるが,ここまで来ると,やはり64ビット版を作ってみるしかないのではないだろうか?64ビット版はWindows 10上でビルドされ,Windows 10上で動作すればよいとしよう.それほど手間が掛かるとも思われないのでやってみることにする.ZELKOVA2020という環境でやることにしよう.

以下を修正した.

  1. VBのプロパティでターゲットCPUをx64に切り替え
  2. DLLのプロパティでリンカー→詳細設定→対象コンピュータをMachineX64(/MACHINE:X64)
  3. GCのプロパティでリンカー→詳細設定→対象コンピュータをMachineX64(/MACHINE:X64)
  4. OCXのプロパティでリンカー→詳細設定→対象コンピュータをMachineX64(/MACHINE:X64)

この設定で210エラー,4警告が発生した.プロジェクト単位にビルドしてみよう.DLLでは以下のエラーになる.

エラー    LNK1112    モジュールのコンピューターの種類 ‘x86’ は対象コンピューターの種類 ‘x64’ と競合しています。    ZelkovaDLL3    D:\ZELKOVA_2020\ZELKOVA2019\ZelkovaDLL\Release\AccidentalCollision.obj    1  

どこかにx86を設定している箇所が残っているようだ.ディレクトリの設定を見ると「実行可能ファイルディレクトリ」が

$(VC_ExecutablePath_x86);$(WindowsSDK_ExecutablePath);$(VS_ExecutablePath);$(MSBuild_ExecutablePath);$(SystemRoot)\SysWow64;$(FxCopDir);$(PATH);

のようになっている.参照ディレクトリ,ライブラリディレクトリにもx86が付いている.C/C++タブでプリプロセサの定義にWIN32; というのが入っている.どこをどう変えればよいのか?ちょっと見当が付かない.構成マネージャでプロジェクトごとに<新規作成…>でx64を追加してビルドすると,以下のエラーが出る.

d:\zelkova_2020\zelkova2019\zelkovadll\include\nodule.h(374): error C2371: ‘size_t’: 再定義されています。異なる基本型です。d:\zelkova_2020\zelkova2019\zelkovadll\src\jointtable.cpp: note: ‘size_t’ の宣言を確認してください

nodule.hの以下の定義を抹消した.

typedef unsigned int    size_t;

これで上記のエラーは解消したが,類似のエラーが出ている.

d:\zelkova_2020\zelkova2019\zelkovadll\src\bpagesetupdialog.cpp(31): warning C4267: ‘初期化中’: ‘size_t’ から ‘int’ に変換しました。データが失われているかもしれません。d:\zelkova_2020\zelkova2019\zelkovadll\src\bpagesetupdialog.cpp(259): warning C4244: ‘初期化中’: ‘SIZE_T’ から ‘DWORD’ への変換です。データが失われる可能性があります。

size_t は unsigned __int64 として定義されている.これをそのまま使うことにしよう.size_tとは「あらゆる型 (配列を含む) の理論上可能なオブジェクトの最大サイズを格納できる」データ型と定義されている.ポインタを格納する領域サイズをsize_tとしてもよいのかもしれないが,ややあいまいなところがあるので,何か新たにtypedefする必要がある.intptr_t と ptrdiff_t というのがあるので,これを使えばよいのではないか?

大体要領はわかったが,いずれにしてもこの修正は一日二日で終わる話ではない.64ビットバージョンはやはり,正式版リリース後ということにしよう.データ型の変換は機械的に実施することが可能だが,問題はデータファイル形式の変更を伴うという点だ.ファイルに保存されているデータの中にはクラスオブジェクトが丸ごと入っているところもある.つまり,32ビット版で保存されたデータは64ビットでは読み込むことができない.この問題を考えるときには,合わせてN木の線形変換の問題も考える必要がある.ここではパスするというのが適当だろう.下記リンクも何かの役に立つかもしれないのでメモしておこう.

10 行でズバリ!! 64 ビット対応 .NET アプリケーションの開発 (VB)

さて,64ビット版は後回しということになったので,いよいよ本線のデバッグに戻ることになるが,その前に一通りログの読み直しをしておこう.どこまで戻ればよいかは読んでいるうちに分かるだろう.Windows 10で生成したアプリをWindows 7にインストールして実行可能であることが確認できたので,開発環境は Windows 10 単独でカバーできることになった.

lenovo が最終的に廃棄されてもよいという態勢を固めておこう.何かまだバックアップし残りの部分があっただろうか?lenovo のCドライブはほぼ完全にコピー完了している.いや,まだ少しだけ残っているところがあるので送っておこう.

ここまでの作業で保留している項目を拾い出してみよう.これは通常「要対処項目リスト」と呼んでいるものに相当する.

  1. 上書きインストールしたとき,バージョンが更新されない場合がある
  2. ウィルス対策ソフトが入っていると,インストールがブロックされる場合がある
  3. 開発環境(Visual Studio 2017)を起動するときにはつねに「管理者権限で実行」する必要がある ⇒※だいぶ慣れた
  4. ソースネクストに「初期不良」でタブレットを返送しているが,応答がない ⇒ 問い合わせのメールを送る ⇒※着荷にした 2019/01/12
  5. ソースネクストで系図作成ソフト「親戚まっぷ」のバーゲンをやっている ⇒購入予定,落ち着いてからでよい
  6. VS 2017でビルドしたアプリがXPにインストール可能であることを確認する
  7. 64ビットOS対応版をリリースする
  8. lenovo ノートパソコンからの離脱を準備する ⇒※ほぼ準備完了した 棚の上に上げたが,画面を持たないブラインドマシーンとしてバックグラウンドで走っている
  9. 野菜を始末して,フロに入り,洗濯と掃除をする ⇒明日というか今日実行できるだろう
  10. ルーターのパスワードを変える
  11. パスワードを整理・管理する パスワードのメモが入っているファイルをPCから一掃する
  12. 必須コンポーネントで「!」マークが付いている項目がある
  13. IME を Google 日本語入力に変更した 理由の一つは,「句読点の切り替え」が効かないこと,もう一つは通知を止めても「誤変換の報告」通知がしつこく入って来るのを止められなかったためだ 「あ」一文字入力して候補がぞろぞろ出てくるというのもうれしくない(スマホならこれでもよいのだが…)これらはATOKなどの他社製品を使っても改善できなかった この現象は Open Live Writer に限定されると考えてよいと思われるが,そうなっているのは多分 Open Live writer が「アプリ」であるためだろう.
  14. lenovo に VS 2017 をインストールした際のダウンロードは20GBを軽く超えているはずだが,3日間の累積通信量が10GBを超えたのは一度だけだ なぜか?マイクロソフトはひょっとして「トンネル」を使っている?
  15. 「タイプ初期化子が例外をスローしました」エラーは,VBのターゲットをWIN32切り替えることで解決した
  16. 「緊急避難用バックアップ」はスマホに保管する
  17. インテリセンス用の保管フォルダをプロジェクトから独立させた
  18. GetVersionExAが非推奨となったため,GetOSDisplayStringを止めているが,復活させる必要がある
  19. VS 2017 ではVERSIONなどサポートされないプロパティがある
  20. class ATL::CAtlBaseModule ATL::_AtlBaseModule の未定義エラーを回避するためにリンカーの除外ライブラリからatls.libを外した
  21. OCX プロジェクトのプロパティ→MIDL→詳細設定→パラメータの確認を「いいえ(/no_robust)」から「はい(/robust)」に変えた
  22. OCX プロジェクトで警告    C4793    COleControl::`vcall'{544}”: ネイティブ関数としてコンパイルされましたを避けるために「警告をエラーとして扱う」をオフにした
  23. SignTool Error: The signer’s certificate is not valid for signing. エラーを避けるために,VBのプロパティ→署名で「ClickOnce マニフェストに署名する」をオフにした
  24. COM 参照 ‘ZelkovaZ3Lib’ は ActiveX コントロールは/link フラグでリンクされるように設定されていますが,リンクされませんの警告を無視
  25. LoadNamePropertyで「値ゼロはValueに対して有効ではありません」というメッセージが出ている
  26. 系図データサンプルは個人領域にインストールする テーマファイルなどもそうした方がよい
  27. Visual Studio 2017 のコンパイラはブロック内で同一変数名を使うことを禁止している 対応修正でミスがあった このような修正ミスがまだ残っている可能性がある
  28. 源氏テスト9を光源氏で開いて※2の脚下垂線に繋がる水平線がない また,この図面は「非連結グラフ」になる
  29. VS 2017 でビルドしたバージョンは V 2.1.0から始めることにする 公開時には V 3.0とする
  30. 警告    MSB8012    TargetExt(.dll) が Linker の OutputFile プロパティ値 (.ocx) と一致しないが出ていた
  31. プログラムのインストールフォルダを決める [ProductName] = Zelkova Tree 2019 に変更した
  32. スマホとPCの画像管理は Google Photo を使って行う
  33. VS2017ではインクルードパスはプロジェクトごとに指定するように仕様変更された
  34. __checkReturn_wat などいくつかのクラスが未定義になったので参照箇所(実際には使っていない)をコメントアウトして止めた
  35. VBのプロパティでコンパイルタブ→詳細コンパイルオプション→対象のフレームワークの値を.NET Framework 4に切り替え
  36. error BC40000: ‘Microsoft.VisualBasic.Compatibility.VB6.CheckBoxArray’ は旧形式ですが大量発生している 主に「配列オブジェクト」に関係するものだ 今のところ代替策は見つかっていないが,.NETの将来バージョンでは全面廃止になる
  37. bprintf の引数で CString を渡している箇所があった AllocSysStringを使って明示的にBSTRに変換した
  38. #ifdef の定義文に使える日本語文字に制限がある
  39. Visual Studio 2017 への移行作業は VS2005→VS2010→VS2017 というステップを踏んだ
  40. ファイル検索は拡張子が登録されているファイルしか検索の対象とならない Open Live Writer アプリは *.WPOSTを拡張子登録できないので,既定アプリとして Windows Live Writer をインストールした
  41. Meiryo UI ないし メイリオを既定のフォントとして使用してきたが,Windows の既定フォント Caribri を使うことにする 11ポイントが適正サイズだが,Open Live Writer のフォントツールでは {8, 10, 12, 14…} のような偶数サイズしか指定できない すべてのフォントプロパティをクリアする消しゴムアイコンのツールを使うと11ポイントに設定できるのでこれを使うことにした
  42. LinkLifeからの12月請求分4,827円の明細をチェックする 予定より大分上回っている⇒契約では月額3,684円になっている.2千円台のつもりだったのだが,何か余分なサービスを申し込んでいるのだろうか?オプションは4つあるが,すべて「なし」になっている いや違う,3684-740(3ヶ月目まで)+648円(3年目から)だから,2,944円のはずだ.4,827-2,944=1,883で2千円近く高上がりになっている 収納手数料が掛かったとしてもこれほどになるはずはない…
     
    「いつでも解約サポート」に関する認知度調査のメールが入っている 郵送されてきた契約内容とメールで送られてきた契約内容に齟齬がある 
     
    基本料金プラン:4,011円 税抜き
    割引額:     – 685円(最大3ヶ月)税込み:-740円
            - 500円(最大25ヶ月)税込み:-540円
            -100円(最大25ヶ月)
    月額税抜き:  2,736円 税込み:2,944円

    4011円というのは税抜きの基本料金プランで,税込みでは4332円になる 3684円というのはそれから648円(3年間)を引いたキャンペーン料金だ 従ってやや人を惑わすところはあるが,数字的には合っている トリッキーなのは3年間の割引600円(税込み648円)をわざと500円と100円に分割しているところだ.

    WIMAXのサポートサイトの明細では12月分の請求は3,160円だ.これには口座振替手数料が入っている.この金額は税込み価格だから,LinkLifeの請求はこの金額に一致しなくてはならない.4,827-3,160=1,667円も高い!何か初期費用で後払いになっているものがあるのだろうか?⇒※そのようだ 2019/01/13

  43. ネットワークドライブを購入する
  44. 「切り取り & スケッチ」の「共有」でおかしな表示が出ていたが,消えた
  45. Windows 10 のメールアプリは使わない ウェブメールはブラウザで送受信するか,ないしスマホを使って開く Yahoo! メールを Windows Live Mail で送受信するのは片手落ちかもしれないが,過去の蓄積メールが存在するのでやむを得ない ⇒※メールはスマホで受信,タブレットで送信する どちらもウェブで読み書きする outlookアカウントは原則使わない 2019/01/13
  46. 保存フォルダ内の重複メールを整理する
  47. lenovo のメーラーから「連絡先」を引き継ぐ ⇒ アドレス帳をエクスポートした
  48. ケータイの「連絡先」をスマホに引き継ぐ
  49. 2019-01-04投稿の「マイクロソフトアカウントを回避しローカルIDでログインする」で「ログの読み直し」を実施しているが,前回読み直しと接続するところまでは戻っていないのではないか?
  50. Backup and Sync for Google をPCに導入した
  51. 投稿した画像のアドレスが改竄されている googleusercontent.com で検索するといろいろな情報が出てくる WordPressでこのURLからのアクセスを禁止した 
  52. メールアカウントを整理し,Facebook の裏アカウントを廃止した
  53. 「Google Play 開発者サービス … 表示と管理を改善」は解消した
  54. スマホで「画面の上部を覆わないでください」というメッセージが入ることがある
  55. 2019-01-03投稿の「Google Play 開発者サービスが勝手に「表示と管理を改善」」にはログを整理したリストが載っている これは多分移行作業に入ってからのほとんどの作業をまとめたものになっているはずだ 

おかしい.何か環境が変わってしまったのだろうか?ZELKOVA2019でビルドエラーが出るようになってしまった.ターゲットがx64になっている.どうも手順を誤ってしまったようだ.ZELKOVA2019に修正が入っている.逆にZELKOVA2020がオリジナルの無修正版として残っている.2件の中断されたアクションというのが出た.

image

このエラーはファイルの転送中に発生したものと思われる.ファイル転送は完了したものと思っていたのだが… いや,まだまだ途上だ.あと14時間分残っている.もう一つは残り時間8分だ.

また,カスペルスキーが何かの実行をブロックしている.ZelkovaDLL3のビルドで大量のエラーが発生するようになった.タスクバーが画面最上部に移動し,ワイドスクリーンでは左のサイドバーに移動した.どうもまた,何か虫が蠢き始めた気配がある.まず,一旦開発環境を落として,タスクバーの異常を調べるところから始めよう.⇒タスクバーの異常はタスクバーの設定で「画面上のタスクバーの位置」を「カスタム」から「下」に変更することで復旧できた.しかし,変更後は「カスタム」という選択肢が現れなくなった.「タスクバーをカスタマイズする方法」というリンクは存在するが,ネットに接続する必要がある.

カスペルスキーはゼルコバの木のEXEの実行をブロックした模様だ.いや,違う.msiの実行だ.多分これは時間的にもっと前に起きていたもの(通知を見ていなかった)と思われる.ZELKOVA2020に戻ってみよう.⇒今度はまったく問題なくエラーゼロでビルド完了した.おそらく,カスペルスキーのブロックを除いて,①タスクバーの異常,②ファイル転送エラー,③ビルドエラーの3つの障害はすべて同時に起こったものと考えて間違いないと思う.ともかく,間違い易いのでレポジトリの名前を変えておこう.

「タイプ初期化子が例外をスローしました」という不吉なエラー

午後6時起床、晴れ。朝食は黄な粉餅中1個、かき餅4個。ネットアクセスがめっちゃ遅くなっている。WIMAXから3日間で10GBを超えたという通知が入っているので、これだろう。昨日は一日仕事していたし、そんなに使った覚えはないのだが画像が多かったのだろうか?スピードWiFiの通信量カウンタでは前日までの3日間で9.85GBとなっている。誤差があるので多分キャリアでは10GBを超えたのだろう。

昨夜は電源をすべて落として寝たつもりだが、ネットには接続した状態になっていてPCもスタンバイ状態のままだった。スタンバイではほとんど通信量は増加しないはずだが…WiFiを盗聴されているのだろうか?多分この制限は一定時間が経過すると解除になったはずだが… ⇒翌日の午後6時から午前2時までだ。現状では画像がほとんど表示できない。午前2時を回るまではできるだけネットにアクセスしないようにしてみよう。

インテリセンスのメンテナンスのために隠しフォルダ .vs を外に出したが、このフォルダはそれ以外の用途でも使われているので、インテリセンスの分だけ出すように構成変更しておく。 .vs\ZelkovaTree\v15 の下には  ipch と Server という二つのフォルダがある。ipchだけを外に出すようにしておこう。この設定は [ツール] → [オプション] →[テキストエディター] →[C/C++]→ [詳細]→[フォールバック位置]だ。

Visual Studio 2017 への移行作業はあと一息というところまで進んだ。まったくエラーなしでクリーンビルドすることができるようになっているが,インストール時にエラーが発生するという問題が残っている。パッケージに含まれるOCXが出来損なっているためと考えられるので、奥の手を使ってみよう。⇒「管理者として実行」が抜けていた可能性がある。Windows 10 でレジストリ登録できたので、多分今度はイケるのではないかと思う。ダメだ!失敗した。

自己登録失敗

エラーコードは-2147024770 = 0x8007007e。このエラーは「必要なモジュールが見つからない」ということなので、パッケージの内容が不足している可能性がある。.NETのバージョンということも考えられる。OCXの手動登録が可能かどうか見てみよう。先に、前回バージョンをアンインストールしてもう一度トライしてみる。結果は同じだ。ここでWindows の更新が入った。再起動が掛かるという。

Windows 10にインストールしてみよう。こちらでは特に問題なくインストールできた。Windows 7 でOCXのレジストリ登録を実行してみたが、前回と同じエラーになる。

読み込みに失敗

考えられるのは .NET のバージョンの問題くらいしか考えられないが、lenovo には .NET 4 までは入っている。必須コンポーネントを .NET 3.5 まで落としてみたが同じ。「必須コンポーネントをインストールしない」インストーラを作ってみたが、結果は同じ。以前Visual Studio 2010でビルドしたインストーラはインストールできたはずだが、もう一度試してみよう。⇒インストールできた。従って、問題はVS2010と2017の相違ということになる。

VS2010では必須コンポーネントは、①.NET Framework 2.0、②Visual C++ ランタイムライブラリ(x86)だが、VS2017では様子が変わってしまう。下図のように2つの項目に「!」!マークが付いている。

image

なぜ「!」のようなマークが付いているのか理由が分からない。また、「Visual C++ ランタイムライブラリ(x86)」はこのリストには現れない(現れる場合もあるが、そのときは「!」が付いている)。これはおそらく、これらのライブラリがこのマシンにインストールされていないか、ないし、使用不可となっているのではないかと推定される。

「必須コンポーネントをインストールするセットアッププログラムを作成する」をチェックした場合には、インストーラは環境に必須コンポーネントが存在しない場合には、それを「コンポーネントの開発元のWebサイトからダウンロード」するか、ないし「アプリケーションと同じ場所からダウンロードする」などの動作になるはずだが、そうなっていない。⇒※いや,作動しないのは「必須コンポーネントが存在している」ためとも考えられる.

ビルドオプションでAny CPUではなくWin32でビルドしてみたが、結果は同じだ。コンポーネントが不足していることが考えられるが、どう対処すればよいのか?Visual Studio 2017 の Microsoft Visual C++ 再頒布可能パッケージは VC_redist.x64.exeとして供給されている。.NET では .NET Core 2.2 と .NET Framework 4.7.2 がダウンロードできるようになっている。.NET Core はクロスプラットフォーム用、.Net Framework は Windows 専用だ。

Visual Studio 2017 にはセットアッププロジェクトを組むための独自機能が備わっている。VS 2010 から引き継ぐことで既存セットアッププロジェクトも動作しているように見えるが、おそらくこれはサポート範囲外の動作なのではないかと推定される。VS 2017で新たにセットアッププロジェクトを起こす前に、この推測が正しいことを確認してみよう。⇒※この推測は間違っている.VS インストーラはVS 2012で一度廃止されたあと,Visual Studio 2013で復活している.これは拡張子 .msi のインストーラを生成するためのプロジェクトだ.

これを確認するためには、lenovo に VS 2017 のランタイムを導入してやればよいはずだ。まず、lenovo で VC_redistx64.exeを実行してみよう。いや、しかし、現在のビルドはターゲットがx86だ。これでは話が合わないのではないか?vcredist_x86.exeというのがあった。これを試してみよう。⇒「より新しいバージョンがインストール済み」というエラーになった。VS 2010 でビルドしたパッケージがインストールできるのだから、当然かもしれない。

VS 2017ではx86を指定しても実際にはx64でビルドしているのではないだろうか?x64のランタイムをインストールしてみる。ランタイムは問題なくインストールできたが、Zelkova Tree 2019のインストールでエラーが起きた。エラーコードは 2932.

インストールエラー

エラー:2932は Win32エラーコード一覧 でも見つからない。考えられるのはこのパッケージがx86でビルドされているという点だ。動作に変化が見られるので解決に多少近づいている感触はある。lenovo は64ビットマシンなのでx64で走らないということはないと思われるが、そのためには64ビットでビルドする必要がある。しかし、これでは同じパッケージがWindows 10機では問題なく走っていることを説明できない。

このマシーンにはV2.1.9.002をインストールしているので、同じものをlenovoにインストールしてみよう。いや、上書きしてしまっているので残っていない。最終版の2.1.0.008もインストールできた。現状を整理すると、

  • Visual Studio 2017 でビルドしたパッケージをWindows 10にインストールできる。
  • Visual Studio 2017 でビルドしたパッケージをWindows 7にインストールできない。
  • Visual Studio 2010 でビルドしたパッケージをWindows 7にインストールできる。

という状態になっている。Visual Studio 2017 は Windows 7 SP1にはインストールできる。lenovo のOSはWindows Home Premium SP1だからインストールできるはずだ。lenovoにVS 2017をインストールしてやればおそらくZT 2019もインストールできるようになると推定される。それを試してみるしかないのではないか?

ただし、これをやるとlenovoに欠けているのは何か?ということを突き止めるのが難しくなるかもしれない。仮にWindows 7 SP1でZT 2019が走ることが確認できたとしても、おそらくXPでそれを走らせることは難しい/不可能なのではないかと推定される。従って、XPをサポート範囲に含めるとしたら、少なくともVS 2010でビルドする環境を維持する必要があるのではないだろうか?つまり、VS2010でビルドした版とVS2017版の2つのバージョンを並列させる必要があるかもしれない.

32ビット版と64ビット版を並行リリースするというのは当初からの既定だが、問題となるのはVS 2017では32ビット版を生成できないのではないか?という点だ。現行ではAny CPUでビルドしているので生成されるコードは32/64のいずれでも走るはずなのだが…だとすればXPでも走行するということになるのではないか?いや、少し違うかもしれない。

VisualStudio で実行ビット数を変更する

DLL, GC, OCX のターゲットプラットフォームは「Windows 10」に固定されている。VBのターゲットCPUは可変でAny CPU/x86/x64から選択できるが、現在の設定はx86になっている。従って、出力はx86になっているものと思われる。ただし、構成マネージャではDLL, GC, OCX はWin32、VBはAny CPUになっていてこれらは変更できない。VB のターゲットCPUをAnyCPUに変えてビルドしてみよう。⇒変化はなかった。

いや、そもそも、DLL, GC, OCX のターゲットがWindows 10 固定になっているのだから、何をやっても無駄なのではないか?Visual Studio 7 ではどうなっているのか見てみよう。Visual Studio 7 ではリンカー→詳細設定→対象コンピュータでx86/x64/MIPSなどを任意に選択できるようになっている。いや、これはVS 2017 でも同じだ。

相違点としては、VS 2017の場合には全般タブに「ターゲットプラットフォーム」という項目があり、「Windows 10」に固定になっているという点だけだ。しかし、クロスプラットフォームを謳いながら「Windows 10」に固定というのはどういうことなのだろう?VS Community だからだろうか?VS 2017のターゲットプラットフォームが Windows 10 に固定というのであれば、そもそもVS 2017でビルドしたモジュールを Windows 7 にインストールすることは不可能だ。

そうなると残る課題は、Windows 7 にVS 2017をインストールした場合にどうなるか?という問題だけになる。これをやってみるしかないだろう。Windows 7 にVS 2017がインストールできれば、そこで生成されたビルドがWindows 7で実行できない、ないしインストールできないということは考えられないから、実質的にVS 2017でビルドしたモジュールがWindows 7で実行可能ということになる。これはWindows 10にVS 2017をインストールした場合の結論と矛盾することになる。

果たしてどういうことになるのか?やってみれば分かることだ。⇒まず、Windows の更新から始めよう。ネットにこんなのがあった。

句読点、。から,.へのIMEでの設定変更が,Officeのみ反映されない.

予測変換を止めるなどのことをやってみたが、変化なし。「Officeを再インストールしてみる」、「別のアカウントを使ってみる」などのあいまいな回答ばかり。予測変換を止めても動作はあまり変化していない。一文字「あ」と入力しただけで変換候補がぞろぞろ出てくる。使い辛くて仕方ない。うるさい誤変換報告の通知は相変わらずだ。

誤変換データを送信しないようにするには

Windows の設定→プライバシー→手書き入力と入力の個人用設定で「あなたに関する情報の収集」をオフにする。これで止められるかもしれない。もう一つ、「プライベートモード」というのもある。これは「文字入力の変換履歴を一時的に無効にする」というもののようだが、オンにしてみよう。⇒「Google 日本語入力」というのがあった。

これを使ってみよう。⇒!やったー!「,.」が入るようになった!これで「誤変換報告の通知問題」も根絶できた.こんな解決があるとは夢にも思わなかった.やはり「競争」というものは必要だね.

「ワークロードの追加」を勧められたのでインストールした。これは Visual Studio Code のことではないだろうか?MSアカウントでサインインすることを求められたが、「あとで」でパスしておく。lenovo にVS2017用のレポジトリを送ろうとしたが、ディスク容量不足になった。lenovoのCドライブはdegginosにコピーしてあるので削除してもよいのではないか?安定版というところを削除してみよう。ここだけで10.4GBある。コピーしようとしているZELKOVA_2020は16.7GBだ。まだ42%しか完了していない.⇒完了した.

ドライブDからCにバックアップを移動して空き容量を増やし,ZELKOVA_2020をDドライブに移動する.⇒lenovo にVisual Studio 2017をインストールし,ZELKOVA_2020をコピーしてソリューションを開いたところ,セットアップ用プロジェクトが未サポートというエラーになった.どういうことだろう?このソリューションはWindows 10のVS 2017でビルドされたものであり,その中にはセットアップ用プロジェクトも入っている.

サポート外

インストールしたVS Community 2017のバージョンが異なるのだろうか?Windows 10にインストールされているのはV15.9.4だ.Windows 7にインストールされたのはV15.9.5で一つだけ上がっている.オプションの内容も少し異なる点がある.インストールされている製品もまったく違う.Windows 7には「ProjectServicesPackage Extension – 1.0」というものしか入っていないが,Windows 10には45本も各種のツールが入っている.この中にはProjectServicesPackage Extensionも含まれる.Windows 7にはVisual C++ 2017すら入っていない.これはかなりおかしい.インストール手順を間違えたのだろうか?

ソリューションを読み込んでみたが,4つのプロジェクトすべて「利用不可」になっている.考えられるのはMS アカウントでサインインするのをパスしたという点くらいだが…もう一度インストールし直してみる.「アプリと機能」で「変更」を選択し,再インストール画面を出した.明らかにインストール手順を誤っている.インストール項目にチェックを入れることを忘れていた.全部チェックしてフルインストールしておこう.いや,到底無理だ.50.1GBも必要になる.

Cドライブには21.3GBしか空き領域がない.この範囲でまとめることにしよう.①.NET デスクトップ開発環境,②C++によるデスクトップ開発,③ユニバーサルWindows プラットフォーム開発の主要3コンポーネントだけで20.68GBだ.

ルーターの通信量にはWiFiの所内通信まで入るのだろうか?通信量カウンタがぐんぐん上がっている.いや,上がっているとは言っても20GBのようなオーダーではない.それでもすでに7.57GBを超えている.いや,多分これはネットからダウンロードしているはずだ.とすれば逆に少な過ぎるような気もする…圧縮が掛かっているためだろうか?ダウンロードは完了したが,インストールの進捗を見るとまだ2%だ.相当な時間が掛かりそうだ.⇒終わった.問題が発生している.「Microsoft.Net.CoreUWP」がインストールできなかった.これは少なくともディスク容量の問題ではない.起動してみたが,相変わらずすべてのプロジェクトが「利用不可」になっている.

「修復」というオプションがあるので実行してみた.さらに5.79GBの容量が必要だという.ZELKOVA-2018-01を削除してみよう.14.3GBある.ダウンロードは比較的簡単に済んだが,インストールにメチャ時間が掛かりそうだ.まだ,3/546をやっているところで1%にも満たない.

不思議なのはこのダウンロードがどこから来たものなのか?という点だ.ルーターの累積通信量はすでに3日間の上限である10GBまであと2GBというところまで来ているのに1GBも増えていない…ようやく1%を超えた.通信量もじわじわと増加傾向にあるので,下手をすると10GBを超えてしまうかもしれない.

インストール完了した.ダメだ.今度こそと思ったのだが,まだアプリケーションがインストールされていない…どういうことだろう?ZELKOVA_2018をコピーしてZELKOVA_2019としてソリューションを開いたところ,ATLとMFCがないのでインストールする必要があるというのでインストールした.「x86用とx64用のMFCをインストール」と表示された.1.6GBくらいある.パッケージのインストール100%完了と表示したあとハング状態になっている.⇒完了した.

セットアッププロジェクトは非互換となっているが,それ以外のプロジェクトは正常にロードされている.ソリューションを閉じてZELKOVA_2020をもう一度開いてみる.⇒今度は読み込めた.ただし,セットアッププロジェクトは「非互換」となっている.Windows 10の方ではこのような表示はない.Windows 7では「アプリケーションはインストールされていません」となっている.

確か,インストーラ生成用のツールがあったはずだ.ウェブ履歴で見ると昨日1月10日の午前0時21分に「 Visual Stuido 2017でインストーラを作成する方法 – 自由になりたくて会社辞めました 」という記事が出てくる.多分これを参考にして,「Microsoft Visual Studio 2017 Installer Projects」をインストールしているのではないかと思う.多分これしかないと思われるので手順を書き留めておこう.

  1. Visual Stuido 2017 Community :ツール→拡張機能と更新プログラム→オンラインで「Installer Projects」で検索
  2. 「Microsoft Visual Studio Installer Projects」をダウンロード
  3. チェックボックスで右クリックすると「この拡張機能はすでにインストールされています」が出た.⇒いや,これは大間違い.Windows 10で操作していた.
  4. 「すべてのVisual Studio のウィンドウを閉じると変更が実行されます」→「閉じる」ボタンを押してパネルを閉じ,Visual Studio Communityを閉じるとVSIX インストーラが起動される.
  5. 「変更」ボタンを押す.
  6. インストール完了したら,パネルを閉じて再起動

VS Installer Projects はインストールされたが,セットアッププロジェクトは「非互換」のままだ.ともかく,ここでソリューションをビルドしてみよう.まず,デバッグモードでやってみる.このソリューションは一度Windows 10上でビルドしたものなのだから,エラーなしで通らなくてはならない.しかし,DLLプロジェクトのプロパティを見ると,「ターゲットプラットフォーム」は相変わらず「Windows 10」で固定だ.ということはビルドはできても走らないということなのだろうか?

しかし,それも考え辛い.開発環境の上で走らないとしたら,デバッグも糞もないからだ.もし,仮に開発環境(Windows 7)で走ったとすれば,リリース版が実機(Windows 7)で走らないというのもまたおかしい.もし,このリリース版がWindows 7上で走ったとすれば,ではWindows 10上で走るのかどうか?ということになる.まぁ,ともかくやってみれば分かるだろう.問題なく立ち上がってきた.

どうも前回エラーが出た時点でプロジェクトファイルないしソリューションファイルが書き換えられているようだ.構成マネージャで見るとセットアッププロジェクトが落とされている.もう一度オリジナルと差し替えて試してみよう.!ダメだ!以前として「アプリケーションがインストールされていません」のままだ.VS Installer Projects はインストールされている.考えられるのは,「VS Installer Projects」がWindows 10専用でWindows 7では非互換となっている可能性だ.

Visual Studio Installer は VS 2012からサポートされなくなっていたようで,復活したのは VS 2013の頃と思われる.シェアウェアのようだが,Advanced Installer for Visual Studio 2010 というのがあった.使えそうな気はするのだが… もう一つ,Windows Installer XML(WiX)というのがある.というか,どっちみち新しいプロジェクトを作るのならネイティブなプロジェクトを作った方が早いのではないか?

ファイル→プロジェクト→新しいプロジェクト→その他のプロジェクトの種類→Visual Studio Installer→Setup Projectで新しいセットアッププロジェクトを起こすことができる.ただし,これで新規セットアッププロジェクトを起こすとソリューションも新しい空白のソリューションに変わってしまう.いや,何かどこかでスイッチが入ったようだ.今度は読み込めるようになった.リリースモードでビルドできるようになったが,走らせたところ例外が発生した.「アプリケーションはブレークモードになっています」という表示が出ている.

ブレークモード

「タイプ初期化子が例外をスローしました」というエラーはどこかで見たことがあるが,あまりよい兆候ではない.かなり致命的なエラーが起きていると考えた方がよさそうだ.もう一度デバッグモードで走らせてみる.Windows 10でも同じメッセージが出ている.こちらではエラーなしで走っていたような気がするのだが…このエラーは何度も出ていたような気がするのだが,ログは1件しか残っていない.「2018-03-06 応急措置としてページ設定→プリンタの設定ボタンを廃止」.

このときは,バックアップに戻って動作することを確認してから,再修正を入れることで切り抜けている.デバッグモードでは走っているようなので,タイミング的なものである可能性がある.ターゲットをAnyCPUからWin32に切り替えて動作するようになった.これまでずっとAnyCPUで通してきたのだが…修正箇所は2箇所ある.IDEのツールバーとVBのプロパティ→プラットフォームだ.

Windows 10ではこれまで通りの設定で少なくとも一度はリリースモードで走っていたという気がするのだが…実際,それを確認してからインストールして動作を確認しているはずだ…なぜそれができなくなってしまったのか?特にWindows 10では何も変更していないつもりなのだが…ともかく,同じことをWindows 7でもやってみよう.

VS 2017でインストーラをビルドするところまで進んだ

午後2時半起床、晴れ。朝食は黄な粉のかき餅小8個。Visual Studio 2017 への移行作業がようやく軌道に乗った。しばらくは単純な書き換えを行うだけになった。多分これは今日一晩掛ければ終わるだろう。VBで何か問題が出る可能性はあるが、越えられないというほどにはならないと思う。もう少しで移行完了できるという見通しが立った。

Visual Studio 2005, 2010, 2017 は新しい環境で完全に並列実行できる態勢になっている。すでにVisual Studio 2019 の年内リリースが予告されているが、このバージョンの目標は「チームの生産性を向上させるためにクラウドをシームレスに使うメソッドの確立」にあるので、今のところ自社製品にはほとんど影響はないものと見られる。従って、現在の移行措置が完了すればしばらくは安定な開発環境が確保できると考えてよいと思う。さて、ぼちぼちと作業に掛かることにしよう。

しばらく、デバッグの「本作業」から遠ざかっていたので、ルーチンを忘れてしまう。まず、「始業時バックアップ」から開始しなくてはならない。最終的にはVS 2005, 2010, 2017を統合的に使えるような構成を組まなくてはならないが、今日のところは VS 2017 のためのレポジトリである ZELKOVA_2020 のバックアップだけを取っておくことにする。このルーチンには「緊急退避用バックアップ」も含まれ。これまではUSBに保管してきたが、USBは耐久性にやや問題があるので、むしろスマホにバックアップするのが確実なのではないかと思う。

緊急時ノートは持ち出せなかったとしても、スマホだけは常時携帯できると思われるし、そうすべきだろう。mmm… ZELKOVA フォルダをバックアップしたが異様に時間が掛かっている。容量を見たら、6.36GBもある。これは何だろう?VS 2010でビルドしている ZELKOVA_2019は560MBだ。VS 2005でビルドしているZELKOVA_2018に入っているZELKOVA は519MBしかない。

ZELKOVA_2020のZELKOVA は6.36GB、ファイル852本、フォルダ85だ。ZELKOVA_2018は519MB、ファイル数792、フォルダ数27でフォルダ数が圧倒的に少ない。ZELKOVA_2020のトップレベルには以下のような8個のフォルダがある。

  1. .vs 6.36GB, 852本、85フォルダ
  2. _UpgradeReport_Files 15.7KB、4本、0フォルダ
  3. debug 4.98MB, 12本、0フォルダ
  4. Release 0, 0, 0
  5. SetupBeta 28.4MB、6本、2フォルダ
  6. ZelkovaVB 5.04MB、229本、8フォルダ
  7. ZelkovaDLL 0.97GB、424本、6フォルダ
  8. ZelkovaGC 16.5MB、53本、4フォルダ
  9. ZelkovaZ 29.3MB、64本、3フォルダ

 

.vs という隠しフォルダがあってその中に大量のファイルが作られている。これは何だろう?内部には大量の暗号化された(ような)フォルダがあって、その中にはxxxx.IPCHというファイルが1個だけ入っている。このフォルダはすべての「モジュール」ごとに作られているように思われる。何をやっているのか?まったく見当も付かない。これが「Visual Studio 2017」なのだとしても、何のためにこんなことをやっているのだろう?どうも「インテリセンス」に関わりのあるファイルらしい。

Visual Studio 2010 の sdf と ipch

バックアップを取るたびにこの大量ファイルをコピーするのは馬鹿げている。どこか外に出してアクセスするようにできなくてはならないのだが、上記リンクにその方法が書いてあった。[ツール] – [オプション] の中の、[テキストエディター] – [C/C++] – [詳細] で設定できる。

ここで、「[常にフォールバック位置を使用] という項目をTrueに変更し、[フォールバック位置] というところにフォルダ名を指定してやれば、sdf と ipch はそっちに置いてくれるようになる」。これを除けば、従来フォルダと同程度に圧縮できるはずだ。Visual Studio は個人のドキュメントフォルダに専用領域を確保しているのだから、最初からそこに置いておけばよいような気もするのだが…

まぁ、中には一つのPCで複数のプロジェクトを並行して走らせるようなこともあるだろうから、プロジェクトに付属させるというのは悪いアイディアではないかもしれないが…分かり易いのは.vsごと外に出すという仕様だろう。ZELKOVA_2020に.vsを移してそこを参照するようにしてみよう。「D:\ZELKOVA_2020\.vs\ZelkovaTree」を参照するように設定してみたところ、以下のようなパネルが出た。

image

これで問題ないと思われるが、.vsを直接使ってできるかどうか調べてみる。大丈夫なようだ。VSが「このフォルダは適切です」と言っているのだから、問題ないだろう。初回バックアップにはこのフォルダを残しておいて、ZELKOVAからは削除しておこう。_UpgradeReport_Filesは大きなフォルダではないが、移行後は不要と思われるので、これも削除しておいてよいと思う。mmm… これでも1.16GBある。これまでの倍だ。内容的にはほとんど変化していないように見えるのだが…

クリーンビルドしてみた。エラーが104個出ているが、DLLに限れば修正が残っているファイルはあと7本だけだ。ともかく、まずこれを片付けてしまおう。⇒終わったが、まだコンパイルエラーが出ている。

BugReportDialog.cppのGetOSDisplayStringで「C4996    ‘GetVersionExA’: が非推奨として宣言されました」という警告になる。以下のURLに対処策がある。

【C/C++】OSのバージョン取得

VersionHelpers.hに記載された関数を使えということのようだ。GetOSDisplayStringでは「Windows NT 4.0 SP5 以前と Windows 9x」を弾いているのだが、この場合は、IsWindowsXPOrGreater(XP以上)でよいのではないだろうか?というか、’GetVersionExA’が使えないとこの関数GetOSDisplayString自体まったく機能しないので、丸ごと差し替える必要がある。

Windowsバージョンの取得方法

上記にGetOSDisplayStringの改訂版があるので差し替えておこう。いや、これはC#で書かれている。これをC++に戻すのはちょっと手が掛かりそうだ。GetOSDisplayStringはバグレポートダイアローグにOS名を表示するために使われているが、現在はバグレポートダイアローグ自体止めてあるので、ここではパスすることにする。これでコンパイルエラーは出なくなったが、リンカーでエラーが出ている。

LNK1117    オプション ‘VERSION:1.8.0’ に構文エラーがあります

リンカーでエラーが出るというのは珍しい。そもそもリンカーのオプションなどはすべてデフォルトのままで何もいじっていないはずだが…

VS2003からのC++プロジェクトアップグレードするとLNK1117エラーが出る場合の対処

上記で見ると、VS 2017ではVERSIONというオプションはサポートされていないというように読める。リンカーオプションでバージョンの項目を空欄にしてこのエラーは解消したが、大量の未解決シンボルが出る。エラーコードはLINK2001だ。ATL::_AtlBaseModuleの実装がないということのようなので、ライブラリのパスが切れているものと思われる。

リンカーオプション→特定の既定のライブラリを無視にatls.libが含まれているのだが…ATLというのはCOMを実装するために必要な Active Template Library だ。atsld.lib は VS 2013 から atsl.lib に統合されて存在しなくなったという記事もある。オリジナルのZELKOVA_2018では「特定のライブラリの無視」はatls.libだけで、そのあとに続く%(IgnoreSpecificDefaultLibraries)は入っていない。

もともとこれで動いていたのだとすれば、外部シンボル””class ATL::CAtlBaseModule ATL::_AtlBaseModule” (?_AtlBaseModule@ATL@@3VCAtlBaseModule@1@A)” を求めるということ自体がおかしいのではないだろうか?GetOSDisplayStringも未定義になっているが、これは実装を止めたのだから当然かもしれない。_AtlBaseModuleはほとんどすべてのCPPファイルから参照されている…_AtlBaseModuleはatlimage.hのIsTransparencySupportedという関数から参照されている。

inline BOOL CImage::IsTransparencySupported() throw()
{
#if WINVER >= 0x0500
return( _AtlBaseModule.m_bNT5orWin98 );
#else  // WINVER < 0x0500
return( FALSE );
#endif  // WINVER >= 0x0500
}

atlimage.hというファイルはc:\program files (x86)\microsoft visual studio 8\vc\atlmfc\include\atlimage.hにあるが、このファイルはVS 2017では参照されていないはずなのだが…検索を掛けるとMicrosoft Visual Studio 8 のファイルが出てくるのだがどういうことだろう?このエラーはどこかに_AtlBaseModuleというオブジェクトを実装してやれば消えるような気がするのだが…

CAtlBaseModule _AtlBaseModule;

を設置し、さらにCAtlBaseModule のコンストラクタとデストラクタを実装してみたが、エラーは消えない。atls.libを除外しないようにリンカーオプションを変更してエラーはすべて解消した。これまでは問題なく動作していたのに何がどう変わったのかよく分からないが、ともかくこれで進んでみよう。ZelkovaGC.cppでも上と同様「を宣言すると、クラス メンバーが隠蔽されます」のエラーが出ている。⇒GCはビルドできたが、OCXで下記のエラーが発生する。

エラー    MIDL2338    switches are contradictory  -no_robust vs. -target    ZelkovaZ3    D:\ZELKOVA_2020\ZELKOVA\ZelkovaZ\midl    1
エラー    MIDL1024    Errors on command line–Aborting    ZelkovaZ3    D:\ZELKOVA_2020\ZELKOVA\ZelkovaZ\midl    1

よく分からないが、プロジェクトのプロパティ→MIDL→詳細設定→パラメータの確認を「いいえ(/no_robust)」から「はい(/robust)」に変えてみた。これでこのエラーは解決した。

Build fails from from msbuild command line with Errors MIDL2338 and MIDL1024. Works in VS2017

まだエラーが残っている。

警告    C4793    COleControl::`vcall'{544}”: ネイティブ関数としてコンパイルされました:    ZelkovaZ3    D:\ZELKOVA_2020\ZELKOVA\ZelkovaZ\ZelkovaCtrl.cpp    1
警告    C4793    CZelkovaCtrl3::`vcall'{572}”: ネイティブ関数としてコンパイルされました:    ZelkovaZ3    D:\ZELKOVA_2020\ZELKOVA\ZelkovaZ\ZelkovaCtrl.cpp    1
エラー    LNK1117    オプション ‘VERSION:1.8.0’ に構文エラーがあります。    ZelkovaZ3    D:\ZELKOVA_2020\ZELKOVA\ZelkovaZ\LINK    1

C4793は以前にも出ていた。なぜだろう?LNK117のバージョンオプションを空欄にしたら、C4793も出なくなった。GCが認識されていなかったが、VBの参照にGCのプロジェクトを追加してエラーは消えた。ただし、VBではまだエラーが残っている。

エラー        署名中にエラーが発生しました: ..\debug\app.publish\ZelkovaTree2018.exe の署名に失敗しました。SignTool Error: The signer’s certificate is not valid for signing.
SignTool Error: An error occurred while attempting to sign: ..\debug\app.publish\ZelkovaTree2018.exe    ZelkovaVB3

VBのプロパティ→署名で「ClickOnce マニフェストに署名する」をオフにしてこのエラーは回避できたが、まだもう一つ警告が残っている。

1>  COM 参照 ‘ZelkovaZ3Lib’ は ActiveX コントロール ‘AxZelkovaZ3Lib’ の相互運用アセンブリですが、コンパイラによって /link フラグでリンクされるように設定されています。この COM 参照は参照として処理され、リンクされません。

この警告は無視してもよいだろう。しかし、起動時エラーがかなり出ている。一番多いのは「….dll’ が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。」で、これはシンボルファイルが読めなかったというものなので無視してよい。「シンボルの読み込みをスキップしました。モジュールは最適化されていて、デバッグ オプションの [マイ コードのみ] 設定が有効になっています。」も出る。どこで発生しているのか分からないが、

Invalid parameter passed to C runtime function.

というエラーが7件発生している。

0x752CAB32 (KernelBase.dll) で例外がスローされました (ZelkovaTree2018.exe 内): 0x000006BA: RPC サーバーを利用できません。

というエラーも出るが、これは前から出ていたものだ。

mincore\com\oleaut32\typelib\tlibapi.cpp(2279)\OLEAUT32.dll!76806C31: (caller: 767EA33C) ReturnHr(2) tid(3bb0) 8002801D ライブラリは登録されていません。

というエラーも出る。これは見たことがないような気がする。

‘ZelkovaTree2018.exe’ (Win32): ‘D:\ZELKOVA_2020\ZELKOVA\debug\Interop.ZelkovaZ3Lib.dll’ が読み込まれました。モジュールがシンボルなしでビルドされました。

というのも出る。これはOCXのシンボルデバッグができないという意味だろうか?いや、問題なくできそうだ。これでビルドしたモジュールが走るところまで来た。例のLoadNamePropertyで「値ゼロはValueに対して有効ではありません」というメッセージが出ている。ここまで来れば「日常のデバッグ」に戻れる。

現行ではサンプルはプログラムフォルダのCommon Files\ゼルコバの木系図に入っているが、ドキュメントフォルダの方がよいのではないだろうか?プログラムフォルダはシステムフォルダなのであまり適切ではないように思われる。ここに置いたのは複数のユーザIDからアクセスできるようにするという理由だったと思うのだが、系図データはやはり個人領域に置くべきだろう。

▲系図データサンプルは個人領域にインストールする。テーマファイルなどもそうした方がよい。

mmm… 動作が少しおかしくなっている。どこかで修正をミスっている可能性がある。デバッグするしかなさそうだ。

▲起動してTOPOLOGY::TribeDecompositionで(forefather->klist.senzo > 0)により停止する。forefatherには森田家曽祖父#113が入っている。ビルドしようとしたら、SBRファイルがないというエラーになった。DLLに書き込めなかったのでdebug内のファイルをすべて破棄したためと思われる。クリーンビルドはエラーなしで完了したが、このフォルダにはSBRファイルは入っていない。SBRはZelkovaDLLに入っている。このフォルダの中身はまったく操作していない。何か言い掛かりを付けられたような感じがする。

修正ミスがあったので、修正した。今度はwntdll.pdbが読み込まれていませんというエラーで停止した。オプションで「ソースファイルが見つからない場合に常に逆アセンブリを表示する」をオンに切り替えた。このような場合、マイクロソフトはAzureでソースを提供しているようだ。どうも何かまだおかしなところがあるようだ。

image

これは時間が掛かり過ぎているという意味だが、タモリんちを読み込むのにそれほど時間が掛かるはずはないので何か状態がおかしくなっているものと思われる。というか、暴走ないし迷走しているように思われる。BuildSameGeneMarriageGraphでハングしているようだ。ステージ【4】複数の親を持つ終端カードを節点とする自己ループを追加するでループしているようだ。⇒もう一つ修正ミスがあった。

いずれもループカウンタのローカル変数の修正に失敗している。Visual Studio 2017 のコンパイラはブロック内で同一変数名を使うことを禁止している。この仕様変更は確かに意味があるし、実際この修正で潜在していたバグを少なくとも3つ取り除くことができたが、同時に複数のバグを作り込んでしまう結果となった。

修正は別の名前を付ければよいというだけの簡単なものだが、ブロックが大きくて見通せない場合には修正を誤る可能性がある。この種のミスは簡単に発生しそうなのでまだ出てくるかもしれない。取り敢えず問題なく動作しているようだが、源氏テスト9で描画上の瑕疵が出ている。

▲源氏テスト9を開いて※2の脚下垂線に繋がる水平線がない。左中弁 (椎本)に繋がらなくてはならないのだが…かなりおかしな状態になっている。

image

※2の直下にある大将は親なしのはずなのに頭部垂線が入っている。左中弁 (椎本)に入る親子連結線はこの余分な垂線から伸びている。もし、これが今回の修正で起きているのでないとすれば、見落とされていたバグということになるのだが…この図面で※2でソートするとMPLCレッドラインを踏むことになるが、避けられないのだろうか?

このデバッグは後回しにして、一応動作しているのでリリース版を起こしてインストールして動作確認することにする。2018年12月27日にライセンスを発行し、Version 2.0.2.260としている。このときは「Windows10でビルド32ビット版」だったが、これは VS 2005でビルドしたものと思われる。このあと、VS 2005 ないし VS 2010 でビルドする必要はなくなると思われるが、VS 2017 でビルドしたバージョンは2.1.0から始めることにする。

公開時には思い切って3.0としてもよいのではないか?リリース版では上記のエラーがまた蒸し返されている。プロジェクト単位でビルドしてみよう。DLLでは_countが未定義になった。なぜだろう?この変数はデバッグモード時にのみ定義されている。GCでは2つ警告が出る。

1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\Microsoft.Common.CurrentVersion.targets(2729,5): warning MSB3284: タイプ ライブラリ “f10efde4-db94-11d2-b863-289605c10026” バージョン 1.0 のファイル パスを取得できません。ライブラリは登録されていません。 (HRESULT からの例外:0x8002801D (TYPE_E_LIBNOTREGISTERED))
1>LINK : /LTCG が指定されましたが、コードの生成は必要ありません。リンク コマンド ラインから /LTCG を削除し、リンカーの性能を改善してください。

後者のエラーは構成→リンカー→最適化→リンク時のコード生成を空欄にすることで解消した。「ライブラリが登録されていない」というのはDLLのことだろうか?これは登録しないことにしているのだが… この警告はデバッグモードでも出ている。実害はなさそうなので、無視しておくことにしよう。OCXでは「switcheds are contradictory –no_robust vs. -target」が出る。上記と同様、構成→MIDL→詳細設定→パラメータの確認を「はい(/robust)」に切り替えて解消した。

リンカーがまた、「オプション VERSION…に構文エラーがあります」を出している。また、

警告    C4793    COleControl::`vcall'{544}”: ネイティブ関数としてコンパイルされました:    ZelkovaZ3    D:\ZELKOVA_2020\ZELKOVA\ZelkovaZ\ZelkovaCtrl.cpp    1

という警告も出ているが、「警告を無視する」設定の前にもう一つ別の警告があるので見ておく必要がある。

警告    MSB8012    TargetPath(D:\ZELKOVA_2020\ZELKOVA\Release\ZelkovaZ3.dll) が Linker の OutputFile プロパティ値 (D:\ZELKOVA_2020\ZELKOVA\Release\ZelkovaZ3.ocx) と一致しません。このため、プロジェクトが正常にビルドされない可能性があります。この問題を解決するには、$(OutDir)、$(TargetName)、および $(TargetExt) の各プロパティ値が、%(Link.OutputFile) で指定されている値と一致することを確認してください。    ZelkovaZ3    C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\VC\VCTargets\Microsoft.CppBuild.targets    1216
警告    MSB8012    TargetExt(.dll) が Linker の OutputFile プロパティ値 (.ocx) と一致しません。このため、プロジェクトが正常にビルドされない可能性があります。この問題を解決するには、$(OutDir)、$(TargetName)、および $(TargetExt) の各プロパティ値が、%(Link.OutputFile) で指定されている値と一致することを確認してください。    ZelkovaZ3    C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\VC\VCTargets\Microsoft.CppBuild.targets    1217

いや、この警告もデバッグモードで出ていた。構成プロパティ→全般→全般→ターゲットの拡張子を.ocxに変えて解決した。これで実行できるようになった。Version 2.1.0.001  Release 2019-01-07 となった。これを Windows 7 にインストールして動作を確認してみよう。製品名はZelkova Tree 2019とした。

インストールしてみたが、エラーが出ている。ZelkovaZ3.ocxの登録に失敗している。カスペルスキーがブロックしている可能性がある。いや、「アプリケーションが弱い制限付きグループに追加されました」とあるのでパスしているのではないか?アンインストールしてからインストールし直してみる。やはり同じエラーになる。

リソースのVS_VERSION_INFOでFILEVERSIONとPRODUCTVERSIONを更新しても元に戻ってしまう。なぜだろう?FileVersionとProductVersionは更新できる。いや、今度は戻らなくなった。プログラムのインストール位置をbabalabo\Zelkova Tree 2018と決定しているのはどこだろう?⇒Launch Conditions→ApplicationFolderのプロパティで決めている。

DefaultLocation = [ProgramFilesFolder][Manufacturer]\[ProductName]
[Manufacturer] = babalabo
[ProductName] = Zelkova Tree 2019

インストール時にエラーが発生したが、無視して強行してインストール完了にはなった。起動すると.NET Frameworkのエラーが発生したが、より新しいバージョンの.NETでエラーが発生しているためVisual Studioではデバッグできないというメッセージが出た。.NETは4.5を使うようになっている。lenovoには.NET 4が入っている。手動でregsvr32を実行してもエラーになる。

読み込みに失敗

これはもしかすると、デバッグモードのOCXを参照している可能性があるので、作り直してみることにする。あるいは、Windows 10にインストールしてみてもよいが…

warning C4793: COleControl::`vcall'{540}”: ネイティブ関数としてコンパイルされました

食後に椅子でひと眠りしている間にヘルプのダウンロードが完了していた。日付が変わっているので新しいエントリを起こすことにする。

IMG_20190107_092449_thumb[2]

ノートパソコン(lenovo)の写真をスマホで取ってPCに落としたが、うまく同期が取れない。「ダウンロード」で何とか取り出せたが…まぁ、これはあとで見ることにしよう。ヘルプを「?」で開いてみた。

各プロジェクトのディレクトリの一覧 (プロジェクト単位) を指定することも、ユーザー、プロジェクト構成、および対象プラットフォームごとの組み合わせ (ユーザー単位) を指定することもできます。
ユーザー単位のプロパティ シートは、コンピューター上の特定のユーザーのすべてのプロジェクトに影響を与えます。

プロジェクト単位にパスを設定するようになっているが、ユーザ単位でも設定できるようになっているようだ。いや、現実にはそれはできないのではないだろうか?「VC++ ディレクトリ」タブには何も入力することができない。また、仮に「ユーザ単位」にパスを指定できるようになっていたとしても、それでは不都合だ。必要なのは「solution単位」でパスが指定できることなのだから…

プロジェクトのプロパティのVC++ディレクトリ→インクルードディレクトリで開かれるパネルは VS 2017 の場合とまったく同じだ。ここに以下の3行を追加してビルドできた。

$(SolutionDir)ZelkovaDLL
$(SolutionDir)ZelkovaDLL\INCLUDE
$(VCInstallDir)VC\atlmfc\include

DLLの場合、以下の4つのエラーが出ている。

1>SRC\COMDEBUG.CPP(28): error C2146: 構文エラー : ‘;’ が、識別子 ‘errno_t’ の前に必要です。

1>SRC\COMDEBUG.CPP(28): error C4430: 型指定子がありません – int と仮定しました。メモ: C++ は int を既定値としてサポートしていません

1>SRC\COMDEBUG.CPP(28): warning C4273: ‘fopen_s’ : dll リンクが一貫していません。

1>          C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\stdio.h(236) : ‘fopen_s’ の前の定義を確認してください

最初のエラーは「__checkReturn_wat」が定義されていないためだ。この名前はcrtdefs.hで定義されている。このヘッダファイルは以下のフォルダに入っている。

c:\program files (x86)\microsoft visual studio 8\vc\include\crtdefs.h

これをインクルードパスに追加してみよう。以下を追加してみたが、効かない。

$(VCInstallDir)VC\include

VS 2010 ではこの位置にこのファイルが存在していない可能性がある。いや、存在している。考えられるのは$(VCInstallDir)が「Microsoft Visual Studio 10.0」を指していない可能性だ。というのは、このファイルをダブルクリックで開こうとすると、VS 2005 かないし、VS 2017 で開こうとする動作になるからだ。つまり、VS 2017 がすでにインストールされているために誤動作しているのではないか?ということが考えられる。マクロを使わずに直接上のパスを記入してみよう。

ダメだ!通らない。なぜだろう?VS 2010 のcrtdefs.h には「__checkReturn_wat」が入っていない。COMDEBUG.CPPで以下の行をコメントアウトしてコンパイルできた。

_CRTIMP __checkReturn_wat errno_t __cdecl fopen_s(__deref_out_opt FILE ** _File, __in_z const char * _Filename, __in_z const char * _Mode);

「_get_amblksiz」と「_set_amblksiz」も未定義になる。これらもコメントアウトできた。これでDLLはビルドできた。GCでは’ExportClasses.h’が見つからないというエラーになる。これは以下のパスにある。

d:\ZELKOVA_2018\ZELKOVA\ZelkovaDLL\INCLUDE\ExportClasses.h

これはプロジェクトのインクルードパスに以下を追加して解決した。

$(SolutionDir)ZelkovaDLL\INCLUDE

OCXの場合も同じだ。OCXでは警告が2つ出ている。

warning MSB8012: TargetPath(D:\ZELKOVA_2019\ZELKOVA\Debug\ZelkovaZ3.dll) が Linker の OutputFile プロパティ値 (D:\ZELKOVA_2019\ZELKOVA\Debug\ZelkovaZ3.ocx) と一致しません。このため、プロジェクトが正常にビルドされない可能性があります。この問題を解決するには、$(OutDir)、$(TargetName)、および $(TargetExt) の各プロパティ値が、%(Link.OutputFile) で指定されている値と一致することを確認してください。

warning MSB8012: TargetExt(.dll) が Linker の OutputFile プロパティ値 (.ocx) と一致しません。このため、プロジェクトが正常にビルドされない可能性があります。この問題を解決するには、$(OutDir)、$(TargetName)、および $(TargetExt) の各プロパティ値が、%(Link.OutputFile) で指定されている値と一致することを確認してください。

実際には同じ内容なので警告は1つと見てよい。要は、「TargetPath と Linker の OutputFile」の値が異なるということのようだ。この違いは「DLL」と「OCX」の違いだ。リンカーの出力ファイルがDLLになっている。これをOCXに変えればよいのだろうか?この部分がDebugモードとReleaseモードでは異なるものになっている。Releaseモードでは

$(OutDir)$(TargetName)$(TargetExt)

のように書かれている。Debugモードでは

$(SolutionDir)\$(Configuration)\$(ProjectName).dll

だ。最後のdllを$(TargetExt)のように書き換えてみよう。いや、見るところを間違えた。この違いはOCXではなく、GCのプロパティだ。OCXでは出力ファイルはOCXになっている。構成プロパティ→全般→ターゲットの拡張子が「.dll」になっているので「.ocx」に変えてみよう。通った。レジストリ登録に失敗している。

regsvr32 /s “D:\ZELKOVA_2019\ZELKOVA\\Debug\ZelkovaZ3.ocx”

このコマンドをPowerShellで実行してみたところ、下記のエラーになった。

エラーコード:0x80040201

このエラーは管理者権限がない場合に発生するとある。今度は成功した。これは結局Visual Studio を起動する際に管理者権限で実行していないためだろう。⇒起動し直してDLLのエラーは出ないようになったが、VBでエラーが発生する。

vbc : error BC40057: プロジェクト レベルのインポート ‘ZelkovaBeta’ で指定された名前空間または型が、パブリック メンバーを含んでいないか、または見つかりません。名前空間または型が定義されていて、少なくとも 1 つのパブリック メンバーを含んでいることを確認してください。また、インポートされた要素名がエイリアスを使用していないことを確認してください。

VBの参照にdebug\ZelkovaZ3.ocxを追加しようとしたら、以下のようなパネルが出た。

image_thumb[2]

「はい」で閉じたのはよいが、「対象の.NET Framework」を変更しなくてはならない。VBの.NETは現行では2.0になっている。OCXで必要な.NETのバージョンが分からないので取り合えずこのまま進むことにする。「ツールボックスにアイテムの選択」を実行しようとして、以下のエラーになった。

image_thumb[5]

ツールボックスにOCXを追加してエラーが発生した。プロジェクトファイルが壊れたというので「修復」を選択した。追加したOCXはツールボックスから消えている。もう一度実行してみたが、同じ現象が起きる。つまり、OCXをVBフォームに貼り込むことができない。

かなりまずいことになってきた。OCXをフォームに貼り込むと、IDEではこのオブジェクトを描画するためにOCXを起動する。この際何かエラーが発生して異常終了しているものと思われる。ツールボックスから挿入で参照解決するというのは「奥の手」なのでそれができないとほとんどお手上げになってしまう。

Releaseモードで試してみることにする。どうもReleaseモードとDebugモードで個別にインクルードパスを切る必要があるようだ。かなり馬鹿げているという気がするのだが…馬鹿げているというよりは「ひどい話」だと思う。IDEが落ちているので、「管理者権限で実行」が外れているのではないか?以下のようなエラーが出ている。

2>D:\ZELKOVA_2019\ZELKOVA\ZelkovaZ\ZelkovaCtrl.cpp : warning C4793: COleControl::`vcall'{540}”:  ネイティブ関数としてコンパイルされました:
非 clrcall 仮想呼び出しサンクは、ネイティブとしてコンパイルする必要があります

この警告はデバッグモードでも出ているが、ビルドは完了している。リリースモードでは警告をエラーとみなす設定になっているため、ビルドは失敗に終わる。このエラーはCOleControlの仮想関数に関わるものなのでアプリからは調整できないので、プロジェクトのプロパティで「警告をエラーとして扱う」を「いいえ」に変えることにする。

VBのプロパティでコンパイルタブ→詳細コンパイルオプション→対象のフレームワークの値を.NET Framework 4に切り替えて名前空間の問題は解決したが、まだエラーが残っている。

D:\ZELKOVA_2019\ZELKOVA\ZekovaVB\CardBox.Designer.vb(97) : error BC40000: ‘Microsoft.VisualBasic.Compatibility.VB6.CheckBoxArray’ は旧形式です: ‘Microsoft.VisualBasic.Compatibility.* classes are obsolete and supported within 32 bit processes only. http://go.microsoft.com/fwlink/?linkid=160862′

のようなエラーが、以下の要素で発生している。項目11以下は関数。

  1. CheckBoxArray
  2. ButtonArray
  3. ComboBoxArray
  4. PanelArray
  5. TextBoxArray
  6. ButtonArray
  7. FixedLengthString
  8. SetDefault
  9. GetItemString
  10. GetHInstance
  11. FontChangeName など
  12. TwipsToPixelsX
  13. PixelsToTwipsX
  14. CopyArray

これらはすべてVB6の残留物と見られる。このエラーは多分警告に落とすことができ、VBでは警告を無視するようになっているので、多分実行は可能になると思われるが、.NETの将来バージョンないし、64ビット版では完全に廃止されることになっている。いや、違う。現行では「すべての警告をエラーとして扱う」ようになっている。

このエラー ObsoleteAttribute を警告に落とす方法が見つからない。暫定的に「すべての警告を表示しない」でビルドしてみる。やはり、OCX が認識されていないという問題が残る。今度はツールボックスからフォームにOCXを挿入できた。これで一応ビルドは通ったが、実行しようとしたらIDEが落ちてしまった。

Zelkova_2018とZelkova_2019が同じモジュールを使っているためと考えられる。Zelkova_2018を閉じてから再試行してみよう。「管理者権限で起動」を忘れていた。今度は走った。ようやく、懐かしいエラーパネルに再会できた。LoadNameProperty のエラーだ。

image_thumb[8]

このエラーが最初に検出された日付を調べてみよう。2018/12/27だ。このエラーは

チャンネルギャップの値がゼロになっている.この値は1~100の間でなくてはならない.⇒新規ファイルでは既定のテーマが使われるが,common files\ゼルコバの木系図\templates に標準画面設定.TMZ ファイルが存在しないためだ.これはまだアプリをインストールしていないためだ…

という理由で起きている。ようやくデバッグに戻ってきた。さて、ここからどうするか?だが、ここでデバッグに入るより、先に2017への移行を急いだ方がよいのではないだろうか?多分2017への移行は2010への移行とほぼ同等手順で実現できるのではないかと思う。あれこれやるより手順を飲み込んでいる時点で片付けてしまった方がよい。ソリューションやプロジェクトは修正内容が生かせると思うので、2010→2017というステップでやってみることにする。

Visual Studio 2017で2010でビルドしたソリューションを開くと、下記のパネルが出る。

image_thumb[11]

これで「プラットフォームツールセット」は v100からv141に上がった。それ以外には何も表示されない。

食事してきた。通知を見ると「誤変換報告」が「無数」と言ってよいくらい入っている。切りがないので「すべての通知をクリア」することにしたが、一番最後に気になる通知が入っている。いま開けたら消えていたが、「ヘルプエージェントを開始しました」とか何とかいうメッセージだった。「誰もそんなこと頼んでない」っつーの。ビルドすると大量のエラーが発生するが、前に出ていた「インクルードパス」の問題はきれいに解消している。以下のような警告が発生している。

1>d:\zelkova_2020\zelkova\zelkovadll\include\nodule.h(800): warning C4458: ‘cid’ を宣言すると、クラス メンバーが隠蔽されます。

cid という変数はクラスメンバーとして宣言されているが、スコープが違うのだから問題ないはずだ。いつからそういう話になったのか知らないが、C++の規約にはそのようなことは書いてないはずだ。警告だから無視してもよいのだが、ともかく直しておこう。

少しややこしい話が出てきた。

1>d:\zelkova_2020\zelkova\zelkovadll\src\bpagesetupdialog.cpp(288): warning C4840: 可変個引数関数の引数としての、クラス ‘ATL::CStringT<char,StrTraitMFC_DLL<char,ATL::ChTraitsCRT<_CharType>>>’ の移植性のない使用法
1>        with
1>        [
1>            _CharType=char
1>        ]

オンラインヘルプによれば、static_cast<int>(s) のように書き直すべきだという。これはどうもちょっと堪ったもんではない。ひどい言いがかりと言ってよいくらいだ。bprintfがエラーになるとしたら何百いやそれ以上の修正が必要になる。いや、そういう問題ではないかもしれない。エラーが出ている個所はchar*ではなく、CStringを引数で渡している個所だ。AllocSysStringを使って明示的にBSTRに変換する必要がある。

「クラス メンバーが隠蔽されます」の修正箇所は山のようにある。ソースファイルがDLLだけで79本ある。仮にファイルが100本で1本当たり10箇所修正するとすれば、修正は1000件におよぶ。1箇所でも間違えればアウトだ。必ずバグになって返ってくるだろう。本当はこのようなエラーが出ている個所を吟味して最適修正すべきなのだろうが、ともかく今は機械的に書き換えてゆくしかない。

最近では #ifdef などの条件コンパイル文に「日本語」を使うようにしているが、ここに来て急にその構文がうるさくなってきた。VBでも同じことをやっているがこちらは元々多少の制限はあったが、C++にはまったく規制が掛かっていなかったのに VS 2017 になって、少なくとも以下のような構文は禁止されるようになった。①文中に「→」あるいは「->」を用いてはならない。②文頭に使ってはいけない文字がある。今のところは『「、◆』だけだが、もっといろいろありそうだ。

つまり、日本語文字の中で「特殊記号」に当たるものは使えない場所がある。数式記号は元々使えないので半角の「-」や「>」は使えない。ただし、全角の「-」は問題ないようだ。今のところまだプログラムをすべて日本語で書くというところまでは進んでいないが、VBではすでに多少それを試みている。プログラムをすべて日本語で書くことができれば(実際多分それは現状でもほとんど問題なく可能だと思われる)プログラミングは相当楽になるような気がする。#ifdef 文の中に日本語を使っているのは、それがコメント(修正履歴)の代用になるためだ。

わたしの墓碑銘:死ぬ直前の最後の言葉「百万ドルの隠し場所は…」

午後6時半起床、曇り。朝食は黄な粉餅中2個、かき餅小3個。tamo2さんからこんな立派な墓石をプレゼントしてもらった。

image

でも、なんでわたしが92歳でtamo2さんは97歳なの?そんな不公平な!まぁ、わたしは120まで生きることになってるから、92歳ではまだ「ここらでちょっとひと眠り」ってとこだね。「一億円の未収金」って別にはったりじゃあないよ。

実際いま、わたしのパソコン内部ないしPCからサーバーまでの経路に潜入しているラット(ネズミ)の長期にわたる活動が明るみに出れば、それだけで「一億円を優に超える損害賠償請求」が発生するからね。それを突き止めるのはわたしの仕事ではないけれど、いつかそういうものがすべて明るみに出る日が来ることだけは間違いがない。

さて、そろそろ仕事に戻らなくてはならないのだが、その前にどうやってこのラット(女性の可能性もあるのでラッコちゃんと呼んでおこう)とこの先付き合ってゆくか?ということだけは考えておかなくてはならない。一番早いのは手なずけて協力者にしてしまうことかもしれない。いや、実際すでにラッコはわたしのアシスタントとして活動を始めている。もし、昨日ラッコが「Windows 10 の検索インデックス作成:よくあるご質問」のウェブページを開いていてくれなかったら、わたしはまだまだ解決の糸口がつかめずにもがいていたはずだ。

よく覚えていないけれど、もしかしたら過去にもこういうことはあったのではないか?という気がする。わたしが「白雪姫と七人の小びとたち」と呼んでいた現象はそれだったのかもしれない。「七人の小びとたち」はわたしが寝ているあいだにいろいろなことをしてくれた(ような気がしている)。仙人道の祖「縁の行者(役小角)」は「鬼神を使役して水を汲み薪を取らせていた」と言われているが、わたしにもそんな強力なアシスタントが一人くらいいたらなぁって思うよ。まぁ、わたしはお金は出せないから、ラッコを雇用している人間ないし組織からラッコを引き離すということもできないけど…

ラッコとコミュニケートするシークレットチャンネルというのがあればよいが、それもまたテクニカルに言って難しい。ともかく指令第一号を出しておこう。「ラッコへ:君が参加するすべての会議を可能な限りボイスレコーディングせよ。入手できるすべての議事録を複製し私的に保管せよ。これはラッコとラッコのすべての仲間たちへの共通指令である。いまは、それを公開する必要はない。」

ペンの形をしたボイスレコーダーというのが売っているからそれを使うといいかもしれない。わたし自身でできることと言えば限られている。うかつにメールを開かないとか、不注意にリンクをクリックしないとか… カスペルスキーは最後の防衛線だけど、それを抜かれたときの最後の手段としては「OSのクリーンインストール」という対処策しかない。「OSのクリーンインストール」というのはこれまでも何回やったか覚えていないほどだが、それしかないというのも現実だ。

この「OS」がバージンクリーンであることが保証できるかどうかは不明だ。もし、この「OS」がピュアバージンでないとすれば、「わたしは生まれた星が間違っていたのだ」と考えるしかない。US政府機関はファーウェイ製品のOSのバージニティを疑っている… カスペルスキーはそれをソースコードレベルで自己証明するための「Global Tansparency Initiative Center」をスイスのチューリッヒに設置しているが…

さて、いよいよ、仕事に戻る。昨日「全文検索エンジン」をいくつもインストールしてしまっているので、まず、それらをアンインストールするところから始めよう。それにしてもまともに動く「無料全文検索エンジン」が一つもないということは驚くべきことだ。「全文検索」を機能させるためにはファイルシステム全体を常時スキャンして「インデックス」を生成する必要があるが、それはすでに個人で作るソフトの守備範囲を超えているということだろうか?

最近購入したばかりのノートパソコンはドスパラ製だ。ドスパラは国内企業で「ドスパラダイス」の略称。わたし自身は「DOS」の仕事はほとんどしたことがないが、「DOS」 の時代はまだ「ログイン」という概念すら存在しないパラダイスだった。「パスワード」などという薄汚れたものを必要としない真っ白い雪が降り積もった「処女地」だよ。わたしが関わったシステムではCPMやC/CPM、あるいはBTRONなどのややマイナーなOSを使っていたが、それらはすべて雪のように消えた。

昨日インストールした製品をアンインストールしておこう。

  1. SearchApp
  2. Glarysoft Quick Search
  3. SGサーチ
  4. 探三郎
  5. TFind 2.10

このうち、アンインストールできたのは②のGlarysoft Quick Searchだけだ。それ以外はすべてインストーラを持たないEXEを叩くだけの古い形式だったものと思われる。さて、いよいよ本線の Visual Studio 2017 への移行作業だが、昨日指摘したように、まず、VS 2010に移行するというステップを踏んでみることにする。本当はVS 2017 をアンインストールして順次バージョンアップしてゆくというのがよいのかもしれないが、Visual Studio は異なるバージョンが共存できるという建て前になっているので、このまま進むことにする。

いや、どうもVS 2010 評価版のサポートはすでに終了しているようだ。マイクロソフトのダウンロードサイトにはVS 2017 しかない。いや、あった。以前のバージョンをお使いになりたいですか? ここには、2010, 2012, 2013, 2015の各バージョンがそろっている。マイクロソフトアカウントでサインインして進むと

Sorry, we couldn’t find any downloads for you.
To continue, please join
Visual Studio Dev Essentials or purchase a Visual Studio Subscription.

のようなメッセージが出る。VS Subscription は持っていないが、Visual Studio Dev Essentials には参加しているような気がするのだが… VS Dev Essential に参加したのはよいが、babalabos@outlook.jpで加入してしまった。これはMS アカウントそのものだ。PC上での活動をローカルIDのbabalaboで通すつもりだったが、元の木阿弥になってしまう。まぁ、実質同じことなのでこれ以上あがいても仕方ない。VS 2010 Professional をダウンロードしようとしたら警告パネルが出た。

image

SmartScreen は止めてないはずなのだが… ともかく「実行」ボタンを押してみよう。インストールは完了した。次に、ヘルプをインストールしておこう。ヘルプだけで4GB以上ある。ローカルにインストールするまでもないのかもしれないが…

My Weblog Posts で「2010」を検索してみた。20件ヒットしたが、開けない。かなり困ったことになった。*.WPOSTファイルをダブルクリックすると、以下のようなエラーになってしまう。

image

設定→既定のアプリ→ファイルの種類ごとに既定のアプリを選ぶで.wpostのアプリを「Windows Live Writer Application API」に設定できたが、エラーは解消しない。いま使っているのは Open Live Writer で Windows Live Writer はインストールされていない。「Microsoft Store でアプリを探す」を実行しても、「このフィルター処理では該当する結果が見つかりませんでした」になってしまう。Open Live Writer は「既定のアプリ」を自己登録していないのだろう。

検索できてもそのファイルが開けないのではほとんど意味がない。「Windows Live Writer」をインストールするしかないのだろうか?Windows Essentials をダウンロードするときに Live Writer を外しているので使うとすればもう一度ダウンロードしなくてはならない。いや、ダウンロードしたパッケージにはすべて入っている。今回は「すべてインストール」してみよう。パッケージにはwlsetup-all.exeとwlsetup-web.exeがある。よくわからないが、前者をインストールした。インストールは完了したが、動作には変化がない。

一度再起動してみよう。ヘルプの更新がまだ1/5くらいしか終わっていない。いつ終わるか分からないので一旦キャンセルしておこう。多分必要なら「ヘルプ ライブラリ マネージャ」を使って更新できるだろう。

再起動してみたが、動作は変わらない。どうもこれはいよいよOSのクリーンインストールしかないかもしれない。lenovoなら検索は可能だが、ファイル検索のためだけに老いぼれたlenovoを起動するというのは悲し過ぎる。もうそろそろ、このマシーンは休ませてやりたい。とは言え、Windows 7 搭載の唯一のマシーンなので、出荷版のテストにはまだまだ必要な場面もあるが…

!開けた!ファイルのプロパティを開くとファイルの種類:WPOSTファイル(.wpost)の下にプログラム:という項目があり、「変更」ボタンで出てくる下記パネルをスクロールすると、

image

「その他のアプリ↓」の一番下の項目に「このPCでアプリを探す」という項目がある。Windows Live Writer は C:\Program Files (x86)\Windows Live\Writer にあるEXEだ。Open Live Writer アプリもどこかにあるはずだが、見つけることができない。

「Visual Studio 2010」で検索したら「VS2010 トライアル版をインストールした」が出てきた。2013/07/01の記事だ。この頃の記事は「メイリオ 9.6」を使っている。現在使っているのは12ポイントだ。少し大き過ぎるような気もするが、15.6インチで1920×1080のdiginnos ノート(Critea DX-KS)ではこれ以上小さくできない… いや、読めないというほどではないが、まぁ、ユーザもそろって高齢化してきているので「大きい文字」でよいのではないだろうか?

ビッグローブのWIMAXを導入した時期だ。LTEからWIMAXに切り替えた理由は「①最初の契約内容と月々の請求金額が違う.いつも予定より2千円くらい高い. ②GB規模のファイル転送ができない.転送速度が低下し,止まってしまう.③VS2010試供版のダウンロードができなかった。 」だ。WIMAXではVS2010のダウンロードは難なく完了した。

「開発中のソリューションフォルダをバックアップしてからVS2010を起動してみる.ソリューションは特に問題なく開けた.クリーンビルドすると以下のような変換エラーが出たが,思ったよりもずっと少ない…まだこれらのエラーのフィックスは終わっていないが,多分それほど手間はかからないと思う.VS2010は.NET 4.0を使っているようだがWindows 7にはデフォルトで搭載されている..NET関係でエラーが出ているのは多少腑に落ちないところがあるが・・・いずれにしても正式版はVS2005でビルドしたものを出荷するつもりなので,VS2010への正式な移行は時期的にもっと先の話になる.VS2010をインストール後,VS2005を起動してみたが問題なさそうだ.つまり,共存できる.」

どうもこのときは、ここまででその先まで進んでいないようだ。この後の記事は1ヶ月飛んで2013/08/01。変換エラーは7件表示されているが、それ以外のエラーはなかったのかどうか?は分からない。

    • SRC\COMDEBUG.CPP(30): error C2146: 構文エラー : ‘;’ が、識別子 ‘errno_t’ の前に必要です。

    • SRC\COMDEBUG.CPP(30): error C4430: 型指定子がありません – int と仮定しました。メモ: C++ は int を既定値としてサポートしていません

    • SRC\COMDEBUG.CPP(30): warning C4273: ‘fopen_s’ : dll リンクが一貫していません。

    • C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\stdio.h(236) : ‘fopen_s’ の前の定義を確認してください

    • SRC\NullPoint.cpp(877): error C3861: ‘_get_amblksiz’: 識別子が見つかりませんでした

    • SRC\NullPoint.cpp(881): error C3861: ‘_get_amblksiz’: 識別子が見つかりませんでした

    • C:\windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.Targets(1558,9): warning MSB3284: タイプ ライブラリ “f10efde4-db94-11d2-b863-289605c10026” バージョン 1.0 のファイル パスを取得できません。ライブラリは登録されていません。 (HRESULT からの例外: 0x8002801D (TYPE_E_LIBNOTREGISTERED))

結構厄介そうなエラーに見えるが、もう一度試してみれば分かるだろう。VS 2010で既存solutionを開くと、下のようなパネルが開く。

image

変換は簡単に終わった。発生したエラーは1件だけだった。

エラー    1    カスタム ツール エラー: ファイルの生成に失敗しました: XML ドキュメント (1,1) でエラーが発生しました。    D:\ZELKOVA_2019\ZELKOVA\ZekovaVB\My Project\Application.myapp    1

前回発生したようなエラーはまったく起きていない。いや、まだビルドしていないから、これから出るのだろうか?ビルドを実行すると、ヘッダーファイルが開けないというエラーが続出する。これは結局 VS 2017 で起きているのと同じ事象だ。オプション→プロジェクトおよびソリューション全般→VC++ディレクトリを開くと、

「ツールのオプションでのVC++ディレクトリの編集は推奨されていません。VC++ディレクトリは、すべてのプロジェクトに既定で追加されるユーザプロパティシートとして使用できるようになりました。詳細については「?」をクリックしてください。」

と表示される。「?」というのは「ヘルプ」のことだが、インストールを打ち切ってしまったのでオンラインヘルプを見るしかない。「?」で表示されるパネルの「はい」ボタンを押すと、「Visual Studio 2005 の提供終了済みドキュメント」のページに連れて行かれた。ここからVS 2010のドキュメントをダウンロードするのは難しい。ページが分からないと表からはほとんど到達できないところにある。⇒製品のヘルプメニューから「ヘルプ ライブラリ マネージャ」を開ける。今度は Visual Studio のカテゴリだけをダウンロードすることにした。

しかし、この辺りのことが2013/07/01のログにまったく記録されていないのはなぜだろう?何となく切り抜けてしまったのだろうか?

「マイクロソフトもグーグルも信頼できない」という嘆かわしい現実

午後3時起床、晴れ。句読点が「、。」になってしまうという問題には対処できないので「気にしない」ようにするしかない。もっとも大きな問題は、「マイクロソフトもグーグルも信頼できない」という現実が明らかになったことだ。そうなればもはやウェブから撤退するしか道はないということになる。しかし、それでは飯が食えない。わたしはまだあともう少しは生き延びなくてはならない。やることが残っているからだ。

どうすればよいか?マイクロソフトアカウントは多分ほとんど使用しなくても済むようになっているはずだが、グーグルアカウントはG+と Facebook で使っている上、Gmail アカウントは現在外部世界と接触するほとんど唯一のメールアカウントになっている。一つの方策として、ネットワークドライブを使用することが考えられる。これを使えば少なくともマイクロソフトやグーグルのクラウドに頼らなくてもローカルで自律的にほぼ同等の機能を享受できるようになるはずだ。

現行ではPC上で使っている20個近いパスワードをすべてグーグルに委ねている。これをすべて記憶するのは不可能だし、そんなことをしていたら仕事にならなくなってしまう。これまでに起きているトラブルは主にブログの記事をサイトに投稿するために使っている WordPress の操作に関するものだ。また、メインのメールアカウントとして使っている Yahoo! メールの送受信で問題が起きることもある。この2つが現に起きているもっとも顕著な障害と言ってよい。

どちらも投稿ないし送信しようとしているテキストの改竄が原因ではないかと推定されるが、このようなサイバー犯罪の現場は主にこのPC内部ではないかという疑いがある。マイクロソフトやグーグルは一旦それらのアカウントでサインインするとPC内部のすべてのリソースに無制限にアクセスできる事実上の権限を取得してしまうので、このような犯罪行為を容易に実行することが可能だ。可能だというだけではそれを実行しているとは言えないが、これまで見てきたさまざまな事象からそう疑わざるを得ない程度の十分なエビデンスがある。

Gmail アカウントに入ってくるメールはほとんど外部からのダイレクトメールやメルマガだから,止まったとしてもほとんど実害はないと考えられる。逆に言うと、現時点では Yahoo! メールのアカウントは生命線であり、これを死守しなくてはならない。zelkova-tree.net ドメインを使えばメアドはいくらでも追加できるが、それも「安全性」が確認された上でなくては使うことができない。

パスワードを忘れてそれがどこにもメモってないときはパニックになり思いつく限りのパスワード候補を打ち込むことになるが、これは「パスワードのコレクション」を集める絶好の機会だ。一つのパスワードを使い回すというのは普通に行われているから、これによって家の鍵の束を窃盗犯に渡したことになる。こういうサイトは大概、「パスワードの使い回しは止めましょう」と必ず呼び掛けてくる。それに従って次々新しいパスワードを作ってゆくとすぐに記憶の限界に達してしまうから、次に出てくるのはその代わり「あなたに代わってパスワードを管理して上げます」というお誘いだ。まぁ、よくできたシナリオだと思う。

スマホに「緊急持ち出し用ファイル」を保管するというのは悪いアイディアではないが、Android = Google なのだから、実際にはまったく「機密」にはなっていない。マイクロソフトはもう少し紳士的でユーザの同意がない限り「パスワード」を盗んだりはしないとは思われるが、マイクロソフトのサービスにログインした時点で「同意」したことになっているので、Windows を使っている限りはこの罠から逃れることはできない。我々は「籠の鳥」だということを自覚せざるを得ない。

奇妙なのはグーグルとファーウェイが蜜月と言ってもよいほどの密接な関係を持っているという点だ。少なくともわたしの持っているスマホではそうなっている。これはファーウェイがスマホを製造・販売し、グーグルがそのOSであるAndroid を供給するということからの自然な帰結であるのかもしれないが、わたしの知る限りグーグルは何年か前に一旦中国本土から(いまのファーウェイのように)追放されたことがあり、それがどういう風の吹き回しでこういうことになっているのか?とても興味深い。どうも、この世界は一筋縄ではゆかないところがある。

相変わらず「誤変換記録の報告」通知が出てくる。これを止めるには「集中モード」に切り替えるしかないかもしれない。ときどき出てくる「通知」をちらっと読むのは気晴らしにはなるが、同じ通知がこんなに頻繁に出てくると鬱陶しくなってくる。特に読まなくてはならない通知というのもなさそうなので、全面的に止めることにしよう。⇒ダメだ。集中モード=すべての通知オフにしているのに、まだ出てくる。しかも、しつこく出てくる。

「切り取り&スケッチ」で共有デバイスが表示されなくなった!この問題に関しては何もしなかったつもりだが、Windows を更新したのだろうか?できれば、「句読点の設定」も効くようにしてほしい。さて、そろそろ時間切れという感じになってきた。しばらくは現状で運用するしかないと思う。もし、また何か異変があれば、それはそのときに対処することにする。「ネットワークドライブの購入」は差し迫ったリクエストではないので後回しということにしておこう。

MS IMEを使わないという選択もあるかもしれない。ちょっと試してみよう。Windows 10 にはいくつか別の IME が搭載されている。MS IME の他に、①IME Standard, ②ATOK、③VJE、④WXが実装されている。①を選択してみよう。動作にはほとんど変化はない。何か入力しないと動作テストにならないが、「誤変換」の定義が分からないので対処しようがない。①ではまったく同じだ。②にしてみよう。動作も外観も変わらない…ダメだ。何の効果もない。

こうなると打つ手としてはスピーカをミュートするというのしかなくなってしまう。カメラも塞いでおいた方がよいかもしれないね…ともかく、邪魔をしないで欲しいんだ!いま23時2分だ。しばらく放置して何個くらい通知が出るか測ってみよう。

さて、そろそろ時間切れという感じになってきたので、仕事に戻ることにしよう。ともかく VS 2017 に移行しなくては話にならない。INCLUDEファイルのパスが通らないというところで足踏みしている。どう対処すればよいか?以前一度 VS 2010 を試したことがある。このときにはこのような問題は発生していなかったと思う。VS 2005 → 2010 → ・・・2017 → というステップを踏むということも考えられる。

以下の記事を見ると、インクルードファイルの設定仕様はすでに 2010 で導入されているようだ。プログラマのつれづれなるままに このときはあまり苦労した記憶はないのだが、ログが残っているだろうか?おかしい。My Weblog Posts が空になっている。mmm… 少し厄介な話になってきた。昨日の調整で表アカウントのドキュメントを参照するようになっている。管理者としてログインしているのでアクセスは可能だが、フォルダを探すのが厄介だ。ショートカットを作っておこう。

どうも検索がすこぶる非力になっている。タイトルしか探していないという感じだ。現物をコピーして検索してみたが動作は同じだ。これはかなりまずい。検索ができないのでは保管していても何の役にも立たない。以前にも似たようなことが起きていたことはあったような気はするが…つまり、フォルダによって検索ができない場所があったような気がする。表アカウントでチェックしてみよう。同じだ。「以前」というときには、lenovo では読めたが、digginos では読めなかったのではなかったろうか?そのあと、ほとんどログの検索というのはやっていないと思う。つまり、現在の Windows 10 では全文検索で成功したという実績がない。「インデックス」は作られているのでできないという訳はないのだが、タイトルの部分だけのインデックスを作っているのだろうか?

SearchAppという全文検索エンジンをインストールしてみた。このソフトはJavaベースなので別にJREをインストールした。JREは2020年でサポートが切れる。実行してみたが、大量のエラーが発生してヒットしたのはCache.xmlだけという結果になった。このソフトの本体はgrepでExcel, Word, PDFなども検索できるのだが、wpostファイルは読めないということのようだ。

Glarysoft Quick Searchを試してみよう。⇒全文検索ではない。タイトルしか検索していない。SGサーチというのもインストールしてみたが、さっぱりだ。このソフトはテキスト検索とファイル検索、重複検索、ダイレクト検索までできるのだが…Google デスクトップという選択肢もあったのだがサポート中止になってしまった。探三郎というのをインストールしてみたが、インデックス生成中に1523/1900でハングした。

TFind 2.10というのをインストールしてみた。このソフトは動作して「2010」というキーで21個のファイルを見つけることができたが、開くことができない。これを開くためにはOpen Live Writerが必要だが、*.wpostとこのアプリを結びつけることができない。それができれば完璧なのだが…設定→アプリ→既定のアプリ→アプリごとに既定値を設定するの画面でOpen Live Writerが出てこない。既定アプリを設定する画面では「Microsoft Store でアプリを探す」か「その他のアプリ」→このPCで別のアプリを探すしかないが、Storeでは「このフィルター処理では該当する結果が見つかりませんでした」となり、PCの中でも突き止めることができない。

もしかするとエクスプローラでDドライブなら検索できる可能性がある。いや、ダメだ。同じ階層に置いてあるWindows Live Mailは検索できているのだが…!解決した!誰だろう?誰かが「Windows 10 の検索インデックス作成: よくあるご質問」というWindowsのサポートページを開いてくれた。Google のアシスタントじゃないと思うけど、マイクロソフトのページだから、コルタナかな?こんな風に手伝ってくれるとうれしいよね。

「インデックスを作成できるファイルの種類の一覧は、コントロールパネルの [インデックスのオプション] ページに移動し、[詳細設定]、[ファイルの種類] で表示されます。」

ブログへの投稿ページは*.WPOSTという拡張子を持っているが、[インデックスのオプション]ページにはこの設定が入っていなかった。これを追加し、さらに、[このファイルのインデックスの作成方法]を「プロパティとファイルのコンテンツのインデックスを作成する」に設定して動作するようになった。

これでようやく明日から仕事に入れる!と思ったら、まただよ。

System.IO.IOException: 要求された操作はユーザー マップ セクションで開いたファイルでは実行できません。

Windows 10 Home はリモートアクセスできないことになっているはずなのだが、できるんだろうか?RDP Wrapper Library というのをインストールするとできるようになるらしい…

マイクロソフトアカウントを回避しローカルIDでログインする

午後4時半起床、曇り。Diginnos ノートパソコンにローカルIDでログインできるようになった。ログインしてから管理者権限を付与したが、Open Live Writer がインストールされていない。というか、スタートメニューでもアンインストール画面にも出てこない。Chromeは管理者権限を付与する前にインストールしたのでIDごとのインストールになっているが、Open Live Writerは見えてもよいはずなのだが… Open Live Writer はストアアプリだが、アプリは個別インストールすることになっているのだろうか?しかし、インストール時にはoutlook.jpのアカウントとパスワードを使っているのだが…ともかくまず、babalabo でログインして使える状態に整備しなくてはならない。

MS IME で句読点を「.,」に切り替えているのだが反映されない。なぜだろう?この種の設定は切り替えた時点で直ちに反映するものなのだが… 理由が分からない。一度再起動してみる。⇒ダメだ。効果がない。今までこんなことはなかった。どうもこの動きは Open Live Writer に限った動作のように思われる。少なくとも Note Pad では当たり前の動作になっている。「誤変換報告しない」ことに対する報復?句読点を入れたときの変換候補の出方もかなりおかしい。「。」を入力すると変換候補に「......」のような長い文字列が出てきたりする。

MS IME の動作が変わってしまっている。メモ帳の場合には「,.」が変換候補の最初に来るが、那須路郎でログインした場合にはそもそも「変換候補」が現れない。「句読点は変換しない」というデフォルト設定になっているのだからそうならなくてはならないのだが… その上で Open Live Writer の場合は変換候補の先頭に「、。」が来るような動作になっている。句読点を入力するたびに変換していたのではかなわないので調整を諦めることにする。Open Live Writer のバージョンは Build 0.6.2.0 で同じだ。

どうすればよいか?たかが句読点と切り捨てる訳にはゆかないが、どうしようもないという感じだ。変化しているのは MS IME と考えるべきだろう。つまり、システムに2つの異なるバージョンの IME が搭載されているということになる。「設定」はユーザごとに異なるとしてもコード本体が複数存在するというのは考え辛い。 Windows Essentials には Windows Live Writer が含まれているからそれを使うということも考えられなくはないが…

この際思い切って「、。」に切り替えることを考えよう。たまにはスマホ入力ということも考えられるが、スマホではデフォルトの「、。」のままになっている。スマホで使っている仮名漢字変換は MS IME ではないはずだが、何を使っているのかも知らない。馬場英治と「,.」の使用は切っても切れない関係にあるのだが、そろそろその慣習とも縁を切る時期かもしれない…というか、今のところ他に対策しようがない。

現在の MS IME には一つだけ取り柄がある。「路郎」が一発で変換できる!メールアプリにアカウントを設定しようとしたら、babalabos @outlook.jpが出てきた。これは「マイクロソフトアカウント」に紐付けされている。ここでそれを使ったらローカルIDでログインしている意味はなくなる。また、結構厄介な話になってきた。いっそのことすべてのアカウントを「同期」してしまった方が早いのではないだろうか?

いや、「マイクロソフトアカウント」と紐付けされていないログインIDを確保しておくことは意味があると思う。何か不明な動作が発生したとき「切り分ける」ために使える。その意味では通常はマイクロソフトアカウントでログインし、何か異常事態が起きたときのみクリーンな紐付けされていないアカウントを使うというのでよいのではないか?しかし、実際にはすでにbabalaboというIDはストアアプリをダウンロードするためにbabalabos @outlook.jpを使ってしまっている。つまり、バージンではない。おそらくそのような意味でのピュアバージンなIDを確保することは原理的に不可能なのではないかと思う。

マイクロソフトアカウントを捨ててもこのPCにログインすることはできる。マイクロソフトアカウントを捨てるために必要なことはbabalabos @outlook.jpを捨てることだけだ。このアカウントを捨てても実用的にはそれほどの問題はないはずだ。どんなメールが入ってきているか?ちょっとチェックしてみよう。⇒このアカウントはつい最近作ったばかりで、MS アカウントチームからの挨拶状が入っているだけだ。ともかく、このアカウントはしばらく凍結することにしよう。

となると、事実上ウェブメールアカウントは babalabos @gmail.comだけになる。かなり窮屈な感じだが… 「Office 365 ではメッセージの暗号化と転送禁止が可能」という通知が入った。確かにそれはよいオプションだとは思うが、有料という点で二の足を踏んでしまう。1ヶ月手取り2万円弱の年金生活者にとってネットにアクセスするだけで精一杯だ。ともかくGmailだけはメールアプリで受信できるようにしておこう。

Gmail のアカウントをメールアプリに設定しようとすると、この操作は Windows に以下を許諾することを意味するというパネルが出る。何を許すかと言えば、①Gmailで送受信/作成/削除するすべてのメールをWindowsが管理すること、②すべての連絡先とカレンダー情報をWindows が管理することだ。最後にこう付け加えられている。

Make sure you trust Windows

残念ながら、少なくとも現時点ではそれはできない相談だ。

面倒臭いが、ウェブメールはウェブ上で読み書きすることにしよう。つまり、Windows 10 のメールアプリはここでは使わないことにする。多少不便だが仕方ない。このPCでやる必要があることは、①メールの送受信、②ウェブへのアクセス、③ゼルコバの木の開発だ。②はChromeを使うということに決定しているので、決まり。天気予報とニュースをチェックするのに Edge を使うこともある…

①に必要な Windows Live Mail はインストール済みだ。Windows Live Mail を開いたら以下のようなパネルが出てきた。これまでは見たことがないような気がするのだが、違うだろうか?

image

そもそも Windows Essential 2012 はとっくの昔にサポート終了しているはずなのだが… 方針が変わったのだろうか?Microsoft ブランドサービスを受けるためには「本契約」に同意する必要があるとしている。この中には MS OneDrive, MS アカウント、MS フォト、MS メール Desktop、MS Writer その他が含まれる。つまり、マイクロソフトのすべてのサービスだ。①MS 迷惑メール対策ポリシー、MS 倫理規定を遵守することが要求される。Bing はデバイスの位置情報を収集している。

babalabo_0330 の送受信はできるようになったが、表アカウント(那須路郎)の Windows Live Mail には2万件以上のメールのストックがある。これをどうするか?が問題だ。通常裏アカウント(babalabo)を使うことにするとすれば、これを持ってこないとあらゆる意味で不便だ。多分、メールと連絡先のインポート・エクスポートはできるはずだから、まず、それをやっておこう。Windows Live Mail から Windows Live Mail へのエクスポート・インポートだから手続きは簡単だ。インポートは完了したが、フォルダ構成を少し整理する必要がある。

保存フォルダの中に「インポートされたフォルダ」があり、その中にまた保存フォルダがあるという恰好になっている。大体整理したが、空っぽのフォルダなどいくつか不審な点がある。おそらくオリジナルのメールボックスの一部が破損しているためと思われるが、どうやって修復すればよいだろう?表と裏を同時に開くことができれば突合せて転送に失敗しているところを確認することもできるのだが…フォルダの数だけでも100個ではきかないと思われるので、かなり大変だ。目に付くところを拾い出してみよう。

  1. グラフ理論のフォルダが空になっている
  2. ゼルコバの木2018の下には取引銀行・サイトというフォルダしかない。この中にはゆうちょのフォルダが2つ入っている。
  3. パワーユーザフォルダの外に漏れているユーザフォルダがある。
  4. ゼルコバの木サポートとバグレポートの下に個人フォルダがある。
  5. ゼルコバの木ユーザ会の下に銀行関係のフォルダがあったはず…
  6. 那須路郎の下にGRAPH THEORY フォルダがある。
  7. New Year 2003 の中にメールが1本だけ残っている。
  8. 陸春燕のフォルダの中にDavid Instituteフォルダがある。また、それ以外のフォルダがすべて消えてしまっている。
  9. 馬場英治の下にユーザ会メンバーの個人フォルダがある。
  10. 馬場研究所の下にゆうちょ銀行などがある。

これは多分転送元の内部データの混乱を反映しているものと思われる。もう一度整理し直す必要がある。特に大きな問題はグラフ理論と陸春燕のフォルダがともに空っぽになっているという点だ。まず、オリジナルでどうなっているのか確認してみよう。まず,保存フォルダの直下にあるトップ階層のフォルダ構成をチェックしてみる.

  1. Gmail 3フォルダ(2016~2017)
  2. グラフ理論 10フォルダ
  3. セキュリティ 1フォルダ
  4. ゼルコバの木2018 4フォルダ(ゼルコバの木プロジェクト,ゼルコバの木ユーザ会,パワーユーザ,取引銀行・サイト)
  5. ネット情報 29フォルダ
  6. メール不達 10フォルダ
  7. 那須路郎 21フォルダ(うち陸春燕には4フォルダ)
  8. 馬場英治 20フォルダ(うちYKには2077通,フォルダはなし)
  9. 馬場研究所 23フォルダ
  10. 未分類 1フォルダ

この不良は内部で参照関係がねじれてしまっているためと推定されるが,とりあえず,フォルダ単位にエクスポートしてどういう動作になるのかを見てみることにする.いや,もっと簡単な方法がある.インポート・エクスポートするのではなく,フォルダを生でコピーするという手がある.この場合内部の参照関係の乱れはそのまま温存されてしまうが,多分外形的には今見ているような状態になるのではないかと思われる.保存フォルダ以下の部分をそっくり入れ替えればよいのではないだろうか?どうなるかやってみることにする.いや、もっと簡単な方法がある。Windows Live Writer では保存先を指定できる。現在の保存先を共有するようにすればよい。babalabo の保存先はデフォルトの

C:\Users\babalabo\AppData\Local\Microsoft\Windows Live Mail

になっているが、これを現在の保存場所に変えてみよう。壊されるとまずいので、一度バックアップを取っておこう。このフォルダには74,455本のファイルがある。

!完璧に復元できた。しかもまったく同じメールボックスを表と裏で共有できる。パーフェクトな解決だ。メールに関してはとりあえず、これで始末が付いたと言える。ブラウザに投稿している記事の控えも babalabo にコピーしておこう。Open Live Writer も保存先を指定できるのではなかったろうか?もし、できればデータ共有が可能になるのだが… 指定できる。デフォルトはC:\Users\babalabo\Documents\My Weblog Posts だ。

フォルダは切り替わったように思われるが、保存されているファイルが少な過ぎる。いや、入っている。下書きには2016/02/09 「ネットが止まった」までの分が入っている。もう少し前の投稿もあったような気がするのだが… 最近の投稿には2012/06/21というのがある。「Windows Live Writer を使って投稿する」という記事だ。「lenovo を使って2日目」とあるので多分これが最初の WordPress へのリモート投稿ではないかと思う。その前はメール投稿していたはずだ。

いや、WLW以外にリモート投稿用のツールを何か使っていたような気がする。それらの下書きは多分残っていないだろう。これを復元するとすればユーザ会サイトを復元する以外の方法はない。

マイクロソフトが「誤変換」にこだわるのはおそらく「予測変換」を実用化したいためだろう。ユーザから見るとありがた迷惑のような感じもする。一文字入力しただけでぞろぞろ変換候補が出てくるのはあまりうれしくない。まぁ、少なくとも「路郎」が一発で出てくるというのだけは「進歩」だが… これで開発周りを除けば一応環境は整ったということになると思われるのだが、何か見落としがないかどうか、少しログを読み直してみることにしよう。

  1. 緊急持ち出し用のファイルはスマホのストレージに置くようにする。
  2. スマホでFacebookの本文が読めない。
  3. Bakcup and Sync for Google をダウンロードしてインストールしてみた。今度はエラーは発生しなかった。⇒エクスプローラに「Google ドライブ」というフォルダが現れる。このフォルダはクラウド上にあるものと思われる。通常のファイル操作でダイレクトにファイルアクセスすることができる。「これが欲しかった」のだと思う。Google はそれを実現していた。⇒項目1の「緊急持ち出しファイル」はクラウドには置かない。「Google ドライブ」のファイルにはブラウザからアクセスできる。
  4. 2019-01-03の画像がまた消えてしまった。ブラウザでは表示できている。すべての画像が消えているというのではなく、コラージュして作った画像とその次のスクリーンショットだけだ。この画像はgoogleusercontent.comというドメインにある下記のようなアドレスにリンクされている。これは Google の管理下にあるドメインであることは間違いない。Google にレポートすれば多分この社員は首になるだろう。もし、ならなければ Google が潰れるだろう。
  5. 裏アカウントの babalabo にもアイコンを割り当てる。
  6. 廃止した babalabo @outlook.jp を連絡用メアドに使っている取引先をチェックする。

<img width=”640″ height=”480″ src=”https://lh3.googleusercontent.com/NnG_Z6T3QyQKirxngAyl48BIJeq3fThX3GliaQIMfqxkjZKrNdV7u0LIPEE7fqLtmR-cIghG1A29i2QV_um3t1k4P1Gc9msuau5Kg0GxDQXmqq5ScxSX6HPkHwJVTy2eobcTuJxbz64CEXbLumMqnUsjvmWdspkRyiQWE1xGo1n-zyzvO4xh4q5mcOTLpLz4QgZbXhiQSY7mvdYOhlEGr0YZdUvJ5G297DcX7aJujapQnEpqHICNagBnOqzuvJyCTOCCWlLrK-C_VkFcyl34jY-JED8lDMsZfG0CB77LDZStMNahoDn9VAQp5dGqJKz549MHKl_z8ta2Ch2qzIl8mDoVSKZjqKTpA2MfBF-JSNnZj9alx2x6o-jXSj5LsAHqdkGrrhLfwLkd8LaFzY5vsioViNyMkR6ULzWuMgYUwVN-XmJBqvOQRA6aQxTyVvC7pYHYK5lwPh06eCDxSGrzKPoS0f8RmlTkxlNOJXxKAS-8TX-IMIZkTSUCPw8DDBMPEAil46lLA9kqU8tqQBZueng9Z3SUAuOg8_nZ_zAlDavGO_J6YCXVGDuEHX5my1Y-WFtAklN0g3_grvDxMgzf9oYPLsuo0_cneGgtNvjrnuY29yv3S6QJA6rAy4tUs3ls9zye3ZoZSnbmkRLwcFL6xmKC=w661-h496-no” border=”0″>

このリンクにアクセスすると404エラーになる。

image

「That’s all we know、おら知らね」だとさ。The requested URL のあとに続くべき

https://lh3.googleusercontent.com

を巧妙に隠している点から見ても、明らかにこれは Google が会社的にやっていることと判断するしかない。Evernote は Google に買収されているようだが、似たようなことが起きているようだ。どうも Google はマイクロソフトより質が悪いような気がしてきた。こんなことをやっていてはいつになっても仕事に戻ることができない…googleusercontent.com というドメインはカリフォルニアにあるという話だが、deny from *.googleusercontent.com としてみよう。パスワードも変えておく。消えた画像2つは復旧しておいた。

Google Play 開発者サービスが勝手に「表示と管理を改善」する

午前12時起床,晴れ.朝食はお雑煮餅中4個.さて,昨日の続きを始めよう.まず,最初にやらなくてはならないのはbabalabo @outlook.jpの始末だ.すでにマイクロソフトアカウント用にbabalabos @outlook.jpという一文字違いのアカウントが取ってある.babalabo @outlook.jpで受信したメールはbabalabo_0330に転送してある.スマホとノートのメールアプリからこのアカウントを削除した.これでスマホとノートのメールアプリで管理するアカウントはbabalabos @gmail.comとbabalabos @outlook.jpだけになった.

FBではoutlook.jpとbabalabos @gmail.comを使っている.babalabosを使っているFBアカウントを廃止し,メインのFBアカウントでgmailアカウントを使うようにしなくてはならないのだが,この手続きが多少ややこしいことになっている.babalabosを使っているアカウントを削除することはできるのだが,outlookを使っている方でbabalabos @gmail.comを使おうとすると,「このアドレスは別のアカウントで使われています」になってしまう.

babalabosを使っているFBアカウントは恒久的に廃止したつもりなのだが,まだ何か残っているのだろうか?一旦このアカウントのメールアドレスをbabalabos @outlook.jpに切り替えた.これでこのアカウントを削除しなくてもメインアカウントのメアドを変更できるだろう.⇒サブアカウントの「利用解除」を実行したが,また「ログイン」すれば利用再開できるような状態になっている.「完全に削除」する手続きもあったはずだが,まぁ,とりあえずはこの状態でもよしとしておこう.

これでFacebook と G+ でメールアドレスを共有するような状態になった.ウェブメールはこの2つ(babalabos@ gmail.comとoutlook.jp)のウェブメールアドレスがあれば十分だ.この2つはPCとスマホのメールアプリを使うことにする.スマホでは別にYahoo!メールを受信できるのでまずこれだけで十分だ.zelkova-tree.net 経由のメールはPCだけで管理することにする.いや,たったこれだけのことでずいぶん手間取ってしまったものだ.さて,このあと何をやればよいのだろう?ブログへの投稿はPCに限るというのでよいと思う.ブログ=作業ログであり,作業しているということはPCに向かっているということを意味する.

スマホでちょっと訂正したりするときにはWordPressにログインしてやればよいが,どんな画面になるかちょっと覗いてみよう.ログインできるようになった.画面が小さいのでかなり厳しいが,簡単な修正ならできそうだ.とは言えそれも結構大変そうではある.何とかできることはできる,というレベルだ.スマホを使って編集するとすればIMEの同期も取らなくてはならないが,しばらく放置することにしよう.句読点がPCでは「.」になっているのにスマホでは「。」を使っているが,この違いを見ればどこから発信しているかも見えるという利点がある.ユーザはそこまで気にしないだろう.

これでブログ投稿とメールの送受信に関しては一応整ったのではないかと思う.ここまでの作業で気になる点をピックしておこう.

  1. スマホで頻繁に「Google Play 開発者サービス アカウント設定の範囲 表示と管理を改善」という通知が出る.この通知はクリックしても反応しない.このようにつねに出てくる通知には「カスペルスキー」から出されている「…保護されています」という通知もある.
  2. 自撮りの画像をアップロードしたときGoogle Photoで「Collage」という機能紹介の通知が出た.
  3. 自撮りの画像がいつの間にか削除されていた.
  4. 「画面の上部を覆わないでください」というメッセージが入る.

「Google Play 開発者サービス」というのはおそらく「Google によるモニタリンkoグ」だ.カスペルスキーがロック画面に出している通知は「常時作動状態になっている」ことをユーザに知らせるものだが,おそらくそれと同等の意味で,「Google Play 開発者サービス」が常時監視を行っていると推定するのが妥当だろう.多分このようなことはFacebookでも実施されているのではないかと思われる.明らかにロボットではなく「有人監視」だ.「自撮りの画像」を速攻で削除したのは彼らの「サービス」なのだろう.確かにその判断はおおむね正しいような気はする…

Snapshot_20150223_11-COLLAGE

「開発者サービス」のアドバイスに従って自撮り画像のコラージュを作ってみた.右が今の画像,左は4年前の2015年2月23日に撮影したものだ.わずか4年の間に別人のように変わってしまっている.これでは速攻で削除されるのもやむを得ないね.わたしの遺影写真もこれで決まり?

「画面の上部を覆わないでください」というのはこれまたずいぶん露骨な要求だ.中にはカメラで監視されたくないのでレンズのところにテープを貼る人もいるという話だが…カメラの向こうで覗いているのが女性なら,むしろ相手の姿を見ながらチャットしたいところだが…このスマホはロック解除したタイミングでシャッター音がする.カスペルスキーが写真を撮っているためだ.つまり,スマホが盗難されたときに備えて常時写真を撮るようになっている.写真はカスペルスキーに送られてしまうから,スマホの中を探しても見つけることはできない…

⇒※「Google Play 開発者サービス」の通知をスマホのロック画面から消すことができた.メッセージボックスを少しドラッグしてやると下からボタンが出てきて,設定画面に移動できた.このあと「Google Play 開発者サービス」の通知は出ないようになった.さよなら~また遊ぼ!

おかしい.Chromeのアプリの中にGoogle Photoが入っていない.いや,ストアにもない.何か勘違いしているのだろうか?

IMG_20190103_200021

マイクロソフトのフォトアプリにはスマホの画像が入っているが…これはどういう理由だろう?使っているのはAndroidスマホであり,AndroidはGoogleだ.マイクロソフトが手を突っ込むことはできないような気がするのだが…デバイスはANE-LX21でこれはスマホを意味している.いや,思い出した.スマホをUSBで接続したことがある.その際にインポートされたものだろう.

スマホにはGoogle フォトというのがある.GoogleフォトにはPC上の画像ファイルもそっくり入っている.PCではGoogleアカウントを使っているから,どこかのタイミングで同期を取ることは可能だろう.PCではBackup and Syncというアプリを使うらしい.これをインストールしようとして,エラーが出た.

image

すでにGoogle ドライブがインストールされているからだろうか?Google フォトはWeb サービスとして存在している.Google フォトアプリをダウンロードするページがあったのでダウンロードしてみたが,中身は同じ Backup and Syncだ.ただし,今度はエラーにはならなかった.スタートメニューにはBackup and Sync from Googleというフォルダができている.しかし,実行すると上のエラーが起きる.アンインストールしてインストールし直してみる.ダメだ.Google Playに入っているGoogle フォトを見ると,「インストール済み」と表示される.うまくゆかないので,アプリのインストールは断念しよう.いや,Googleのフォトアプリというのはそもそもスマホ専用だ.PC用というのはない.

まぁ,とりあえず,何とかなるので現状のままとする.ある程度整理できたと思うのだが,問題が残っているかどうかログを読み直してチェックしてみよう.というか,かなり時間も掛かっているので,これまで何をしていたのか一通り整理しておこう.

  1. メールアカウントを整理する:babalabo @zelkova-tree.net は永久欠番とし,①個人用としてbabalabo_0330 @yahoo.co.jpを使う.②これ以外のウェブメールとしてはbabalabos @outlook.jp, babalabos @gmail.com だけを残し,それ以外は削除する.
  2. MSアカウントにはbabalabos @outlook.jp,FacebookとGoogleには共通にbabalabos @gmail.comを割り当てる.
  3. マイクロソフトのEdgeは避け,GoogleのChrromeを使う.画像その他ファイル共有ではMSアカウントの使用を避け,Googleアカウントを使う.Edgeを使わない理由はロリポップ!非推奨となっているのは表向きの理由,Edgeを使用中に入力ボックスが「****」のようなパスワード入力ボックスに変わったことがあるというのがその直接の理由だ.
  4. 雑ファイルをストックするスペースとしてGoogleドライブを使う.必要ならばパスワードを掛けるようにしたいのだがGoogleドライブにはその機能はない.パスワード付きZIPに変換するという方法はあるが,適当な解凍ソフトがない.⇒Bandizipというのがあった.
  5. WebDAVが使えない状態になっている ⇒ 使用しない.
  6. 「誤変換記録の通知」が反復出てくる.⇒ あとでMSに問い合わせる.
  7. ネカフェでマイクロソフトアカウントでサインインすると赤の他人が自分のPCにアクセスできるようになる可能性がある.
  8. 「切り取り&スケッチ」で共有ボタンを押すと不審なアカウントと共有になっている.⇒ この機能は「絶対に使わないことにする」.このショートカットを使わなくてもAlt+Print Screenでスナップショットを取ることは可能だ.⇒そこまでこだわらなくてもよいのかもしれない…
  9. マクロソフトの「パスワードレス」という考え方がよく理解できない.Authentificatorの動作にも疑問があるので使用しないことにする.スマホからAuthentificatorをアンインストールする.⇒スマホ(Android)はマイクロソフトから完全に切り離す.
  10. Windows Live Mail で特定のメールアドレスで受信時エラーが発生する.⇒ babalabo_0330(のようなプロバイダメール)は私的用途に限定使用する.かつてはウェブメールはもっとも危険なメアド(捨てアドとしてしか使えない)とされていたが,いまは逆転して一番リスクが高いのはプロバイダーメールということになった.
  11. WordPressにアクセスしようとして特定の文字列を含む投稿で xmlrpc.php 403エラーが発生する.⇒このエラーはWAFでも発生するが,この場合は別の理由による.
  12. PCにはローカルIDでログインするようにする.⇒失敗したかもしれない.Windows インストール時にはローカルIDでログイン設定できるチャンスがあったのだが,いまとなってはマイクロソフトアカウントに繋がらないIDは設定できないようになっている.⇒※間違い.手続きは存在する.⇒追加した.
  13. zelkovatent @yahoo.co.jpとbabalabo @outlook.com の2アカウントが残留している.後者のMSアカウントが馬場研究室と思われる.これはウェブ上のWordPress ブログで使われているものと思われる.
  14. babalabos @outlook.jp=馬場研究所のアイコンは「浦島太郎」にした.babalabos @gmail.com=馬場英治のアイコンはG+が「東宮の欅」,FBが「彼岸花」だ.
  15. lenovoにインストールされているスーパーセキュリティはアンインストールする.⇒重い上に「ルーターを外せ」など無茶なことを言う.
  16. 開発環境を全面的に Visual Studio 2017 に移行する.⇒ これからの作業.
  17. Visual Studio Commuty,Visual Studio Code と Blend for Visual Studio 2017 という3つの無料開発環境が提供されている.これらはクロスプラットフォームに対応している.
  18. Azure と GitHub という2つのクラウドベースのチーム開発環境(一部無償)がある.
  19. タップするとテキストが選択状態になり,ウェブ上で検索ができる.
  20. デフォルト検索エンジンをGoogleからBingに変えた.
  21. ThunderBird は使用しない.ThunderBird は gmail は読めるが,Live Mail からのインポートができない.インポート用のプラグインがすでに廃盤になってしまっている.⇒Windows Live Mail に引き継ぎThunderBird はアンインストールする.
  22. ブログへの投稿では Open Live Writer を使う.
  23. 10.1 インチ 2 in 1 ノートで初期不良が出たので返送した.
  24. デスクトップの右クリックで「新規作成」メニューのサブメニューが出るまでに時間が掛かるという動作不良が起こりOSを再インストール.
  25. 前項のような事態に備え,PCをクリーンアップする手順をルーチン化する.⇒ 回復ドライブを使って完全に初期化する.
  26. バックアップからメールを掘り出して移管し,フォルダを整理した.

「切り取り&スケッチ」の共有画面にはまだ不審なデバイス outlook_811 FE604DE906 が残っている.マイクロソフトアカウントにサインインした画面には出ていない.これを消すにはどうすればよいか?現在「切り取り&スケッチ」に残っているのは馬場研究室,那須路郎,馬場英治の3つのアカウントだが,マイクロソフトのアカウント(馬場研究所)に残っているデバイスはFireBird-2とFireBird-3 だけだ.

image

どうも話がまったく噛み合わなくなってきた.現在有効なマイクロソフトアカウントは「馬場研究所」だけのはずなのだが,「切り取り&スケッチ」にはその名前は出てこない.上記の馬場英治というアカウントはGoogleアカウントであり,それがこんなところに出てくるというのは解せない.那須路郎は馬場研究所にリネームされているはずなのだが,古い名前が残っている.馬場研究室は一時的に作ったものだが,今のところ抹消できなかったため残っている.outlook_811 FE604DE906 というのはおそらくネカフェのパソコンで使われた第三者のアカウントではないかと思われるのだが…

「切り取り&スケッチ」というのはそれほど重要なアプリではないが,マイクロソフトの製品である以上同期していなければおかしいと思われるのだが…一度シャットダウンして状態を更新してみよう.状態には変化はないが,切り取り&スケッチ→共有で「その他のユーザー」をクリックするとFacebookが出てくるので,「共有」の定義はかなり広いように思われる.どうも訳が分からないが,この「切り取り&スケッチ」の動作は不明なので「絶対に使わない」ことにしよう.⇒いや,たぶんこの機能は,たとえばEasy PC Remoteみたいなものと思えばよいのではないだろうか?つまり,WiFi接続している任意のデバイスにクリップボードの内容を送れるという理解でよいのではないか?従って,マイクロソフトアカウントとは基本的には無関係と見てよいと思う.

こんなのがあった.「ネットワークHDD」これを使うべきではないだろうか?確かにこれを使えば,クラウド上にバックアップを取るのとまったく同じことがローカルに実現できる.外付けHDを繋ぎ変えてやるのと同じだが,据え付けたままで使えるというのがよい.これがあれば,ほとんどクラウドを使う理由はなくなるのではないだろうか?NAS(Network Attached Storage)は無線LANでも接続できる.また,外からインターネット経由でアクセスすることもできる.これはつまり,自宅にクラウドがあるというのとまったく同じだ.これを使えば何もマイクロソフトやグーグルのお世話になる必要はまったくなくなる.これがベストソリューションなのではないかと思う.

製品を探してみよう.魚々々!高~い.売れ筋が7万円台だ.いや,2万円台というのもある.2万を切るものもあった.ディスク搭載がオプションというのもある.最安価はバッファローの11,738円,2TBだ.4TBで23,938円というのもある.3TBで33,800円というのもある.4TBの方が安い.LinkStation LS520D0402G ショップはAmazonだ.画像転送のためだけにこれを購入するというのも少し抵抗はある.バックアップ用のストレージはいずれ必要になるが,画像転送はMSないしGoogleのPhotoアプリの方が操作は簡単なような気がする.

PCならともかく,スマホは表からはフォルダが直接見えない.Google Photoでドライブにコピーというオプションを選択するとGoogle Drive から画像ファイルが見えるようになる.Google Drive を使えばPCのファイルシステムの感覚でファイル操作ができる.このドライブにネットワークドライブが見えるようになれば使えるということになるが…現在バックアップ用ストレージとしては外付けHDが2つあるが,いずれもすでに満杯になっている.しかし,PCのEドライブは1TBもあるので急いで買うまでもない.いましばらく時期を待つことにしよう.

これで環境は大体整ったのではないかと思う.

ヤーヤーヤー,部屋にスマホがやってきた!

午前3時起床,晴れ.大晦日はFBでIhara氏とのチャットで暮れた.これまでFBの友だちは3人しかいなかったが,今回一挙に倍増して6人になった.追加した3人はネットにアクセスできなかった3年間ずっと待ち続けていてくれた人たちだ.少し目先が明るくなってきたような気がする.

元旦はそのまま仕事に突入しようかとも思ったのだが,さすがにそれは止めてamory氏から送られてきたワインの封を切った.このワインは2日の親族新年会に持ち込もうかと思っていたのだが,最近はもうお酒を飲む相手がほとんどいなくなってしまったので持っていっても仕方ないと思い封を切ることにした.

スマホで写真を撮ってあるのでノートにアップロードしようと思ったのだが,USBに繋いだだけではロードできない.どうすればよいのだろう?PCのUSBコネクタにスマホを繋いでも電源供給の用にしか立たないのは明らかだ.PCとスマホでデータ共有するためにはクラウドを使う必要がある.ノートはマイクロソフトのフォトを使っているので画像がクラウド上にあることは確かだが,スマホに標準搭載されているクラウドはNaver Cloudという韓国籍のクラウドだ.ファイルのインポート・エクスポート用には使えるかもしれないが,ちょっと使い勝手が悪い.

多分スマホでマイクロソフトアカウントにサインインできると思うのでやってみよう.いや,何もしなくてもすでに繋がっている.というか,スマホを開いたら「USBで接続しているという通知」が入っていた.画像とファイルを共有できるようになっている.「画像」でOKをクリックしてノートに戻ると「インポート」できる状態になっていた.

ゼルコバの木印ワイン

USBで接続してやればスマホの画像をPCにアップできることは分かったが,USBで接続しなくてもファイル共有できるようにすればもっと便利だ.多分一番手っ取り早いのはマイクロソフトアカウントを使うということだと思われるので,それをやってみよう.グーグルアカウントもグローバルIDとして通用するが,クラウドサービスはやっていない(のだろう).いや,ある!スマホを開いたら,グーグルからの通知「Google Play 開発者サービス アカウント設定の確認 表示と管理を改善」が入っていた.この画面をリアルタイムで読んでいるのだろうか?

スマホの画面を見たら,グーグルのデータ共有画面にいたはずが,「リンクが見つかりません」に変わっている.今度は「画面の上部を覆わないでください」というメッセージが現れた.「カメラを遮らないでください」という意味だね?!自撮りというのはあるがスマホ自身を撮影することはできないので,古いauのケータイを持ち出して撮影してみた.

FJ310120 (2)

かなり消耗な画面だ.画面遷移するためのボタンが何もない.どこへ行って何をすればいいのか?まったく分からない状態だ.⇒画面下部のボタンで移動できた.グーグルはグーグルフォトというのを持っている.ノートにもGoogleフォトがある.というか,これはウェブ上のサービスだが,これを開くとすでにスマホの画像はインポートされている.

スマホはAndroidでGoogleベースなのでスマホで撮影した写真はそのままGoogle フォトに入っている.Google フォトでSave copy というコマンドがあるが,どこに保存しているのか分からない.画像を右クリックでコピーができるので,とりあえず間に合いそうだ.

Google Photo というアプリはないのだろうか?Google Play をPCにインストールできれば一番早いのだが… Web版というのはある.いや,Google Chrome のアドオンというのがある.こんなポップアップが出てきたが,大丈夫だろうか?

image

これはSoftnicという会社の提供だが,何もよそから取り出すことはない.本家からダウンロードするボタンがある.また,softnic が出てきたよ!

image

brave というのは「もう一つのブラウザ」のようだ.①ChromeやSafariより8倍速い,②広告/トラッカーをブロック,③厳重なプライバシーという謳い文句だ.②,③はカスペルスキーがやっているので要らない.Google Play をインストールしたが,Google Photos はすでにインストールされているという.Google Docs もインストール済みだ.しかし,スタートメニューには見当たらない.Chrome のツールバーにアプリというアイコンがあり,この中にすべての Google アプリが入っている.

Google Driveを開いてみた.G+に投稿するときに使った画像が2つ入っている.その他に「無題のドキュメント」というのがある.作りかけ,ないし間違って開いてそのまま残ったものだろう.Download as で見ると,マイクロソフトのdocxの他,Open Office, PDF, RTFなど各種のフォーマットで保存できるようになっている.ドキュメントを共有して複数のユーザが共同編集する作業をサポートするような機能がある.

Google Drive にはサンプルドキュメントが2つ入っている.一つはDigital Bill of Rights もう一つは Thorium and Rare Earths Resurrecting the West だ.前者は Mashable が編集している.後者は誰が書いているのかはわからないが,ともにGoogle の「思想」を表明しているドキュメントと見てよい.Mashable は広範な読者層を持つ「テックメディアサイト」だ.Mashable はわたしもネットにアクセスしていたころG+でかなり読んだ.アプリを持っているようなのでスマホでチェックできるようにインストールしておこう.

MashableとTechCrunchについて調べてみた

よく知られた「テックメディアサイト」としてもう一つ TechCrunch というのがある.(わたしは知らなかった)TechCrunch には日本語サイトもある.取り扱っているカテゴリに「電子政府や政治について」というのがある.TechCrunch もアプリを持っている.

ともかく,環境整備を急ごう.まだbabalabo@outlook.jpの始末が付いていない.このアカウントは廃棄予定だが,Facebookで使っているため厄介なことになっている.outlook.comのアカウントはまだ生きていたのではないだろうか?もし,生きていればFBのアカウントをそちらに切り替えるという手はある.アクセスできるかどうかやってみよう.どうも無効になっているようだ.新しいメールアドレスを使って復元することは可能であるようだが,やらないことにする.

FBで使っているのはbabalabo@outlook.jpではなく,babalabos @gmail.comの方だ.FBには2つアカウントがあるが,サブで使っている方を登録解除する必要がある.今やっているのは,メインのFBアカウントのメールアドレスをbabalabos@gmail.comに移すという手続きだ.やらなくてはならないのは,サブアカウントからダウンロードしたメッセージなどの過去データをメインのアカウントに移すという作業だ.それはどこにある?⇒分からない.もう一度ダウンロードすることにする.今度はメッセージだけにしよう.フォーマットは①HTML,②JSONの2形式が使える.JSONでダウンロードして別のアカウントにインポートできるかどうか?試してみよう.

ダウンロードフォルダにZIP形式で入ってきたが,これを別のFBにインポートするという手段は見つからない.JSONというのは汎用マークアップ言語の一種なのでFB以外でも開くことは可能だが,ただ開くだけならHTMLの方がましだ.メールアドレスなどはインポートする方法があるようだが… ダウンロードはできたが何も入っていない.送信相手の名前だけは出てくる.しかもこれはAge Baba ではなくて馬場英治のものだ.

すべてのデータをHTMLで保存してみる.ダメだ.一応外観は保存されたように見えるが,中身は空っぽだ.「ZIPを解凍しないと読めるようにならない」というだけだ.このアカウントに残っているのはメッセージだけなので,それだけをもう一度ダウンロードしてみよう.2014年ころOKに宛てたメッセージの遺物だ.置き場所がないのでサイトにアップロードしておこうと思ったのだが,WebDAVが開かなくなってしまった.

image

パスワードを切り替えてみても通らない.FTPのアクセス制限が掛かっているのだろうか?いや,IPアドレスは変化していない.いや,そもそもこのフォルダをどうやって作ったのか忘れてしまった…

作り方は下記にある.Windows 10 からの WebDAV 接続 やってみたが,エラーになってしまう.

image

この接続にはSSL証明書が必要とされているようだが,証明書が無効になっているのだろうか?カスペルスキーが警告を出しているのを無視して進めたのだが,何か手続き的に問題があるのだろう.とりあえず,このアクセスの仕方は止めることにする.

サイトに揚げるのではなく,Google ドライブを使うのが早い.ZIPのまま上げておこう.ドラッグ&ドロップでコピーできた.なるほど,人々がクラウドを目の色を変えて使う理由が分かる.一番安心・安全・簡単な場所だからだ.最後の簡単というところがポイントだね.これでFBのアカウントを一つ解除する準備ができた.

Facebook のアカウント解除はマイクロソフトアカウントほどうるさくない.マイクロソフトアカウントの場合,メールアカウントは6ヶ月間維持されてその間にメールアカウントを使うとマイクロソフトアカウントも自動的に復活するようになっている.Facebookの場合にはMessengerアカウントが残ってしまうが,それはそれで問題ないはずだ.なんでマイクロソフトはこんなややこしいことをしているのか?

これでメインのアカウントが残った.このアカウントのメールアドレスをbabalabos@gmail.comに切り替える.ダメだ.まだ情報が残っているようだ.「The email address you entered is already in use on another Facebook account.」というメッセージが出てしまう.これはかなり具合が悪い.FBのサブアカウントにアクセスする方法がないのにメールアカウントだけが残ってしまっている.

12時半を回ってしまった.そろそろ出かける用意をしないと…まぁ,用意と言っても大したことをする訳ではない.顔を洗って髭を剃るだけだ.着替えはしなくてもいいよね.寝るときもこの格好で着の身着のままだし…ノープロブレム!

「Facebook Acount が最新でありません」の通知が止まらない

午後3時起床,晴れ.

スマホのメーラーから「outlook.com にログインできない」という通知が入っている.パスワードが通っていない.変えていないはずなのだが… FB2で 「Facebook Acount が最新でありません」という警告が出ている.Facebook では babalabo@outlook.jp を使っている.FBをチェックしてみた.パスワードを入力しないで画面に入った.FBの友だち候補の知り合いを見たら Ikeda Toramasa という名前が出てきた.猫の写真が貼ってある.鎌倉を出て現在前橋に住んでいるというのだが,まさか.あの虎さんじゃないだろうね?!

Microsoft の誤変換記録の通知がまだ出てくる.IME→誤変換レポートで→詳細設定で「誤変換の履歴をファイルに保存する」をオフにしているのだが,止まらない.設定→プライバシー→診断&フィードバックで「完全:すべての基本的な診断データと共に…追加情報を送信します」をオンにすると,「手描き入力とタイプ入力を改善する」がオンになる.これでよいはずなのだが…

「Facebook Acount が最新でありません」の通知も止まらない.「アカウントが最新でない」というのはパスワードが変更されているという意味と思われるが,babalabo@outlook.jp のパスワードは変えていないつもりなのだが… パスワードを確認するためにテスト送信してみよう.なぜだろう?送信エラーになった.確かにパスワードが間違っているようだ.これはマイクロソフトアカウントを終了させるために6ヶ月間停止される予定だったアカウントだ.アカウントを再開するとまた,混乱がぶり返すことになる.このアカウントは廃止するしかない.

Facebook ではこのアカウントを使っているが,これを変える必要がある.gmailのアカウントを使うのが一番分かり易いのだが,このアカウントは別のIDで使っている.まず,これを廃止しなくてはならない.なんというIDだったか忘れてしまった.表のIDがAge Baba なので裏IDは馬場英治だったような気がするが,サインインしてみれば分かるが,現在FBでチャット中なのでそれが終わるまでサインアウトできない…

カスペルスキーは「接続を終了しました」とメッセージを送ってきた.ネットには繋がっている.VPN接続を終了したという意味なのだろう…