もちゅろぐ

iOSやSwift、モバイル設計だったりRailsについてまとめていく

Native C++ → Managed C++ DLL → C#

C#でツール作ってるけど、基本処理が遅いC#で高負荷確定の3D描画をやるわけにはいかないので、C++で書いた描画部分をC#で使えないか模索中。
んでとりあえずこれでやってみるかって決まったフローがタイトルの

  1. Native C++ : 描画エンジン
  2. Managed C++ DLL : Native C++の処理をラッピング化
  3. C# : Managed C++ の DLLを呼び出す。

ってやり方。

実はC#初めて。

前々から存在を知ってて、さわり程度での知識はあったけど、今回みたいにツールとしてひとつのソフトを作るのは初めて。
本でも読みながらやるかと思って本購入。
同じCだから大してかわんねぇだろうと思って。中級〜上級者用と思わしき本を購入。
うん、しくった。せめて初級〜中級レベルを買えばよかった。宣言やループ、条件遷移などの書き方は一瞬なんだけど、買った本の対象者がC#1.x〜C#2.0を基本網羅している人対象だった。
まあいつかレベル追いついたら読めるだろうから、完全に損したわけじゃないけど。


一番損したのは、WPFによるプログラミング。
簡単な入門レベルの本買って、サンプル作りながらとりあえずツールで必要そうな部分だけ読んだけど、実はこれC#開発に慣れてない人からしたら使いづらいのでは・・?C++と比べてC#はどんなフローをたどっているのか知らない上にさらにロジックとデータ分離化されたらことさら把握しづらい。そのうち便利な存在になるとは思うけど、まずはC#だけで作ることに決めた。よって不要な本かつ、無駄な時間を使ってしまった。

自動化しすぎなC#エディタ

C#は補完が優秀でインテリセンスも壊れないって聞いてたけど、この補完たまに邪魔だな。
基本小さいメソッドの括弧'{'は関数名と同じ行に入れたいんだけど、それを許してくれない。

まあいいや

とりあえず今回のをきっかけにC#を使えるようにしておいて、技術幅を広げよう。
C++と比べてウィンドウツールを作りやすいことには変わりないので、慣れておけば今後予定しているツールも円滑に作れそうだ。