そこで、次のテストプロジェクトを作成しました。
[DllImportAttribute("TestMFCDLL.dll", CallingConvention = CallingConvention.Cdecl)]
internal static extern int test(int number);
private void button1_Click(object sender, EventArgs e)
{
int x = test(5);
}
これは、関数テストが定義されているMFC dllで正常に機能しますが、実際に使用しているのは、すべて共通のエントリ関数を共有し、入力に基づいて異なる方法で実行される多くのMFCdllです。だから基本的に私はコンパイル時に名前が何であるかを知ることができないたくさんのdllを持っています、私はそれらがこのプログラムのセットアップ方法と同様の機能を持っていることを知っています、実行時の知識に基づいてdllをインポートする方法はありますか?これを行うだけでエラーが返されます。
static string myDLLName = "TestMFCDLL.dll";
[DllImportAttribute(myDLLName, CallingConvention = CallingConvention.Cdecl)]
属性の引数は、定数式、typeof式、または属性パラメータータイプの配列作成式である必要があります。