とある日曜プログラマーのボヤキ。

 

そういうわけで、アレですよ。

メタセコイアでSpaceNavigatorを使えるようにすべくプラグインをシコシコこさえているわけですが、SpaceNavigatorのAPIをC++から呼び出す方法がわからないっつーか、SDKがダウンロードできないんですよ。

 

3DConnexionのホームページ行っても、MacとUNIX用のSDKは置いてあるけどWindows用が無いのです。

で、Windows用はドライバーのReadme.txtの中を参照してね☆的な事が英語で書いてあるわけですが、見てもSDK関係らしき記述が無いと。

 

どーいうことだと。小一時間問い詰めたい。

 

ちなみに、C#の場合はドライバー同梱のTDx.TDxInput.dll(64bitOS上ではデフォルトで C:\Program Files\3Dconnexion\3Dconnexion 3DxSoftware\3DxWare64\win32 に入る)をインポートするだけで使えちゃったりするわけですが、C++の場合はDLLからエクスポートされてるブツの内容をヘッダファイルやクラス情報ファイルなんかからゲッツしないと使えないわけですね。はい。

いやもうどうしましょうベイベーと。そんな感じで悩んでいたら、C#用のDLLの機能をC++で呼び出せるようにラッピングすればいいんじゃね?的な事を思いついたのですよ。

ええ、そうれはもう天の声というか神のお告げみたいな感じで。

でも、それはそれでめんどくさいとか思いつつ、本家に直接問い合わせてSDKゲッツするよりは面倒なさそうな感じがするので、この方法で作業を進めてみようかなと思う次第であります。

ちなみに、手順としてはこんな感じ。

CLRを使用するDLLを作って、その中でTDx.TDxInput.dllをインポート。C++形式のラッパーを作る。(DLLリンク用の.hと.libも作成)

上記DLL(と、.h/.lib)をメタセコプラグインのDLLでインポート。C++形式のラッパーを介してSpaceNavigatorにアクセス!

俺様ハッピー!

多分、これで出来る。そう信じてる。

出来たらソース含めて公開します。たぶん。きっと。


↓ランキングに参加してます↓
ブログランキング・にほんブログ村へ
人気ブログランキングへ