2016-11-30 9 views
3

サードパーティのDLLを使用するアプリケーションがあります。 Visual Studio for Macには、Windows上と同じ方法でMacにアクセスするためのアプリケーションを書く方法がありますか?Visual Studio MacでDLLを使用することは可能ですか

+0

私はVisual Studio for Macが突然、Macintosh上でWindowsバイナリを実行できるようにならないと確信しています。だから...あなたの質問を誤解していない限り、いいえ。 –

+2

サードパーティに連絡して、Mac版のライブラリを要求する必要があります。 –

+0

私はそれを検証することはできませんが、.NETコア/標準DLLが動作するようです。 – BradleyDotNET

答えて

4

あなたは、Windowsのカウンターパートと同じ名前を持つIDEを持っているので、それが生成するバイナリが譲渡することはできませんと思うかもしれませんが。そのことについてはOS X、Linux、または任意のPOSIXには本当のDLLはありません

answer on Super Userは、いくつかのより多くの情報を提供します。 彼らは差別化をしません。

なぜですか?

多くのMacのものは自己完結型です(.appは実際には というフォルダです)。けれども

...

Another queston on SOは同じことを尋ねると、答えは言う:

は最後に、マイクロソフトは完全にプラットフォーム 独立しており、.NETのコアをリリースしました。

... .NETアプリケーションは、MacまたはLinuxマシン で開発できます。Visual StudioコードとVisual Studio for Macを使用してください。 MacOS XのMonoが統合されているところでIDEがリリースされました。

したがって、使用するライブラリ(DLL)のサプライヤが.NET Coreフレームワークを使用してそのバージョンを作成している場合は、運が良いかもしれません。

3

それが依存:

  1. マネージド.NETのDLL: をインポートし、Windows
  2. にVSのようにネイティブのDLLを同じように使用することができます直接使用することはできません。あなたのターゲットシステム、OSXのためにそれを構築する必要があります。

外国語(Windows)プラットフォーム固有のコードがない場合、C/C++コードを使用している場合は、OSX(GCCなど)用にビルドすることができます。コンパイルされた* .so/* .dylibファイルを直接使用することができます。しかし、DllMap設定ファイル(例としてhttp://www.mono-project.com/docs/advanced/pinvoke/dllmap/を参照)を使用して別のファイルを使用するには、.NETランタイム(OSXの場合はMono)に指示する必要があります。

あなたがリンクしたソースはUnixのように見えるので、OSXでビルドできるチャンスはかなりあります(Makefileがあり、バイナリはUnixではlibswe.soです)。あなたはOSXのためのあなたのDLLのバイナリを持っている場合は、あなただけの設定ファイルを必要とする

What are the differences between .so and .dylib on osx?はdylibについての良い答えのようです)OSX特定libswe.dylibを取得するために、GCCへ -dynamiclibパラメータを渡すために試みることができますあなたのための 。このようになります。NETアプリケーション、:

<configuration> 
    <dllmap os="osx" dll="libswe.dll" target="libswe.dylib"/> 
<configuration/> 

現在のOSがOSXある場合はlibswe.dylib代わりのlibswe.dllからシンボルをインポートするには、.NETランタイムに指示します。

関連する問題