「1-star seed searchでエラーが出て動かない。開発者さんのページの対処法を試しても無理…」という依頼がきた。
開発者さんが提示されている環境(Win64bit,.Net framework 4.6)にも問題はないのに,
確かにプログラムは動かない。
でも私に専門的な知識はない!!というところから試行錯誤のうえ解決できたので備忘録。
#やりたいことと解決法
1-star seed search(ポケモン剣盾のツールらしい?)で発生するエラー HRESULTからの例外:0x8007007Eを解決したい。
→最新版のvisual C++ランタイムをインストールすればよい。
*2019/12/30現在:(https://support.microsoft.com/ja-jp/help/2977003/the-latest-supported-visual-c-downloads)
#解決に至るまでの詳細
##問題が起きているPC
TOSHIBA Dynabook B350/56BR
OS:win10(win7をアップグレードしている)
.NET framework 4.7.2
→この間換装したやつ。(換装についてはこちら:起動しないPCのクローンSSDをつくる)
##試行錯誤
###0.エラーメッセージ
DLL 'OneStarCalculaterLib.dll'を読み込めません。指定されたモジュールが見つかりません。(HRESULTからの例外:0x8007007E)
###1.依存関係を調べる
検索していくと,.dllには依存関係がある…ということがわかってきた。
たぶんここに何かある…気がするので調べるしかない。
Dependency Walkerを使用して調べることに。
(依存関係は原因を調べるためのツールなので、解決策とは無関係です)
参考:Dependency Walker(http://www.dependencywalker.com/)
###2..NET framework4.8を更新プログラムとしてインストール
依存関係を調べたところ,どうも原因が.NET frameworkが関係していそうだということがわかった。
.NET frameworkをいろいろな方法でインストールしてみたが,どれもいまいち依存関係のエラーはなくならない。
同じバージョン(4.7.2)で…と思ってこだわっていたが,もうどうしようもないのでwin10の更新プログラムとしてインストールすることにした。
該当する更新プログラムはKB4486153。
再び依存関係を調査したところ,少し減っていることが判明。
だがまだエラーで動かない。
エラーは同様(HRESULT からの例外:0x8007007E)。
どこがエラーを起こしているのかDependency Walkerで調べてみると,どうもvisual C++あたりも怪しそう。
###3.Visual C++ランタイムをインストール
インストールされているVisual C++を調べてみると,2008までしかない。
これだと新しいプログラムを入れたときにまた何か起きそうなので,とりあえず片っ端からインストールすることに。
ダウンロードできる場所が窓の杜にまとまっていて,とても助かった。
(ここを使いました:【無料】アプリケーション向けランタイムのソフト一覧 - 窓の杜)
もうリンク切れのものもあったので,それは諦めた。
リンクが繋がっているものはx64,x86ともにインストール。
結局2008〜2019まで全部入れた。
(2015〜2019までは一つにまとまっているようで,一括で入れました)
→ランタイムは下位互換性があるから最新版を入れると不要との助言あり
###4.動いた
再びDependency Walkerで検証。
だいぶエラーが減ったので,「もう私の知識では限界ゾ」と思いつつ動かしてみる。
と,無事動いた。
#最後に
専門的知識ゼロ,Google先生に頼り切りでしたがなんとか動いたのでヨシ!というところ。
これを解決するのに丸2日くらいかかっております。
おそらく専門の方からするとずいぶん無理やりやっているような感じなのではないかと。
もしかすると.NET frameworkのインストールいらないのでは?とも思うけどよくわからない…。
参考になる方がいらっしゃれば幸いです。