PB 電子会議室
発言No. | 更新日 | 題名(クリックすると発言内容と関連するコメントが表示されます) |
---|---|---|
16180 | 01/09/04 10:02:12 | RE(13):PB7.0: 外部関数の引数に構造体メンバを持つ構造体の使用 By ryochan |
16178 | 01/09/03 20:00:48 | RE(12):PB7.0: 外部関数の引数に構造体メンバを持つ構造体の使用 By ykano |
16176 | 01/09/03 19:36:38 | RE(11):PB7.0: 外部関数の引数に構造体メンバを持つ構造体の使用 By ryochan |
16173 | 01/09/03 17:34:45 | RE(10):PB7.0: 外部関数の引数に構造体メンバを持つ構造体の使用 By ykano |
16172 | 01/09/03 17:20:18 | RE(9):PB7.0: 外部関数の引数に構造体メンバを持つ構造体の使用 By ykano |
16171 | 01/09/03 17:17:50 | RE(8):PB7.0: 外部関数の引数に構造体メンバを持つ構造体の使用 By まつだ |
16169 | 01/09/03 15:03:59 | RE(7):PB7.0: 外部関数の引数に構造体メンバを持つ構造体の使用 By ryochan |
16168 | 01/09/03 14:13:46 | RE(6):PB7.0: 外部関数の引数に構造体メンバを持つ構造体の使用 By ykano |
16167 | 01/09/03 13:24:20 | RE(5):PB7.0: 外部関数の引数に構造体メンバを持つ構造体の使用 By M.M |
16166 | 01/09/03 12:37:56 | RE(4):PB7.0: 外部関数の引数に構造体メンバを持つ構造体の使用 By ykano |
16165 | 01/09/03 12:20:24 | RE(3):PB7.0: 外部関数の引数に構造体メンバを持つ構造体の使用 By ykano |
16163 | 01/09/03 11:16:37 | RE(2):PB7.0: 外部関数の引数に構造体メンバを持つ構造体の使用 By M.M |
16162 | 01/09/03 09:54:10 | RE(1):PB7.0: 外部関数の引数に構造体メンバを持つ構造体の使用 By ryochan |
16161 | 01/09/02 15:45:14 | PB7.0: 外部関数の引数に構造体メンバを持つ構造体の使用 By ykano |
カテゴリ:スクリプトの記述
日付:2001年09月03日 17:20 発信者:ykano
題名:RE(9):PB7.0: 外部関数の引数に構造体メンバを持つ構造体の使用
ryochanさん、こんにちは。
>もしかしたら、シングルキャラクタの場合、
>sprintfで\\0がセットされていないかもしれ
>ません。
>
>となると、落ちるときは取得時ではなく、
>メッセージ表示時かもしれません。
>直接charに\'文字\'(シングルクォーテーションに注意)
>をセット入れた場合は確実にdbgbufに終端文字\\0をいれ
>ないとダメですよ。
char型のaを表示したときは、私のところでも落ちませんでした。
(sprintfの前に、memsetでdbgbufの長さ分\\0を入れています。)
落ちるのは、aを表示したときでなく、その次のbを表示したときなのです。
ちなみに、char a; を short a; にしても同様でした。
(この場合は、PB側はinteger)
charの場合は、文字列を使うことにできましたが、shortの場合は、longにしないと
だめですかね。
PowerScriptリファレンスの第3章:宣言の中に「構造体の値渡し」という項目があります。
ここに
---
C言語で記述された外部関数の定義とアラインメントがPowerBuilderの構造体のコンポーネントと
同じであれば、構造体をその外部関数に渡すことができます。
DLLや共有ライブラリは、バイト アラインメントを指定してコンパイルしなければなりません。
つまり、パディングを行なわずに構造体内のフィールドを配置するということです。
----
とあります。
で、試しにVC++のプロジェクトの設定で「構造体メンバのアラインメント」をいろいろ指定して
やってみました。
結果、char型の場合は1バイト、short型の場合は2バイトに指定すると、無事、表示できました。
ただ、他に使用しているライブラリがあるのですが、そのライブラリの制約で、
「構造体メンバのアラインメント」を4バイトにするようにと指定されているので、
どうしたものかと思っています。
付加情報:
PowerBuilder Version (記載なし)
Client SoftWare
OS Windows95
DBMS (記載なし)
Browser (記載なし)
Server SoftWare
OS (記載なし)
DBMS (記載なし)
WebServer (記載なし)
Copyright © 2013 Power Future Co., Ltd.