C#でネイティブDLLを埋め込む方法

埋め込みの方法自体はこちらを参考に。

Ralf's Sudelbücher - Single Assembly Deployment of Managed and Unmanaged Code
http://weblogs.asp.net/ralfw/single-assembly-deployment-of-managed-and-unmanaged-code

プロジェクトへのリソースの追加は、こっちを参考に。

埋め込むし、Visual C# を使用してリソースにアクセスする方法
https://support.microsoft.com/ja-jp/kb/319292/ja

Visual Studio上でDLLをプロジェクトに追加し、以下のように埋め込みリソースに変更する。

テキスト ファイルまたはビットマップのいずれかを右クリックし、[プロパティ] をクリックします。
[プロパティ] ダイアログ ボックスで、[ビルド アクション] プロパティを見つけます。既定では、このプロパティを [コンテンツ。プロパティをクリックし、ビルド アクションプロパティを埋め込まれたリソースに変更します。

リソースの名前は「MyNamespace.xxx.dll」で参照できる。

上記の方法だけだと、配布時のexeにはDLLがつかないものの、
リソースをファイルに展開してしまい、そのまま削除はされない。
そこで、ファイルを削除しようと試みるも、プロセスの実行中のためDLLは削除できない、という状況に陥る。

そのため、DLLをunloadしてから、削除すれば問題ない。
C#からDLLのアンロードは以下のとおり。

c# - Unload a DLL loaded using DllImport - Stack Overflow
http://stackoverflow.com/questions/2445536/unload-a-dll-loaded-using-dllimport

Posted at : 2015-04-19 13:55:48 / Category : none

タイに行ってきました

人生2回めのタイに行ってきました。
今回も場所はバンコク。目的は象に乗ることとゆっくりすること。
ざっくりとあげると以下のことをやってきました。

・象乗り
 ・タイの中心部に行って象乗りをしてきた。自然の中で乗れたので満足
・アユタヤ
 ・だいぶ壊れている(あるいは過去に盗まれている)ところが多かったかなぁ
・バンコク
 ・カオマンガイの有名なお店に行ったりとか、タイシルク買ったりとか
・フルーツ
 ・スーパーでいろんな種類のフルーツを買って、とにかく食べてみた
  ドリアンも食べてみて(人生3回目くらい)匂いを気にしなければ美味しいと思う

以前に比べると物価の安さはあまり感じられなかったかも。
円安の影響とか、自分自身の見るものが変わったりとか、
そういうのも理由としてあるだろうなぁ。。。
今度タイに行くのであれば、プーケットとか海辺に行きたいね。

Posted at : 2015-04-05 10:50:40 / Category : none

27日からタイへ

27日から観光でタイに行ってきます。
象乗ったりとか、うまいもの食べたりとか、リフレッシュしてきます!

Posted at : 2015-03-25 23:10:12 / Category : none

鳥取行ってきました

金曜日から鳥取行ってきて、今日帰ってきました

鳥取駅から因美線に乗って驚いたのは、県庁所在地なのに有人改札だったこと…。
調べてみると

未だに有人!?実は自動改札機が全くない県が結構ある事実。
http://matome.naver.jp/odai/2141190783567615301

鉄道駅に自動改札機が設置されていない県は石川県・福井県・鳥取県・島根県・愛媛県・徳島県・宮崎県の7県

このうち、宮崎と石川(石川は北陸新幹線)は自動改札を付ける予定があるらしい。
宮崎以前行ったとき、宮崎駅は自動改札だった気がするんだけど…記憶違い。
あと残り5県になるわけだね。。。

ゆっくり揺られながら、景色を眺めるのも良いね

Posted at : 2015-03-08 21:17:45 / Category : none

IH調理器だと思ってたものが単なる電熱調理器だったことに気づいた

今までIH調理器だと思って使ってたものがあって、
何か火力弱いな〜、IHだからこんなもんなのか?と思ってた。
さすがに何か変だよなぁと思って、説明書見てみると
「光と熱で調理します」と書いてある。

それみて「ん…?」、そうかIHじゃなかったのか、とようやく気づいた。
1年ぐらい使ってて何かおかしいなぁとは思ったけど、今まで気づかなかったとは。

Posted at : 2015-03-01 16:29:38 / Category : none

タイ国内のSIMカードを日本国内で買う

本来ならタイについてから空港で買うけど、
今回、ツアーでホテルまでの送迎付きになっているので、
空港に居る時間がほとんどないことが想定される。
ツーリスト用のものを市内で探すのも大変だし…と思って、
ちょっと悩んでいたら実は国内で売っていた!

Amazon.co.jp: タイで7日間3Gデータ通信&100B分の通話付き!AIS 1-2 Call 3G TRAVELLER Simカード
http://www.amazon.co.jp/dp/B00F93ZDL4

空港だと300Bぐらい(日本円で1000円ちょっと)なのでだいぶ割高だけど、
まぁいろいろと面倒ごと含めるといいや、と思ってこれを使うことにした。

Posted at : 2015-02-22 16:11:18 / Category : none

OnClickListenerをどこに実装するか?

いつも悩ましく思ってた、AndroidのButtonのOnClickListenerをどこに実装するか?

昔はAndroidのアプリを作ってた時は、Activityにimplements OnClickListenerしていた。
たぶん、Win32APIのメッセージループを連想してそうしてたのかな。

最近になって、サンプル眺めてると引数に無名クラスを渡すケースが
多いなぁと思って、どうするのが一般的なのか調べてみた。

Android - 美しいOnClickListenerの実装方法(を教えてください) - Qiita
http://qiita.com/t2low/items/8ac683c7ebf4b6dd1b41

自分で調べたわけではなく、すでに記事があったので参考に。
結局、他所から参照される余地をなくす、ミスを減らすという点で
引数に無名クラスを渡すケースが有利とのこと。なるほど。

個人的には、一つの関数の行数が多くなるから…と思って
嫌なんだけどなぁと思うんだけどね。

と思ってたら、もっと良い方法が先ほどのページに書いてあって、
Butter Kninfeなどを使うとアノテーションでOnClickの指定ができる。
おぉ、こりゃ便利。例えば、こんな感じ。

1  @InjectView(R.id.button_login)
2  Button login_button_;
3
4  @OnClick(R.id.button_login)
5  void onClickLoginButton() {
6    String user  = text_user_.toString();
7    String pass  = text_pass_.toString();
8    ....
Posted at : 2015-02-22 16:01:30 / Category : android

Android Studioのショートカットキーリスト

毎度忘れるのでメモ

Android Studio ショートカットキーリスト for Mac - Qiita
http://qiita.com/Tazake/items/5c725a8b68d13271d43d

Posted at : 2015-02-22 15:49:26 / Category : android

ソフトウェアのアーキテクチャを考えること

いざ、一からハードウェア〜ソフトウェアまでのアーキテクチャを
考えようとすると、結構悩むことが多い。
レイヤーの積み重ねをして、各コンポーネントのやることを
小さくしていくことで問題の局所化をすれば、
まぁまぁそれなりのものはできてくるんだけど、
イマイチ綺麗ではないなぁ…と思ってしまう。

具体的な解放はともかくとして、一つ確実に言えることは
既存のソフトウェアアーキテクチャをよく観察しておくこと。
一から洗練されたものは難しいので、既存のアーキテクチャに
ちょっと付け足して工夫をしたりすることで、よりよいものを作ってく。
いろんなことに共通する考え方だろうね…。

そんなこんなで、今週一週間は悩んでいましたとさ。

Posted at : 2015-02-21 08:40:34 / Category : none

気持ちの切り替え

生活の中で拍子抜けすることがあって、
気持ち的にざわついていたけど切り替えが大切だなと。
気分一新して、邁進していこう

Posted at : 2015-02-16 07:40:48 / Category : none

Linuxのリアルタイムカーネルについて

いろいろと調べてみたので、頭の整理も兼ねたまとめ。

現在のLinuxの基本はプリエンプションありだけれども、クリティカルセクションの最中などは
常に特定の処理が走るため、必ずしも一定時間で応答がかえってくるとは限らない。
この点でLinuxにはリアルタイム性がないとなっている。

当然、Linuxも組み込み用途で使いたいという需要から、リアルタイム(RT)化するパッチが出ている。
それがPREEMPTRTのパッチ。
厳密なリアルタイム性を保証しているわけではないが、リアルタイムにできるだけ近いものになっている。
(いわゆるソフトリアルタイム)
この、PREEMPT
RTのパッチが何をやっているかに関しては、以下のスライドの前半がわかりやすい。

http://events.linuxfoundation.org/sites/events/files/slides/rtmux_1.pdf

やっていることは、

  • スピンロックをMutexに変更してプリエンプション可能にする
  • クリティカルセクションの最中もプリエンプション可能にする
  • Mutexはプライオリティの継承ができるようにする(これの意図がいまいちわかっていない)
  • 割り込みはカーネルスレッドに割り当てて、プリエンプション可能にする

簡単に言うと、とにかくどこでもプリエンプション可能にして、処理をぶった斬れるようにすること。
Linuxの場合、どのプログラム(ドライバ)が何やっているかを気にしていると
キリがないので、どのプログラムが実行してようがとにかく実行権を取り上げる、って思想だと思う。

それ以上のリアルタイム性(いわゆるハードリアルタイム)が欲しい場合、
Xenomaiや別のOSを同時に動かすことなどがあげられる。

Posted at : 2015-02-11 22:02:20 / Category : none

スカイマーク株の行方

上場廃止決定後、29日、30日はストップ安でザラ場引け
SBIの場合、ストップ安(高)で終わった場合は、以下の配分方法になるとのこと。

株式のストップ配分方法は?
http://faq.sbisec.co.jp/faq_detail.html?id=10972

29日、30日ともに結構な確率だけど、出来高はあるので機会はあったみたい。
ただし、両日共に当たらず。

1月30日に東証からスカイマークの制限幅撤廃の通知。

東証 : スカイマーク(株)株式に係る呼値の制限値幅の撤廃について
http://www.tse.or.jp/news/20/150130_c.html

それにともなって、2月2日に32円で成立した。
この日の最高値が35円、終値が19円なので、成り行きで全部売っぱらうのが正解だったのかな。
(まだ、今日以降の取引次第ではあるけど…)

スカイマーク株、19円に下落 値幅制限解除で取引成立:朝日新聞デジタル
http://www.asahi.com/articles/ASH2261YKH22ULFA02X.html?iref=comtop_list_biz_n02

被害がないといえば嘘になるけど、まぁまぁ想定出来うるリスクの中で対処できたので良かった
上場廃止になった企業がどうなるか、良い勉強になりましたよ。。。

Posted at : 2015-02-03 05:50:16 / Category : none

スカイマークへの巨額の違約金

エアバスはなぜスカイマークによるA380キャンセルで巨額の違約金を請求しようとしているのか? - BusinessNewsline
http://www.businessnewsline.com/news/201501161234310000.html

そう、一度巨額な違約金を言ってしまうと、今後のビジネス展開に支障がでるんじゃ…と
思ってたんだけど、この記事見て納得。
A380のような大型機はあまり需要がなくて、その中でキャンセルしようとしてるから
エアバス側が回収に躍起になってるということなんだね。

Posted at : 2015-01-26 21:18:17 / Category : none

2014年のベストエアライン

14年ベストエアラインはキャセイ、スカイトラックス調査
http://www.travelvision.jp/news/detail.php?id=62562

あれ、全日空が全然見当たらない。。。
勝手な印象としては、JAL > ANAと思ってたけど、そうでもないのね。
国内線の航空券の価格からそういう印象が来てるのかもな…。

いくつかの航空会社で国がわからなかったものをあげてみた。
よく聞くけど、いつも「どこだろう?」と流してたんだな。。。

  • キャセイパシフィック航空
    • 香港
  • アシアナ航空
    • 韓国
  • エバー航空
    • 台湾
  • ヴァージンアトランティック航空
    • イギリス
Posted at : 2015-01-25 22:57:28 / Category : none

バランスボール

バランスボールを会社で使っています。
今まで午前・午後のどちらかだけだったんですが、
最近ようやく一日中できるようになりました。
導入してからすでに半年近くになるので、ようやくといった感じ。
一日中やった場合の効果はどうなのかな?

Posted at : 2015-01-22 07:05:30 / Category : none

コメント機能の不具合

どうやら、投稿されてもメールが来てなかった模様…。
コメントを今までに投稿した人に送るロジックはあったけど、
僕自身にくるロジックが抜けていた。。。

Posted at : 2015-01-20 20:51:01 / Category : none

料理の失敗

なんだろな、昼は包丁で千切りにしていたら、親指の関節を切ってしまい、
(そもそもちゃんとした持ち方していれば、そんなところ切るはずもないんだが…)

夜は鍋敷きの上においてあった鍋をコンロに移動して、火をつけてから
鍋敷きがくっついたままのことに気づいたり…。
(鍋敷きは焼けてしまってダメになりました…)

何か変な一日でした。

それ以外は、AR.DroneのSDKが気になって少し下調べしたり、
料理の科学的な裏付けが気になってこちらも調べてみたり、
資料を読んだりするのがほとんどだったかな。

Posted at : 2015-01-18 22:47:25 / Category : none

酒々井のアウトレット

服買うときは、ちょこちょこと買うのではなく、まとめて買ってしまうようにしている。
そのほうが、時間もかからないし、服全体の統一感とか組み合わせがやりやすいよね。

ここ1,2年はほとんど冬物を買ってなかったので、久しぶりに服を買いに行ってきました。
場所は酒々井のプレミアムアウトレット。東京駅からバスが出てて、片道1時間ぐらい。

最初はGarrettのポップコーン、酒々井は穴場のようで15分ぐらいで買えました。
その日、何度か店の前を通りかかって見てた感じ、必ず並ぶ必要はありそうだけど、
概ね15分ぐらいで買えそうな感じでした。東京駅で1時間、2時間待ちより良いよね…。

その後は服探し。いつも買う系統の店3店舗ぐらいを回って、目星をつけてささっと購入。
上下合わせて合計8点ぐらい購入。結構良いのが見つかって良かった。

Posted at : 2015-01-18 12:58:34 / Category : none

最近の昼ごはん

ちょっと前までは家に帰って昼ごはんを食べていたけど、
それも移動するのが面倒だなと思い始めて、弁当を作って会社で食べてます。

弁当っても、手軽に済ませたいので、スープとおにぎり2つにしてます。
スープはAmazonの「THERMOS 真空断熱フードコンテナー 」ってのに入れて、
二日おきぐらいにレシピを変えたものを入れてます。
このフードコンテナだとかなり保温がきくので、その点も非常に良いね。

おにぎりはまだ試行錯誤中。
ほとんど力を入れずに握ると、ふっくらした感じに仕上るところまではできてきた。
ただ、味付けとか、ふっくらさ加減とか、まだまだ改良の余地はありそうなので、
毎日試行錯誤してます。

こうやって料理作ってると、いろいろと考えて改善できるところが多いので、
やっぱり楽しいなと思うね。

Posted at : 2015-01-14 22:34:45 / Category : none

仕事始め

今日から本業に復帰
長い休みでよい気分転換になったと思う
やることもたくさんあるので、ちゃちゃっと終わらせてこう

Posted at : 2015-01-13 08:58:53 / Category : none