以下の制約でアプリケーションを開発します。(開発環境は、VisualStudio 2008)


VB ===> ユーザーインターフェース部分担当
VC++ ===> ファイルアクセス、シリアル通信、TCP/IP通信等、デバイス制御、その他、面倒なところ(?)

以上のような分担で作成する場合、VC++でDLLを作成して、
VBから、そのDLLを使用するのが一般的かなと思っているのですが、その
具体的な方法(サンプルコードや、使用するキーワード等)、作成手順を教えて下さい。

ちなみに下記のページなどは、参考になりました。
http://www.ne.jp/asahi/hishidama/home/tech/vcpp/dll.html

回答の条件
  • URL必須
  • 1人3回まで
  • 登録:2010/01/06 09:52:28
  • 終了:2010/01/12 16:23:52

回答(2件)

id:HALSPECIAL No.1

HALSPECIAL回答回数407ベストアンサー獲得回数862010/01/06 10:37:55

ポイント50pt

ファイルアクセス、シリアル通信、TCP/IP通信等、・・・

.NETには多くのコンポーネントがそろっているので、個人的にはVBで完結したいところです。

連携には、引数の型合わせが面倒になるかと思います。(とくに構造体が絡んでくると)

以下、参考になりますか?


ソフトウェア・ラボ

  C++ネイティブDLL

  C++ネイティブDLLの開発

  VBから参照


型合わせはこちら、

全ては時の中に…

  【VB.NET】Windows APIの利用


.NET TIPS

  Win32 APIやDLL関数を呼び出すには?

id:futurista

回答ありがとうございます。

リンク先を参照しましたが、かなり参考になりそうです。

確かに、.NETですので、ひとつの言語で集約したいところではありますね。

まあ、いろいろありまして。

まだ、製造工程ではないため、実際に教えて頂いたことを使用するのは先なのですが、

どうも、ありがとうごさいました。

2010/01/06 17:48:32
id:mattn No.2

mattn回答回数104ベストアンサー獲得回数232010/01/06 10:40:41

ポイント20pt

作成するDLLのインタフェースが、どの様なものを期待されているか分かりませんが、VB.NETからは

<DllImport("mydll")> _
Private Shared Function MyDllProc( _
    ByVal szParameter As String) As Integer
End Function

といった様にDllImportを使います。

COMポート等のハンドルを持ちまわるのであれば、

<DllImport("mydll")> _
Private Shared Function MyOpen( _
    ByVal szPortName As String) As Long
End Function

<DllImport("mydll")> _
Private Shared Function MySend( _
    ByVal handle As Long, _
    ByVal szPortName As String) As Long
End Function

といった様にVB.NET側でハンドルを持っておくのが良いのかもしれませんね。

http://q.hatena.ne.jp/

id:futurista

回答ありがとうございます。

パッとよくわかりませんでしたが。。

まだ、製造工程ではないため、実際に教えて頂いたことを使用するのは先なのですが、

どうも、ありがとうごさいました。

2010/01/06 17:51:49

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません