VBの「As String * 128」とは?
Visual Basic 2010 Expressでコンソールアプリケーションを作成しています。
OSのヴァージョンを取得する機能を作成したかったので、
http://hanatyan.sakura.ne.jp/vbhlp/Version.htm
を参考にして、OSVERSIONINFOの構造体を定義しました。
しかし
szCSDVersion As String * 128
の
「* 128」
の部分で、ステートメントの終わりを指定してくださいとエラーが出ます。
「* 128」とは、いったいどういう意味ですか?
また、エラーを無くす方法はありますか?
いろいろ検索しましたが、調べ方が悪いのか、分かりませんでした。
よろしくお願いします。
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
No.4
- 回答日時:
極く旧い時代のBasic(VB Basicよりずっと前の当初の、特にビジネスで使うBasic)時代から、文字列の長さを許容長以下で定義するとき、ありました。
文字列長を指定するものです。構造体と言う考えは無いが、私の使っていたものは、ビジネス向けだったのでたしかRecdef
simei*16
jyusho*60
keisuu
Recend
などとフィールド長を定義して、レコードを読むと、このインプトエリアに読み込んでくれました。
具体的な文字列を代入すると、その長さを超えない文字列が左詰めでセットされたように記憶する。
ーー
VB6->VB.NETでは
http://msdn.microsoft.com/ja-jp/library/f47b0zy4 …
http://msdn.microsoft.com/ja-jp/vbasic/cc707243. …
のユーザー定義型記憶領域の固定長文字列。
VB6からVB.NET移行の際の、大きなテーマ(修正項目)の1つのようです。
No.3
- 回答日時:
Win32APIを利用しなくてもNET Frameworkにあるみたいです。
http://dobon.net/vb/dotnet/system/osversion.html
> System.Environment.OSVersion
Win32APIを利用して取得する方法も同じページに記されているので、
下手にVB6用のページを参照するより、こちらを見たほうが分かり易いと思います。
No.1
- 回答日時:
お調べのページは、コメントに記述してあるとおり「VB6.0」のソースです。
~As String * 128
というのは、VB6.0の時代にあった「固定長(この場合は128バイト)の文字列型」です。
VB2010では固定長はサポートされていません。そもそも、VB2010でAPIを使う事自体がナンセンスです。
OperatingSystemオブジェクトで調べるべきでしょう。
http://dobon.net/vb/dotnet/system/osversion.html
ご回答ありがとうございます。
Vb6.0の機能がVb2010でも使えるわけではないのですね。
見当違いなところを探していたようです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/15 15:48
- Visual Basic(VBA) 【VBA】Excelの特定範囲のセルを画像で保存したい 2 2023/01/25 13:06
- Visual Basic(VBA) VBA 改行コードの取り方 1 2022/03/22 14:14
- Excel(エクセル) フォルダ内のワードファイルをPDFに一括変換するVBA 3 2023/06/09 16:51
- Visual Basic(VBA) 【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/24 20:49
- Visual Basic(VBA) Excelで下記のようにマクロを作ったところ、一回目は実行できたのですが、二回目以降「実行時エラー1 1 2022/03/25 08:08
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/05/26 17:13
- Visual Basic(VBA) 【前回の続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/16 16:44
- Excel(エクセル) VBA フォルダ見える化のコードについて 2 2023/06/19 15:04
- Excel(エクセル) VBA でvlookup エラーなどは削除したい 8 2022/12/30 04:03
このQ&Aを見た人はこんなQ&Aも見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
VB6.0の「vbFromUnicode」はVB.NETではどれに相当しますか?
Visual Basic(VBA)
-
Form_Load と Form_Activate のタイミング
Visual Basic(VBA)
-
VB6 開発環境のエディタに行番号を表示
Visual Basic(VBA)
-
-
4
DoEventsがやはり分からない
Visual Basic(VBA)
-
5
VS 2008(VB.NET)
Visual Basic(VBA)
-
6
VBの画面サイズについて
Visual Basic(VBA)
-
7
VB.NET getとsetの概念がわかりません。
Visual Basic(VBA)
-
8
VB6でユーザー定義型がNothingかどうか調べるには?
Visual Basic(VBA)
-
9
VB6.0のString関数に代わるVB2008のそれは?
Visual Basic(VBA)
-
10
VB6のAttribute VB_Nameの意味について
Visual Basic(VBA)
-
11
VB.NETで DataRow()を利用して、値からコードを取得したい。
Visual Basic(VBA)
-
12
VB6の変数宣言で、末尾に*"と数値がつく構文の意味"
Visual Basic(VBA)
-
13
Designer.vbは直接コードをいじってはだめ?
Visual Basic(VBA)
-
14
VB6とVB.NETでNullの扱いが違う?
Visual Basic(VBA)
-
15
【VB.NET】App.configにファイルパスを設定して読み込みたい
Microsoft ASP
-
16
VB6.0のIsNull関数に相当するもの
Visual Basic(VBA)
-
17
VB.NET でのLaod/unLoad について
Visual Basic(VBA)
-
18
frxファイルの役目
Visual Basic(VBA)
-
19
VB6 配列を初期化したい
Visual Basic(VBA)
-
20
コマンドプロンプトの「%1」と「%~1」の違いがわからない
その他(プログラミング・Web制作)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelはなんで先頭の0を消すん...
-
エクセルでアルファベットか数...
-
EXCELで=より左の文字を一括で...
-
Excelで3E8を3.00E+8にしない方...
-
VBAでの Replace関数で、ワイル...
-
文字列からタブコードを取り除...
-
同一セル内に関数と文字列を同...
-
エクセルで文字列をtxtファイル...
-
漢数字に変換するプログラム
-
MS SQLServer のSQLで文字列の...
-
Excelで指数表現しないようにす...
-
VBA2005 16進を2桁で表示したい。
-
Pro c/c++ でホスト変数の後に....
-
16進数を10進数に簡単に変換す...
-
C#で年月を比較する
-
エクセル 数値データを桁をそ...
-
複数文字列から共通文字列の抽...
-
PDFのファイル名をリネームをし...
-
sedなどで、特定の文字列の後の...
-
エクセルマクロ 特定の文字列...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルでアルファベットか数...
-
EXCELで=より左の文字を一括で...
-
VBAでの Replace関数で、ワイル...
-
文字列からタブコードを取り除...
-
Excelで3E8を3.00E+8にしない方...
-
Excelで指数表現しないようにす...
-
エクセルで文字列の最大値を抽...
-
エクセル 数値データを桁をそ...
-
エクセルで文字列をtxtファイル...
-
同一セル内に関数と文字列を同...
-
VBA2005 16進を2桁で表示したい。
-
VBの「As String * 128」とは?
-
sedなどで、特定の文字列の後の...
-
MS SQLServer のSQLで文字列の...
-
Left関数とRight関数を合わせた...
-
Msgboxの×が押されたとき
-
アクセスで特定の数字以外(複...
-
【Excel VBA】複数ある特定の文...
-
エクセルでセル内の文字列の最...
-
C#で年月を比較する
おすすめ情報