カテゴリ:プログラミング( 4 )

Kinect.Faceの落とし穴

顔認識のライブラリを使用して
書割の画像と合成するオモチャを作ってる際にそれは起きた

e0349767_12473936.png

あわわわわ、Eceptionが止まらない・・・
ObejctDisposedExceptionがKinect.Face.dllで起きてるから
FaceFrameReaderかFrameSource辺りで変なことしてるのかなと思い
該当のソースを見てみる

e0349767_12501209.png
うーん?別に何もおかしくないんだけどな・・・
各Disposeメソッドをコメントアウトするとエラーは消えるものの
これだと画面遷移してもインスタンスが残ったままになるのでよろしくない
ステップで追おうにもpdbを吐かないからどうにもならない

これが昨日の晩からさっきまで頭を悩ませていたけど・・・解決!

e0349767_12530787.png
どうやらFaceFrameReaderのアクティブな状態を止めないといけないらしい
IsPausedプロパティをTrueに切り替えてからDisposeを行うとエラーが出なくなった
SDKのサンプルソースだとWindowのClosingイベント時に同様のことをしているものの
FrameArrivedのイベントハンドラはそのまんま放置してるので、こういうことをしないといけないってのは明記されてない
このハマり状態から抜け出せただけで今日の仕事終わっていいんじゃないのって思うレベル

しかしMSさんよ、IsPausedを何に使うかってことぐらいどこかに書いといてくれないかねぇ・・・。

[PR]
by onigirism | 2016-01-26 13:01 | プログラミング | Comments(0)

VBA死滅せよ

営業さん向けのツールで、よくExcelのマクロ組むことがあるんですが
前職でバリバリのソリューションやってた自分はもうVBAをガチ実装します。
可視性のあるVBEで自分で書いた方が間違わないし、色々出来るし。

で、今さっき見つけた変な動き
e0349767_16595738.png
空文字(未入力)ならエラーを出して処理を中断するチェックなんだけも
なぜか空なのにif文の中に入らない。
なぜ???

ウォッチ式を見てみる。
e0349767_17043073.png
値はEmptyなのでif文の評価はTrueにならないとおかしいのだが・・・
もう少し細かく評価してみる。
e0349767_17061793.png
んん??値が""になった??

ということは・・・if文全体の評価をウォッチしてみる。
e0349767_17083738.png
案の定、まさかのFalse

型をよく見てみるとTrimした段階でVariant/Emptyから
Variant/Stringに変わっている。

調べたところによると、Trimに限らず文字列を返す関数ってのはVariantを引数として渡すと、内部処理形式をStringで返す、しかもエラーとして処理されない
ということらしい。

だからVariantは嫌いなんだ!

[PR]
by onigirism | 2015-12-25 17:17 | プログラミング | Comments(0)

Visual Studio Code再定義

なんかTwitterのトレンドに挙がってたのでお題にしてみた。

VisualStudioCode(スぺース入れた方がいいのか繋げて書いていいのか・・・)

取りあえずMS謹製なだけあって第一印象から良さげなエディタです。

多言語対応はもちろんインテリセンスも充実してるし、Gitも標準装備。

シンプルにして高機能、さすがMSですな(テノヒラクルー)

あとGrepとかMargeまで出来れば秀丸とかいらんくなるんだけどなー。

ところでインストール先が今までのα版とは違うんだけど、消していいのかな?

そもそもこんなところに入れるのかよって感じだったけどね、α版
(C:\Users\user\AppData\local\Codeなんていうとんでもパス)

ようやくβレベルまで上がってきたってことなのかな

ちょっと使ってみますかね

[PR]
by onigirism | 2015-11-19 11:19 | プログラミング | Comments(0)

array_key_existsとisset

たまたま調べてた時に発見したのでメモ

<?php
$search_array
= array('first' => null, 'second' => 4);

// false を返します
isset($search_array['first']);

// true を返します
array_key_exists('first', $search_array);
?>


issetはvalueの有無、array_key_existsはkeyの有無だから・・・まぁ当然っちゃ当然だわな。



[PR]
by onigirism | 2015-09-15 17:01 | プログラミング | Comments(0)