64bitWindowsでOpenStickへの書込みができなかった件

MakerFaire用に新たなデバイスを作っていたらOpenStickへの書き込みが出来なくなっている事に気づきました。 まずいです。 このままではMakerFaireで胸を張って照会できません。
先日Windows7(32bit)からWindow10(64bit)に変更した事が絡んでいる様です。

OpenStickへの書き込みはMybootOSというツールで行うのですが、これが下の様なエラーになって立ち上がりません。

MybootOS_Error

間違ったフォーマットのプログラムを読み込もうとしました。(HRESULT からの例外 0x8007000B) ・・・というエラーが出る。

MybootOSはC#で書いてありVisualStudio2010でビルドしています。
ググってみると、どうやらビルドする時のCPUの指定がAnyCPUになっていたのが原因だった様です。 AnyCPUってのは実行するOSが32bitでも64bitでも、それぞれに合わせたモードで動いてくれるものだそうです。ところがプログラム内からDLLを読んでいると、DLLが32bitか64bitかというところまでは面倒を見てくれないため、今回の場合アプリケーションは64biitで動作しているのにDLLが32bitだったのでエラーになっていました(Mybootではmpusbapi.dllを使っています)。
そこでVisualStudioでX86としてビルドし直すと32bitのアプリが生成され、これだと最初から32bitとして実行するので無事動作する様になりました。

という事で64bitのOS上で動かす時は32bit版のアプリを実行しなければならないという解り難い状況になっています。
いずれにせよ動作する様になったのでバイナリだけアップしておきます(ソースは変更していないので)。 

で、そもそも何を作っていたのかというと、これです。。。

ヨットシミュレータコントローラMINI

ヨットシミュレータコントローラMINI

今回MakerFaireには実物大コントローラは持って行かないので雰囲気だけでもヨットっぽいコントローラをつくってみました。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*


*

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>