投稿

10月, 2012の投稿を表示しています

BadImageFormatExceptionが出たよ

イメージ
だいぶ前に作ったプログラムを起動してみたらなぜか例外が発生。

「BadImageFormatExceptionはハンドルされませんでした。」

以前はちゃんと動いてたのに、なぜ?
いろいろ考えたら、春先にPCを入れ替える時にOSを64bit版に切り替えてたのを思い出した。
DLLを呼び出しているプログラムなので、もしやと思ったら、やっぱりプラットフォームターゲットが「Any CPU」になってた。これだとプラットフォームに合わせて64bitでビルドされてしまうっぽい。ちなみにプログラム本体はC#なんだけど、呼び出しているDLLは32bitでビルドされている。

メインのプログラム(64bit) ---呼び出し--->DLL(32bit)

こうなっちゃうと呼び出しのタイミングで、上記のような例外が発生する。
ってことで、ターゲットを「x86」に設定して、ビルドしなおしたら無事に動くようになりました。
しかし、こういうの、なかなか気付かないよな。もうちょっと分かりやすいエラーで処理して欲しい。


2013/10/23 追記
CorFlagsというツールを使うと、ビルド後でも変更ができるらしい。
ビルド後の .NET アセンブリを 32bit で動作させる方法

iCloudのフォトストリームが同期しない

イメージ
iPhoneで撮った写真が自動的に同期されるiCloudのフォトストリーム。プライベートの写真も仕事の写真もすぐにPCで使えて、資料をまとめるときなんかには便利な仕組みです。

現場でiPhoneで撮影→同期→PCで資料をまとめる
ところが、ふと気づいたらWindowsの環境だけ同期していない。(Macの方はちゃんと同期している)コントロールパネルを見るとフォトストリームのチェックが外れている。なぜに?
チェックを入れて、しばらく様子を見ても同期していない。再度コントロールパネルをみると、チェックが外れている。。。

サインアウトしてみたり、オプション変えたりしても、なぜか勝手にチェックが外れている始末。う~ん。

フォトストリームに残ってる写真の日付を確認すると、どうも機種変更でiPhone5に変えて以降、同期しなくなっている。なんか認証の問題とかあるのかな?

いろいろやって駄目なときは、再インストールに限る。しょうがないのでiCloudをアンインストールして、再インストールしたら無事に同期し始めました。
なんだかなぁ。

passbookが便利です。。。

イメージ
iOS6からの新機能passbook。クーポンを入れておくと、店の近くに行くとポップアップが表示されます。これだとクーポンの使い忘れなくていいですよね。それに、こう表示されたらその店へ行きたくなる。なかなかいい集客ツールです。
でも、時間を考えてないのがたまにキズ。
朝から居酒屋のクーポン表示されてもなぁ。。。
営業時間ってフラグはないわけだな?