6

私は 2 つの部分からなるライブラリを持っています - P/Invokesをネイティブのサード パーティ dll にする 1 つの .net アセンブリです。デスクトップ モードでは、これは問題なく動作します。ただし、Metro スタイル アプリからアセンブリを参照して実行するとSystem.DllNotFoundExceptionP/Invokeで「DLL 'ライブラリ' を読み込めません: 指定されたモジュールが見つかりませんでした。 "

ネイティブ dll は特別なことは何もしませんが、サーバーへの発信 TCP/IP 接続のみを作成します。システムはこれを認識できませんが、ネイティブ dll は何でもできます。これが、これを行うことができない可能性があると私が疑う理由です。

いくつかの dll 検索順序は、MSDN で Metro スタイル アプリに関して言及されており、ネイティブdll をロードできることを示唆していますか?

また、msdn で「ライブラリ」のロードについて話しているこのリンクを見つけ、マニフェスト ファイルに PackageDependencyについて言及していますが、 P/Invokeが可能な方法でネイティブ dll をパッケージに追加する方法はまだ不明です。

4

2 に答える 2

0

プロジェクトに追加します(プロジェクトを右クリック、追加、既存のアイテム)。そのアイテムのプロパティで、コンテンツがTrueに設定されていることを確認します(デフォルトではfalseです)。ビルドします。

于 2011-10-18T21:08:23.713 に答える
0

これはおそらく設計によるものです。LoadLibraryから返されるエラー コード 126 のエラーが原因で問題が発生している可能性があります。アプリケーションをデスクトップ モードで実行する場合は、アプリケーションのデスクトップ モードをターゲットにする必要があります。以前のバージョンの Windows も使用できます。

于 2014-07-02T18:13:20.660 に答える