タイトル | : Re: -128 +127の定義 |
記事No | : 14575 |
投稿日 | : 2010/03/25(Thu) 12:54 |
投稿者 | : 魔界の仮面弁士 |
VB6 のユーザー定義型を、C の構造体に合致させたいのであれば、 「各メンバーの型のサイズ」(符号の有無は無視してよい) 「各メンバーがポインタか否か」 「構造体のパッキングサイズ」(VB6 では 32bit境界に配置される) 「文字列のエンコード」(String を使うか否かを考慮しなければならない) などを重視してください。
それ以外の部分(値の範囲やパディング位置など)は、呼び出し側で調整する事になります。
> 構造体の一部にCのchar型を定義したいのですが、 C の char 型が -128〜127 か 0〜255 かは処理系依存です。 それどころか、char型が8bitだとも限りません(大抵は、1バイト=8bitですが)。
> BYTE型は0〜127しか出来ません。 VB の BYTE型(正確には Byte型)は、0〜255 の範囲の値をとります。 一方、C 言語に BYTE 型は無いはずです。typedef や #define 等で定義されない限りは。
> Public Type ENE_SHM_CMP_INFO C 側の定義は、どうなっているのでしょうか?
> failCount As Integer '連続計測失敗カウンタ C 側における failCount の型は何でしょうか?
> frzState(1 To 4) As Byte '冷凍機稼動停止状態 > frzStateには、-1, 0, 1 で意味を持たせたいのです。 C 側の frzState が 8bit符号付き整数型で、かつ、その取りうる値が「-1」「0」「+1」の 3 値のみということであれば、以下のように読み替えれば OK です。 あとは VB 側で Byte 型の定数(Const)を、それぞれの値ごとに用意すれば事足りるかと。
C側 VB/Byte --- ------- -1 &HFF 0 &H00 +0 &H01
|