作者followaymis (abcde)
看板C_Sharp
標題[問題] 求救!!exe與dll傳遞變數的問題..
時間Tue Oct 7 22:01:19 2008
各位好,小弟最近在研究有關動態載入dll的問題,
首先,我有四個專案分別是DllImport,MessageBox1,MessageBox2,MessageBox3
DllImport是主程式(exe),其餘三個分別是form,
其功能是按下按鈕會跳出一個MessageBox視窗
這三個MessageBox compile成dll後,為了使用動態載入,我就沒有加入reference
是用以下程式碼動態載入:
private void button1_Click(object sender, EventArgs e)
{
Assembly ass = Assembly.LoadFrom(@"D:\project\DynamicDll\MessageBox1\bin\Debug\MessageBox1.dll"); //利用dll的路徑加載
Type type = ass.GetType("MessageBox1.test1");
Object obj = Activator.CreateInstance(type, null);
Form f = (Form)obj;
f.Show();
}
而我這個主程式的內容是按下button1,會動態的使用MessageBox1.dll,
這方面沒問題,在f.show()時會順利產生MessageBox1的畫面,此畫面
為一個Form,上面有一個按鈕,按下去會出現一個訊息視窗
問題來了,如果當我一直按DllImport主程式的按鈕,就會一直出現MessageBox1的畫面
我想等MessageBox1的form被關閉了,按下DllImport的按鈕才會有效,就是有點
singleton的概念,我的想法是用個變數去紀錄MessageBox1的form何時被關閉
然後通知DllImport主程式,但我不知道exe與dll之間怎麼傳遞變數
還是這種問題有別種做法,可以請有經驗的高手給我點意見嗎??
謝謝各位了!!!!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 203.70.143.133
→ EricTsai:一樣Reflection啊 10/07 22:41
→ followaymis:樓上,可以說詳細一點嗎? 10/07 23:20