※ ChatGPTを利用し、要約された質問です(原文:DLLから他のプロジェクト変数の参照方法???)
DLLから他のプロジェクト変数の参照方法???
このQ&Aのポイント
C#のWindowsフォームアプリケーションで、別のプロジェクトの変数をDLLから参照する方法を教えてください。
質問者は、親プログラムの中に定義された変数を子プログラムから参照していましたが、今回はDLLで別のプロジェクトを作成する必要があります。
DLL内でCommonData.BoolDataを参照する方法について、本番ではWindowsフォームアプリケーションのFormMain.cs内で定義されているCommonData.BoolDataを参照する必要があります。最新の状態を参照したい場合、DLLが起動される度に変数の値を更新する必要があります。
C#でWindowsフォームのアプリケーションを作りました
構成は親のフォームのプログラムFormMain.csと5ケの子供プログラムFormSub1~5.csです
データの受渡しは親プログラムの中に
class CommonData
{
static public bool BoolData = true;
static public int IntData = 1;
static public string StringData = "冬が来ました";
}
を作り、子供プログラムの中で
if (CommonData.BoolData == false) .........
int j = CommonData.IntData;
CommonData.StringData = "きっと春も来るでしょう";
などとやっておりました
ところが今回事情があり、Windowsフォームのアプリケーションのプロジェクトとは別プロジェクトとして.NET C++でDLLを作らなくてはならなくなりました
サンプル等を参照して何とかDLLを作り動かしましたが、DLLの中で上述のCommonData.BoolDataを参照しなくてはなりません
デバックではDLLの中でCommonData.BoolDataに変わる固定値を臨時に設定してロジックを検証しました
ところが本番ではWindowsフォームのアプリケーションのFormMain.csの中に規定されたCommonData.BoolDataを参照しなくてはなりません
DLL側でどのようにすれば良いのでしょうか?
なおCommonData.BoolDataのtrue、falseは時々刻々変化しますので、DLLが起動される度に最新の状態を参照したいのです
お礼
ありがとうございます お教えに従い色々トライしてみましたが、現在のところ上手くいきません 仕方がないので臨時的ににRegistry渡しにしています でもこれでは秘密保持上問題です 一般使用する際には絶対的にメモリー参照方式に切り替えなくてはなりません 今後もトライを続けますので宜しくご指導願います ありがとうございました