2011-01-06 3 views
1

MIDIシーケンサーで使用するプラグインをいくつかコーディングしようとしていますが、障害が発生しました。メモリを共有する複数の.dllインスタンスが存在する可能性があるため、グローバルスコープ変数を使用して情報を格納することはできません。機能終了時に破棄されない非グローバル変数を作成して読み込むにはどうすればよいですか?

2次元配列と関数間でコンテンツを共有するその他の変数を含むクラス(他のプラグインでは再利用性のために)を作成するにはどうすればよいですか?可能であれば、処理を行うフレームワーク内の関数からデータを読み書きする方法はありますか?

答えて

0

staticのキーワードをお探しですか?

static int i = 1; //this keeps its value at each call 
1

「DLLの複数のインスタンス」とはどういう意味ですか? Win32では、すべてのプロセスに専用のアドレス空間があり、グローバル変数を持つDLLはプロセスに固有のものです。 DLLは、同じプロセスに複数回ロードすることはできません。

悪い昔のWin16では、DLLのグローバル変数スペースがプロセス間で共有され、頭痛の終わりはありませんでした。

+0

はい、申し訳ありませんが、私はより具体的にすべきでした。 GUI要素のような共通のものを再ロードするのを避けるため、リソースはこのフレームワークと意図的に共有されます。 –

0

それはそれだけでプラグインクラスのクラス宣言で必要な変数を宣言するために必要なC++バージンエラーどこだったことが判明。

ありがとうございました。あらゆる種類のポインタを引数として持つクラスから情報を取得する方法についての質問が返ってくるかもしれません。

お待ちください! :)

関連する問題