VB6.0用掲示板の過去のログ(No.2)−VBレスキュー(花ちゃん)
[記事リスト] [新規投稿] [新着記事] [ワード検索] [管理用]

投稿日: 2006/02/26(Sun) 10:09
投稿者gt
URL
タイトルRe^6: 構造体配列転送

Blueさん
ご回答ありがとう。


> // 日本語ロケーションを設定
> setlocale( LC_ALL, "Japanese" );
setlocale( LC_ALL, "Japanese" );という関数が知らなかった、
これを入れるとうまく表示できました。(他には、参照しながらやっていました)

> アライメントを考慮しないと、VBの構造体との位置がずれてしまいますよ。
> VB側では 4バイト ずつだと思ったので、
> typedef struct
> {
>      short ID;
>      short flag;
>      BSTR  Name;
> } SysData_LAY;
> のようにしないといけないような。
これが知らなかったのですが、
でも、一つ疑問があります、
VB側、文字列のナンバーが複数の場合、(固定長、不定長がある場合)
どう並べるのでしょうか。
この例だと
BSTR  Name;
BSTR  Name2[10];
BSTR  Name3;
BSTR  Name4;
で、
BSTR  Name2[10];
BSTR  Name;
BSTR  BSTR  Name3;
BSTR  Name4;
にするのでしょうか。

> # というか、VBでshort型どうやって設定するんだっけ?
>
VBでshort型   => C側 short型
VBでInteger型 =>  C側 short型
VBでLong型    => C側 Long型
VBでSingle型  => C側 float型
VBでDouble型  => C側 Double型

そうやっていますが、やっぱりいけないですね、バイト数が考えていないです。


> 色々めんどくさいので、Cとの連携を考えるときは、VBではLong型、Cではint型で扱ったほうが無
難で
す。
> (どちらも4バイト)

はい、これからlong型にします。ありがとう。

よろしくお願いします。


- 関連一覧ツリー (★ をクリックするとツリー全体を一括表示します)

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)

- VBレスキュー(花ちゃん) - - Web Forum -