サードパーティの DLL を使用するアプリケーションがあります。Visual Studio for Mac で、Windows と同じ方法でアクセスするアプリケーションを作成する方法はありますか?
2 に答える
場合によります:
- マネージド .NET DLL: Windows 上の VS と同じ方法でインポートして使用できます
- ネイティブ DLL: 直接使用できません。あなたの場合はOSXであるターゲットシステム用にビルドする必要があります。
C/C++ コードがある場合、外部 (Windows) プラットフォーム固有のコードがなければ、OSX (GCC など) 用にビルドできるはずです。その後、コンパイルされた *.so / *.dylib ファイルを直接使用できます。ただし、DllMap 構成ファイルを使用して別のファイルを使用するように .NET ランタイム (OSX の場合は Mono) に指示する必要があります ( http://www.mono-project.com/docs/advanced/pinvoke/dllmap/を参照)。例えば)。
リンクしたソースは Unix 用のように見えるので、OSX でビルドできる可能性はかなり高いです (Makefile があり、結果のバイナリは Unix では libswe.so になります)。パラメータを GCCに渡して-dynamiclib
、OSX 固有の libswe.dylib を取得することもできます ( osx での .so と .dylib の違いは何ですか?は dylib に関する良い答えのようです) 。
OSX 用の DLL のバイナリがある場合は、次のような .NET アプリケーション用の構成ファイルが必要です。
<configuration>
<dllmap os="osx" dll="libswe.dll" target="libswe.dylib"/>
<configuration/>
現在のOSがOSXlibswe.dylib
の場合ではなく、シンボルをインポートするように.NETランタイムに指示します。libswe.dll