初投稿です。プログラミング経験一年で独学してます。
###前提・実現したいこと
プログラミング言語:C#
プラットフォーム:.NET Framework
開発環境:Visual Studio
10秒ごとにソリューション外部のDLLを読んで、その結果をコンソール上に表示した
いです。
呼び出す外部DLLのファイル名は「SampleDll.dll」です。
下記のような手順です。
(1)返り値Trueとする関数Testを持つSampleDLL.dllを作成する
(2)TimerSampleクラス起動
(3)SampleDLL.dllの関数Testの返り値を表示する ※True
(4)返り値Falseとする関数Testを持つSampleDLL.dllと、前述のDllファイルを入れ替
える(Pathは同じ)
(5)10秒後、SampleDLL.dllの関数Testの返り値を表示する ※False
つまり、TimerSampleクラスが読み込むDllファイルを、ファイル名だけ同じにして、
実際の中身を変えたいです。
実現するために、
質問1:上記手順は実現できますか?(実行時リンクというものでしょうか?)
質問2:Dllファイルを読み込むための設定には、VisualStudio上の「参照設定」に
登録が必要ですか?
質問3:Dllファイルを読み込むためのメソッドは何を使えばよいですか?
※ネットを見ると、Importや、Assembly.loadなどがあるようですが、いまいち分か
りません
###該当のソースコード
using System;
using System.Timers;
using System.Runtime.InteropServices;
namespace TimerSample
{
class TimerClass
{
static void Main()
{
TimerClass timerClassInstance = new TimerClass();
timerClassInstance.Run();
}
public void Run() { Timer timer = new Timer(); timer.Elapsed += new ElapsedEventHandler(TimerRunning); timer.Interval = 10000; timer.AutoReset = true; timer.Start(); Console.ReadLine(); // キーが押されるまで実行 } public void TimerRunning(object sender, ElapsedEventArgs e) { Console.WriteLine(DateTime.Now); bool result = false;//ここに外部DLL呼び出し結果を入れる //TODO:10秒ごとに、外部DLLを呼び出し直して、値を知りたい //result = SampleDLL.Test(); のような呼び出し方?? Console.WriteLine("RESULT:{0}", result); //DLLが返す値が変わりう
る
}
}
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。