• ベストアンサー

VBやC#のDLLを作るとき

VBやC#のDLLを作るとき特別な作り方があるのでしょうか? 少し前にポインタで文字列ももってき方を教えていただいたのですが、VBやC#に持っていけません C++で特別な作り方があるでしょうか? それともVBやC#で特別な引き込み方があるのでしょうか? 特に文字の場合ポインタがないVBに持っていくとき どういう型で返せばいいのでしょうか? よろしくお願いいたします

質問者が選んだベストアンサー

  • ベストアンサー
  • onti
  • ベストアンサー率37% (9/24)
回答No.2

VC#では、ポインタの考え方が基本的はありません。 ポインタをどうしても使用しなくてはいけないのであれば それなりのポインタ型を使用するための宣言などが必要 にあります。 ポインタを使用しなくてもよいのであれば、文字列などの 受け渡しはstring型で引数を作成すればよいと思います。 受け渡す引数をI/O型にするのであれば、ref string型に すれば、OKです。 ちなみに、DLLをつくるのに特別な作り方はありません。 Visual Studioを使用しているのであれば、クラスライブラリ のプロジェクトを作成してDLLを生成すればできると思います。 VC#でポインタ型を使うのは結構手間がかかると思いますよ。

gotyan
質問者

お礼

そですか。。。 今、VB、C#をだいたい覚え(使いこなせてはいないですが) VC++でDLLに挑戦しているところですが。。。 なかなかうまくいきません かといってVC++で全部 作るのはつらそうですし。。。 DLLの型さえ一定ならはあとは引き込むことを がんばって考えればいいんですね ありがとうございました。

その他の回答 (1)

  • furyfox
  • ベストアンサー率56% (58/103)
回答No.1

DLLファイルでも3種類ぐらいあって ACTIVEX DLLと 使用時に.h や.libが必要なDLLと 必要でないDLLがあります。 一般的なDLLは3番目のものだと思います。 文字列やポインタを使った関数でもDLLで使用できます。 vb側は内部ではunicodeですが文字列をDLLに送るときsjisに変換されたテーブル を自動的に用意します。 またポインタに関してはVB側から参照渡しすればポインタになります。 VBは文字列をDLLに送る場合byvalで渡さないといけないところに注意が必要です。 ちなみにVB6.0←→VC6.0++ の話ですのでC#などのネットフレームワークスではどうなるか わかりません。

gotyan
質問者

お礼

ありがとうございます。 参照渡しにすればいいんですね がんばってみます。

関連するQ&A