API CopyMemory について


はんどる  2007-03-08 17:49:20  No: 135697

フォームのオブジェクトを共有メモリで共有し、別フォームでラベル等に
値を入れようと作成したのですが、ファイルマップに設定して、その後
データを参照しようと下記を実行しました。
これを実行すると、必ず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でおこないました。

どうか、ご教授下さい。


Blue  2007-03-08 19:19:00  No: 135698

Object型なんて扱えないと思います。

CopyMemoryで使えるのは、オブジェクトを含まない領域だけです。
(オブジェクトは単なるデータだけではない)


K.J.K.  2007-03-08 20:08:22  No: 135699

共有メモリーが使えているのならば、両側でその領域を用いるIStream
を備えたオブジェクトを構築して、そこに対してCoMarshalInterface
やCoUnmarshalInterfaceを用いるとか。
# これを読んで意味がわからないようならば、この方法は諦めて下さい。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加