• ベストアンサー

Main関数で文字列を返す方法

どなたか教えてください。 今、コンソールプログラムを作っていて、 Main関数の返却値に文字列を返したいのですが 文字列の返し方がわかりません。 わかる方がおられればよろしくお願いします。

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

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.3

>DLLでの方法を教えてもらえないでしょうか? 用途として、単純に関数を別ファイルとして呼び出せるということが要件だとしてVB.NET でDLL を作成するのは、例えば次のようにします。 以下のようなファイルを作成します。 (クラスファイルでもいいですが) myDLLFunc.vb ---------------------------------------------------------------- Imports System public module Bluepixy Function returnStringValue() As String '本当は、なんだかんだとあって最終的に次にような文字列を返す returnStringValue = "関数が返す文字列" End Function End module ---------------------------------------------------------------- vbc /target:library myDLLFunc.vb でコンパイルする myDLLFunc.dll ができる。 作ったDLLを利用する側のプログラム CallDLLFunc.vb ---------------------------------------------------------------- Imports System Imports Bluepixy Module Sample Sub Main() Console.Write("[{0}]", returnStringValue() ) End Sub End Module ---------------------------------------------------------------- コンパイルの仕方 vbc CallDLLFunc.vb /r:myDLLFunc.dll

その他の回答 (2)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

>本当にやりたかったのは、呼び出し元のアプリケーションに文字列を返すことです。 DLLにするとか、ファイルでやりとりするとかが簡単だと思います。 #1でも書いていますけど、短い文字列なら数値として渡すとかもできると思いますけど。

noname#16765
質問者

お礼

ありがとうございます。 ファイルでのやり取りは考えたことがありました。 しかしDLLのことはまったくといっていいほど考えて無かったです。 といゆうより自分の中でのDLLのイメージは、 「共通で使えるファイルの集合体でメモリの節約になる」 ぐらいだったのです。 話の内容から察するにDLLにはそれ以外の機能があるみたいですね? よかったらDLLでの方法を教えてもらえないでしょうか?

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

VB.NET では、 Main 関数(プロシジャー含む)は次の4種類です。 Sub Main() Sub Main(ByVal CmdArgs() As String) Function Main() As Integer Function Main(ByVal CmdArgs() As String) As Integer なので、Main関数の返却値に文字列を返すことはできません。 もし文字列を返却できたとしても、それを利用できるOSなりなんなりはあるのでしょうか? どのように利用されるつもりなのでしょうか? 場合によっては、短い文字列であれば、文字コード列をバイト列で返すということはできるかもしれません。 意図を勘違いしていたならすみません。

noname#16765
質問者

お礼

>どのように利用されるつもりなのでしょうか? 確かにコンソールはおかしいですね。。。 たとえのつもりで特に考えもせず書いていました。 書き込みがなかったのはこれが原因だったのか 本当にやりたかったのは、呼び出し元のアプリケーションに文字列を返すことです。 話が変わりますけど、質問しなおしたほうがいいですかね?

関連するQ&A