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日 12:37 発信者:ykano
題名:RE(4):PB7.0: 外部関数の引数に構造体メンバを持つ構造体の使用

ryochanさん、こんにちは。

コメントありがとうございます。 (^o^)

ryochanさんの示してくれた通り、やってみたら、struct_test->struct1.bの値は
外部関数側で正常に表示できました。

で、もともとの私が書いていたとおり、longのところをcharにしたら、落ちてしまいました。
(C側  char型
 PB側 character型
 を使用。)

構造体のメンバの構造体にchar型のメンバを入れた場合だけでなく、引数で渡した構造体のメンバに
直接(?)char型のメンバを入れても同じです。
外部関数の引数には、構造体メンバにchar型は使用できないのでしょうかね。

私が試したのは以下の通りです。

--- 外部関数(C) ---
typedef struct INREC_DEF{
  char CTRLAREA;
  char *CJG002;
} INREC_DEF;

__declspec(dllexport) long _stdcall sut7r_call(INREC_DEF *p_INREC) {
  char dbgbuf[1024];

  memset(dbgbuf, 0, sizeof(dbgbuf));
  sprintf(dbgbuf, \"%c\", p_INREC->CTRLAREA);
  MessageBox(NULL, dbgbuf, \"引数:CTRLAREA\", MB_OK);
  memset(dbgbuf, 0, sizeof(dbgbuf));
  sprintf(dbgbuf, \"%s\", p_INREC->DD_CJG002);
  MessageBox(NULL, dbgbuf, \"引数:DD_CJG002\", MB_OK);
}
--------------------
--- PB ---
構造体 str_inrec_def
  character ctrlarea
  String    cjg002

function long test1(ref str_inrec_def p_inrec) library \"testpb.dll\"

スクリプト
  str_inrec_def lstr_inrec

  lstr_inrec.ctrlarea = \"A\"
  lstr_inrec.dd_cjg002 = \"123456789012345\"

  test1(lstr_inrec)
---------------------



付加情報:

PowerBuilder Version (記載なし)

Client SoftWare

OS Windows95
DBMS (記載なし)
Browser (記載なし)

Server SoftWare

OS (記載なし)
DBMS (記載なし)
WebServer (記載なし)

PowerSpaceの運営は、パワーフューチャー株式会社が行っております。
Copyright © 2013 Power Future Co., Ltd.