フォームのオブジェクトを共有メモリで共有し、別フォームでラベル等に
値を入れようと作成したのですが、ファイルマップに設定して、その後
データを参照しようと下記を実行しました。
これを実行すると、必ずVBの強制終了のメッセージが発生してしまいます。
'' ファイルマップデータを取得
CopyMemory lpData, ByVal (lpFileMap), Len(lpData)
<共有する構造体>
public lpData As FileMapDataType
Public Type FileMapDataType
Data0 As Object
Data1 As Object
Data2 As Object
Data3 As Object
Data4 As Object
Data5 As Object
End Type
開発環境はVB6でおこないました。
どうか、ご教授下さい。
Object型なんて扱えないと思います。
CopyMemoryで使えるのは、オブジェクトを含まない領域だけです。
(オブジェクトは単なるデータだけではない)
共有メモリーが使えているのならば、両側でその領域を用いるIStream
を備えたオブジェクトを構築して、そこに対してCoMarshalInterface
やCoUnmarshalInterfaceを用いるとか。
# これを読んで意味がわからないようならば、この方法は諦めて下さい。
ツイート | ![]() |