- ベストアンサー
C言語系の将来性と現在の有用性について
いつもお世話になっております。 以前もこちらのカテゴリで似たような質問をさせていただきましたが、違う視点からまた質問させていただきます。 現在社内では、WindowsVista向けアプリケーションの対応として、VisualBasic6.0で作成した多くの資産をVisualBasic.NET2005に移行する作業を行っております。 資産はPCIボードやシリアルポートを使用してリアルタイム制御を行ったり、ウインドウに数値表示するための、ループ構造のロジックが主です。 私としては、VB6資産独特の不具合(応答性の悪さや、C++向け他社製DLLを呼び出した時の原因不明な動き)が頭に引っかかっているので、.NETへ移行するならば、C++へ移行する方が制御には向いているのではないかと考え、暇を見つけてはVCの移行作業を実験的に並行して行っています(VC++.NETはまだ購入していないので、所有しているVC6.0を使用しています)。 C++が制御に向いている、または処理系を変更することでLinux移行も可能である点を踏まえるとC++言語での開発は今後の転換が柔軟に行える要素を持っていると思います。 一方、VB.NETは生産性やデバッグ機能性が非常に高い、また実行速度もかなり改善させれていると言われて、会社の方針はもっぱらVB.NET化で固まってしまっています。 うちのシステムはハードウェアメーカが公開するAPIがCかVBにしか対応できないので、言語的には二者択一になってしまうのですが、使用OSはWindows/Linuxの選択肢は用意されています。 これらを前提として、VB.NETへ移行するメリット/デメリット、またC++言語へ移行するメリット/デメリットにはどんな事があるのでしょうか? ちなみにVB6.0以前での開発は、MicrosoftCでMS-DOSアプリケーションを作っており、Windowsマシンの普及によってVBへ移行した実績があります。
- みんなの回答 (5)
- 専門家の回答
お礼
inthefloiさん、度々のご回答ありがとうございます。 不勉強なもので、汎用DLLとその他の違いが分からないのですが、 本体のDLLの引数が構造体渡しであるためにVBからダイレクトに呼べず、一度VCのロジック上で呼び出すDLLを作成し、受け取った構造体のアドレスを更にVBで受け取る、というフローになります。 構造体を含めた引数や戻り値の型はVBと同じ(DWORDです)なので、ひょうっとしたらマーシャリングというのは可能かもしれません。