C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: テキスト形式のメモリマップドファイルについて


(過去ログ 116 を表示中)

[トピック内 5 記事 (1 - 5 表示)]  << 0 >>

■68637 / inTopicNo.1)  テキスト形式のメモリマップドファイルについて
  
□投稿者/ mark225 (1回)-(2013/11/02(Sat) 17:36:30)

分類:[C#] 

他のアプリ(MT4)とのデータ授受にテキスト形式のメモリマップドファイルを検討中でして、調べたところ下記のコードが紹介
されていましたので試したのですが「MappViewController」と「SMem」が未定義エラーとなり、中身が理解できていませんの
でこれの解決方法が分かりません。

また、相手側アプリが書き込みを終了したときにC#側でイベントを発生させることは出来るのでしょうか。

対処方法をご教示願います。


//書き込み
public void SetTestData(string data)
{
 MappViewController MappViewAccessor = new MappViewController(SMem);	// マップビューアクセスクラスを生成
 SMem.OpenMapView_Write();	// マップビューオープン<書き込み用>
 int index = 0;	 // インデックス
 MappViewAccessor.SetStringData(ref index, data, "shift_jis");	 // メモリマップドファイルへデーター書き込み
 SMem.CloseMapView();	 // マップビュークローズ
}

//読み出し
public string GetTestData()
{
 string data;
 MappViewController MappViewAccessor = new MappViewController(SMem);	// マップビューアクセスクラスを生成
 SMem.OpenMapView_Read();	// マップビューオープン<読み込み用>
 int index = 0;	// インデックス
 data = MappViewAccessor.GetStringData(ref index, "shift_jis");	// メモリマップドファイルからデーター取得
 SMem.CloseMapView();	// マップビュークローズ
 return data;
}

引用返信 編集キー/
■68639 / inTopicNo.2)  Re[1]: テキスト形式のメモリマップドファイルについて
□投稿者/ Jitta (86回)-(2013/11/02(Sat) 18:43:15)
Jitta さんの Web サイト
No68637 (mark225 さん) に返信
> 他のアプリ(MT4)とのデータ授受にテキスト形式のメモリマップドファイルを検討中でして、調べたところ下記のコードが紹介
> されていましたので試したのですが「MappViewController」と「SMem」が未定義エラーとなり、中身が理解できていませんの
> でこれの解決方法が分かりません。
> 
> また、相手側アプリが書き込みを終了したときにC#側でイベントを発生させることは出来るのでしょうか。
> 
> 対処方法をご教示願います。
> 
> 
> //書き込み
> public void SetTestData(string data)
> {
>  MappViewController MappViewAccessor = new MappViewController(SMem);	// マップビューアクセスクラスを生成
>  SMem.OpenMapView_Write();	// マップビューオープン<書き込み用>
>  int index = 0;	 // インデックス
>  MappViewAccessor.SetStringData(ref index, data, "shift_jis");	 // メモリマップドファイルへデーター書き込み
>  SMem.CloseMapView();	 // マップビュークローズ
> }
> 
> //読み出し
> public string GetTestData()
> {
>  string data;
>  MappViewController MappViewAccessor = new MappViewController(SMem);	// マップビューアクセスクラスを生成
>  SMem.OpenMapView_Read();	// マップビューオープン<読み込み用>
>  int index = 0;	// インデックス
>  data = MappViewAccessor.GetStringData(ref index, "shift_jis");	// メモリマップドファイルからデーター取得
>  SMem.CloseMapView();	// マップビュークローズ
>  return data;
> }

少なくとも、そのコードが紹介されていたページを紹介してくれないと、何とも言えませんねぇ(^-^;

引用返信 編集キー/
■68640 / inTopicNo.3)  Re[1]: テキスト形式のメモリマップドファイルについて
□投稿者/ Azulean (229回)-(2013/11/02(Sat) 19:16:17)
No68637 (mark225 さん) に返信
> 他のアプリ(MT4)とのデータ授受にテキスト形式のメモリマップドファイルを検討中でして、調べたところ下記のコードが紹介
> されていましたので試したのですが「MappViewController」と「SMem」が未定義エラーとなり、中身が理解できていませんの
> でこれの解決方法が分かりません。

未定義エラーなのですから、定義されていないのでしょう。
ヘルプや MSDN を検索すればわかりますが、MappViewController も SMem も .NET Framework のクラスやメンバーではありませんので、その出展を調べることが必要でしょう。

ところで、このページを見られているのでしょうか。
http://note.chiebukuro.yahoo.co.jp/detail/n177458

上の方で「元のページ」というようにリンクがついていますので、そちらから必要なソースコードを入手してください。


> また、相手側アプリが書き込みを終了したときにC#側でイベントを発生させることは出来るのでしょうか。

相手側アプリが修正可能であるならば、何らかの手立てはあるかもしれません。
そもそも、修正可能なら、メモリマップドファイルを使うという案も見直し可能ではあります。
(相手が .NET Framework アプリなら WCF や .NET Remoting の方がよいかもしれません)

相手がネイティブアプリならウィンドウメッセージか、イベントオブジェクト(.NET で言うところの ManualResetEvent など)で書き込み完了を知ることができるようにする必要があるかもしれません。
引用返信 編集キー/
■68641 / inTopicNo.4)  Re[2]: テキスト形式のメモリマップドファイルについて
□投稿者/ mark225 (3回)-(2013/11/02(Sat) 20:24:22)
No68639 (Jitta さん) に返信

> 少なくとも、そのコードが紹介されていたページを紹介してくれないと、何とも言えませんねぇ(^-^;
>
どうも失礼しました。m(__)m

Azuleanさんのご指摘のとおり、http://note.chiebukuro.yahoo.co.jp/detail/n177458でした。

引用返信 編集キー/
■68642 / inTopicNo.5)  Re[2]: テキスト形式のメモリマップドファイルについて
□投稿者/ mark225 (4回)-(2013/11/02(Sat) 20:31:14)
No68640 (Azulean さん) に返信
> ■No68637 (mark225 さん) に返信

> 未定義エラーなのですから、定義されていないのでしょう。
> ヘルプや MSDN を検索すればわかりますが、MappViewController も SMem も .NET Framework のクラスやメンバーではありませんので、その出展を調べることが必要でしょう。
>
> ところで、このページを見られているのでしょうか。
> http://note.chiebukuro.yahoo.co.jp/detail/n177458
>
> 上の方で「元のページ」というようにリンクがついていますので、そちらから必要なソースコードを入手してください。
>
>
>>また、相手側アプリが書き込みを終了したときにC#側でイベントを発生させることは出来るのでしょうか。
>
> 相手側アプリが修正可能であるならば、何らかの手立てはあるかもしれません。
> そもそも、修正可能なら、メモリマップドファイルを使うという案も見直し可能ではあります。
> (相手が .NET Framework アプリなら WCF や .NET Remoting の方がよいかもしれません)
>
> 相手がネイティブアプリならウィンドウメッセージか、イベントオブジェクト(.NET で言うところの ManualResetEvent など)で書き込み完了を知ることができるようにする必要があるかもしれません。

いろいろとアドバイスを頂き、有り難うございました。

私は「メモリマップドファイル」しか頭にありませんでしたが幾つもの選択肢があるのですね。勉強になりました。
頂いたヒントを元に調べてみたいと思います。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -