VBのsizeof – プログラミング – Home

通知
すべてクリア

[解決済] VBのsizeof


ひろしか
 ひろしか
(@ひろしか)
ゲスト
結合: 18年前
投稿: 6
Topic starter  

VB.net2005でアプリを作っています。
VCのsizeofのようなものを探しています。
やりたいことというのは、
Cだと、
size = Count * sizeof(long);
のように書くところをVBで書きたいのです。
以下のようにサイズを直にかけばいいんでしょうけど、
sizeofみたいなものがあればそれでやりたいです
size = Count * 4

お願いいたします。


引用未解決
トピックタグ
Blue
 Blue
(@Blue)
ゲスト
結合: 20年前
投稿: 1467
 

System.Runtime.InteropServices.Marshal.SizeOf
でしょうか?

ただし、VCのlong型とVBのLong型はサイズが異なりますけど。


返信引用
ひろしか
 ひろしか
(@ひろしか)
ゲスト
結合: 18年前
投稿: 6
Topic starter  

レスありがとうございます。

やってみましたがうまくいきません。
System.Runtime.InteropServices.Marshal.SizeOf(Long)
と、書いてみましたが以下に変換されてしまい、
System.Runtime.InteropServices.Marshal.SizeOf(Of Long)()
以下のエラーが起こってしまいます。
error BC32087: この型引数の数を受け付ける 'SizeOf' がないため、オーバーロードの
解決に失敗しました。

使い方が間違っているんでしょうか?

>ただし、VCのlong型とVBのLong型はサイズが異なりますけど。
ほんとですね。VB6だと4バイトだったはずなんですが変わったんですね。


返信引用
Blue
 Blue
(@Blue)
ゲスト
結合: 20年前
投稿: 1467
 

> System.Runtime.InteropServices.Marshal.SizeOf
だは型名ではなく変数を渡さないとだめですね。
# VB6のLen関数と同じ

Dim l As Long
MessageBox.Show(System.Runtime.InteropServices.Marshal.SizeOf(l).ToString())

もっといい方法がありそうなんだけど。


返信引用
ひろしか
 ひろしか
(@ひろしか)
ゲスト
結合: 18年前
投稿: 6
Topic starter  

なるほど。変数じゃないとダメなんですね。
あきらめて定数にでもしてかけることにします。
Const SizeofInt as Integer = 4
size = Count * SizeofInt

ありがとうございました。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました