2

バージョン管理の理由から、次のように、実行時にファイル名が決定されるネイティブ C++ dll で p/invoke を使用できると便利です。

[DllImport(myDllFilename)]
private static extern void MyInvokedMethod();

残念ながら[DllImport]、 は属性であり、定数式が必要です。このエラーを回避するための他のオプションはありますか?

異なるフォルダーで同じ名前のファイルを使用し、実行時に正しいファイルをロードできることは承知していますが、異なる名前のファイルを使用できることが私の場合には理想的です。

4

2 に答える 2

3

回避策はありません。LoadLibrary と GetProcAddress を使用する必要があります。それはまったく面白くないので、可能であればその方法は避けたいと思います。

于 2012-04-28T21:23:50.080 に答える
1

必要なものを実現するには、いくつかのことを PInvoke する必要があります (LoadLibraryおよびGetProcAddress- 以下のリンクを参照)...「レイト バインディング ネイティブ コード」と呼ばれます...これを使用するのは簡単ではありません/推奨されますが、可能です...

説明、サンプル、ソース コードの関連リンク:

于 2012-04-28T21:26:22.493 に答える