タイトル : メモリマップドファイルのデータ渡し不具合 投稿日 : 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))のデータしかクリアされない。 上記のように構造体をきちんと認識していないように見えます。 このような場合、どのようにして原因を特定すればいいのでしょうか? 問題点としては構造体の一部に限って読み込めない、クリアできないということだと思うのですが。 問題解決の方法が全く分からなくて、よろしくお願いします。 |