« 戦略変更を考えたほうがいいかもしれない | トップページ | つくばチャレンジ2010説明会 »

2010年7月24日 (土)

URGライブラリをC#で使えるようにする

URGライブラリというのは、北陽電気のレーザーレンジスキャナを簡単に扱うためのCおよびC++用のライブラリです。あくまでC/C++用で、スタティックリンク用のライブラリなので、C#からは呼び出せません。でも使いたい。DLLなら、C#から呼び出せるらしい。

ということで、簡単なラッパーを作ってDLLにでっち上げることにしました。DLLそのものは以前仕事で作ったことがあったのですが、でもちょっと困りました。私が仕事でDLLを作った時は Visual Studio 6.0を使っていたのですが、今手元にある開発環境はVisual Studio 2005で、かなり設定の仕方が変わってしまっています。インターネット上で DLL関連の検索をかけると古い情報から新しい情報まで一緒に出てくるので、どの情報が私の開発環境に合った情報なのか見分けるのに一苦労です。

一番困ったことは、.defファイルをプロジェクトに組み込んであるのに .libファイルが生成されないことです。最終的には、Visual Studio のヘルプを漁って見つけました。MSDNライブラリなら、このページに書いてあることです。リンカオプションで、「モジュール定義ファイル」を指定してあげないと .def ファイルがリンカに渡らないのですね。

とりあえずurg_initialize関数をラッピングした_urg_initialize関数(先頭にアンダーバーをつけただけ)を、Cで書いたDLLテストプログラムで呼び出しできることまで確認できました。

C#からDLLの関数を呼び出すには、DllImport を使うようです。ま、なんとかなるでしょ。

« 戦略変更を考えたほうがいいかもしれない | トップページ | つくばチャレンジ2010説明会 »

コメント

コメントを書く

コメントは記事投稿者が公開するまで表示されません。

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/167990/48957376

この記事へのトラックバック一覧です: URGライブラリをC#で使えるようにする:

« 戦略変更を考えたほうがいいかもしれない | トップページ | つくばチャレンジ2010説明会 »

最近の写真