tagCANDY CGI VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板
VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板
[ツリー表示へ]  [ワード検索]  [Home]

タイトル メモリマップドファイルのデータ渡し不具合
投稿日: 2008/02/28(Thu) 18:32
投稿者ダリア
いつもお世話になります。ダリアです。
すみませんが、アドバイスを頂きたくお願いいたします。

以下のような構造体(共有メモリ)を作成し、VB6にてメモリマップドファイルを使用しA側、B側からデータを見てます。(A、Bはおのおの独立したプログラムです)
メモリマップドファイルのクリアならびにデータの読込み(および配列切り替え)ははA側、データを書き込むのはB側です。


Public Type Data
    EventCode As Integer        'イベントコード
    Log(45) As String * 100 'ログデータ(100文字X45行)
    Dummy As String * 512   'ログデータ(サイズ)
    passfail(16) As Integer 'パスフェールデータ
    bin(16) As Integer      'BINデータ

End Type

Public Type DataType
    state As Integer        '構造体の書き込み条件
    console As Integer      '配列切り替え

    DATALOG(2) As Data
    
End Type


いままでは、配列を0固定にして(DATALOG(0)において)A→B、B→Aにて動作を確認しました。
上記においては、こちらが思ったとおりの結果になりました。
そこで、配列をボタンにて切り替えて実行してみました。
ボタンクリックにより、配列(1)および(2)へ書き込みを実行します。再度、ボタンクリックにより配列(0)へ処理が切り替わります。

しかし、配列(0)においては問題ないのですが。配列(1),(2)において以下のような問題が発生しています。


1、B側のデータが一部しかA側に渡されない。
 具体的には配列(0)(DATALOG(0))のデータしか渡されない。
 (渡すという表現は適切でないかもしれないのですが。メモリを読み込んで表示させると、(DATALOG(0)のデータしか表示されません)
 同じ構造体(共有メモリ)を見ていないのでしょうか?
2、A側でデータをクリアすると、B側のデータの一部しかクリアされない。
 配列(0)(DATALOG(0))のデータしかクリアされない。

上記のように構造体をきちんと認識していないように見えます。
このような場合、どのようにして原因を特定すればいいのでしょうか?
問題点としては構造体の一部に限って読み込めない、クリアできないということだと思うのですが。
問題解決の方法が全く分からなくて、よろしくお願いします。

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。