UnmanagedなDLLの読み込み
http://d.hatena.ne.jp/yaneurao/20060315#p1
すっかり出遅れたので、自分の日記で。
UnmanagedなDLLは.NETの管轄外なので、完全にコントロールするのは無理です。そこでCLRホスティング・・・とか言いたいところですが、そうするとWin32どっぷりになり、Linux/Macで動作させることが困難になります。再コンパイルが許されるのなら、ソース上にざっくり書いてしまうのも一つの手です。
using System; using System.Runtime.InteropServices; class Program { const string DLL = @"lib\func.dll"; [DllImport(DLL)] public static extern int Add(int x, int y); [DllImport(DLL)] public static extern int Sub(int x, int y); public static void Main () { Console.WriteLine (Add(10, 20)); Console.WriteLine (Sub(10, 20)); } }
うわっローテク。オッカムの剃刀で問題を削りすぎたか!(^^;
ところで、DllImportに渡すDLL名をリソースから引っ張る事って出来ましたっけ? もし可能なら埋め込みリソースの書き換えにした方がスマートですね。