- PR -

DLL同士の通信

投稿者投稿内容
優希
ベテラン
会議室デビュー日: 2003/08/12
投稿数: 92
投稿日時: 2004-02-06 11:03
ゆうじゅんさん、
アドバイスありがとうございます。

やってみたのですが、やっぱり同じエラーになってしまいますねぇ(^^;)
一個ずつ送信した方がいいんでしょうかね。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2004-02-06 11:14
引用:

優希さんの書き込み (2004-02-06 09:43) より:

とキャストの仕方を変えてみたのですが、

引用:

オブジェクト参照がオブジェクトインスタンスに設定されていません。


とエラーになってしまいます。
"DataTbl->get_Item(0)"には、データが入っているんですけど。


 その「入っている」データは、「値」ですか?「参照」ですか?
 dynamic_castでエラー?これはキャストできなければNULLを返しますから、その後の使うところでエラー?
 また、一旦Object*で受けて、受けたものをキャストすると、どうなりますか?

System::Object *obj = DataTbl->get_Item(0); //ここでobjを確認
SendDataTbl pData = *dynamic_cast<__box SendDataTbl*>(obj);

###スマイリー使用しない、に修正
###スマイリーに変わったところが、:Oから:oに変わってしまった…
###VBなら放っておくけど、C++やC#や大文字小文字を区別するから…

[ メッセージ編集済み 編集者: Jitta 編集日時 2004-02-06 11:17 ]
ゆうじゅん
ぬし
会議室デビュー日: 2004/01/16
投稿数: 347
投稿日時: 2004-02-06 11:17
box化しているのはArrayの中身でしたね失礼しました。
優希
ベテラン
会議室デビュー日: 2003/08/12
投稿数: 92
投稿日時: 2004-02-06 12:02
優希です。

引用:

Jittaさんの書き込み (2004-02-06 11:14) より:

その「入っている」データは、「値」ですか?「参照」ですか?



入っているデータは、"SendDataTbl"構造体ということなので、
「値」ということになりますか(^^;)


引用:

また、一旦Object*で受けて、受けたものをキャストすると、どうなりますか?

System::Object *obj = DataTbl->get_Item(0);
SendDataTbl pData =
*dynamic_cast<__box SendDataTbl*>(obj);



分けてやってみてもエラーになり、
エラーになるのは2行目です。

ちなみに、
"obj"は、「型」はObjectで、「値」はSendDataTbl(構造体)です。
(・・・あたり前ですが)

Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2004-02-06 12:21
 SendDataTbl構造体は、値型として定義されていますか?

__value struct SendDataTbl {
...
}

 __valueキーワードがないと、「値型」ではないですよ?確か、そうだったと思う。かなり自信なし。
優希
ベテラン
会議室デビュー日: 2003/08/12
投稿数: 92
投稿日時: 2004-02-06 12:49
優希です。

引用:

SendDataTbl構造体は、値型として定義されていますか?

__value struct SendDataTbl {
...
}



えぇ、"__value"を使って定義しております。
優希
ベテラン
会議室デビュー日: 2003/08/12
投稿数: 92
投稿日時: 2004-02-06 13:30
今、ArrayList型を変えて、
String型とint型を引数で渡すテストをやってみました。
コード:
void ReceiveData(int ItemNo, String *Data){
	:
}


すると、
int型の引数で渡しすと、きちんと値が渡ってくるのですが、
String型の引数で渡しすと、""(NULL)の値が渡ってきます。


ちなみに、Jittaさんがサンプルで作られたイベント↓
引用:

event ChangeEventHandler Change; /// イベント定義


は、実装しておりませんが・・・。
関係ありますのでしょうか?

優希
ベテラン
会議室デビュー日: 2003/08/12
投稿数: 92
投稿日時: 2004-02-06 14:31
優希です。

すいません。
↓のところで訂正です!!

引用:

今、ArrayList型を変えて、
String型とint型を引数で渡すテストをやってみました。
コード:
void ReceiveData(int ItemNo, String *Data){
	:
}



すると、
int型の引数で渡しすと、きちんと値が渡ってくるのですが、
String型の引数で渡しすと、""(NULL)の値が渡ってきます。



String型では、きちんと値は渡ってきました。
お騒がせ致しました。

うーん、1個ずつ送るか、構造体で送るか、、、ですかねぇ!?(^^;)

スキルアップ/キャリアアップ(JOB@IT)