• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VBの「As String * 128」とは?)

VBの「As String * 128」とは?

このQ&Aのポイント
  • VBの「As String * 128」とは、Visual Basic 2010 Expressでコンソールアプリケーションを作成する際に使用される記述です。
  • 「* 128」とは、文字列の長さを指定するための記法で、128文字のメモリを確保し、文字列を格納することを示します。
  • エラーを解決するためには、szCSDVersionの宣言部分を修正し、文字列の長さなしで宣言する必要があります。

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

  • ベストアンサー
  • g_liar
  • ベストアンサー率52% (382/728)
回答No.2

参考にされたサイトはVB6.0用のソースですね。 VB6.0とVB2010(=VB.NET)は色々な部分が変わってますので、VB.NET用のサンプルを見た方が良いと思います。 http://dobon.net/vb/dotnet/system/osversion.html ちなみに一応、質問に答えると… > 「* 128」とは、いったいどういう意味ですか? VB6.0(VB2010の5世代前のバージョン?)で固定長文字列を表す定義です。 * 128と記述すると128文字以上の文字列を入れても自動的に128文字でカットされます。 > また、エラーを無くす方法はありますか? VB2010(=VB.NET)では以下のように記述します。 <VBFixedStringAttribute(128)> Private szCSDVersion As String

rigard1225
質問者

お礼

ご回答ありがとうございます。 「* 128」の意味などが分かりました。 勉強になりました。

その他の回答 (3)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.4

極く旧い時代のBasic(VB Basicよりずっと前の当初の、特にビジネスで使うBasic)時代から、文字列の長さを許容長以下で定義するとき、ありました。文字列長を指定するものです。構造体と言う考えは無いが、私の使っていたものは、ビジネス向けだったのでたしか Recdef simei*16 jyusho*60 keisuu Recend などとフィールド長を定義して、レコードを読むと、このインプトエリアに読み込んでくれました。 具体的な文字列を代入すると、その長さを超えない文字列が左詰めでセットされたように記憶する。 ーー VB6->VB.NETでは http://msdn.microsoft.com/ja-jp/library/f47b0zy4(VS.80).aspx http://msdn.microsoft.com/ja-jp/vbasic/cc707243.aspx#User-Defined のユーザー定義型記憶領域の固定長文字列。 VB6からVB.NET移行の際の、大きなテーマ(修正項目)の1つのようです。

rigard1225
質問者

お礼

ご回答ありがとうございます。 詳しいご説明で、とても勉強になりました。

回答No.3

Win32APIを利用しなくてもNET Frameworkにあるみたいです。 http://dobon.net/vb/dotnet/system/osversion.html > System.Environment.OSVersion Win32APIを利用して取得する方法も同じページに記されているので、 下手にVB6用のページを参照するより、こちらを見たほうが分かり易いと思います。

rigard1225
質問者

お礼

ご回答ありがとうございます。 Win32APIは難しそうなので、変える方向で検討いたします。

  • ok-kaneto
  • ベストアンサー率39% (1798/4531)
回答No.1

お調べのページは、コメントに記述してあるとおり「VB6.0」のソースです。 ~As String * 128 というのは、VB6.0の時代にあった「固定長(この場合は128バイト)の文字列型」です。 VB2010では固定長はサポートされていません。そもそも、VB2010でAPIを使う事自体がナンセンスです。 OperatingSystemオブジェクトで調べるべきでしょう。 http://dobon.net/vb/dotnet/system/osversion.html

rigard1225
質問者

お礼

ご回答ありがとうございます。 Vb6.0の機能がVb2010でも使えるわけではないのですね。 見当違いなところを探していたようです。

関連するQ&A