質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Xamarin

Xamarin(ザマリン)は、iPhoneなどのiOSやAndroidで動作し、C# 言語を用いてアプリを開発できるクロスプラットフォーム開発環境です。Xamarin Studioと C# 言語を用いて、 iOS と Android の両方の開発を行うことができます。

Q&A

解決済

1回答

1069閲覧

Xamarin.Formsで既存のc++ライブラリを呼び出したい

crew8573

総合スコア33

Xamarin

Xamarin(ザマリン)は、iPhoneなどのiOSやAndroidで動作し、C# 言語を用いてアプリを開発できるクロスプラットフォーム開発環境です。Xamarin Studioと C# 言語を用いて、 iOS と Android の両方の開発を行うことができます。

0グッド

0クリップ

投稿2018/06/26 14:34

Xamarin.Formsにて、既存のc++ライブラリを呼び出したいです。

c++で記述済みのプロジェクトがあり、このプロジェクトの出力は.dllになります。
Xamarin.Formsの.Net standardのソリューションでは、ソリューションに上記のc++プロジェクトを追加したのですが、
Xamarin.Androidプロジェクトからc++プロジェクトを呼び出すことができません。

同じソリューションに"C++の共有ダイナミックプロジェクト(Android)"を新規追加すれば、
プロジェクトを参照できます。
既存のc++プロジェクトを呼び出す場合にも何か設定が必要なのでしょうか?

Xamarin.Androidプロジェクト内部からのc++プロジェクトの呼び出しは以下のHPを参照しています。
https://qiita.com/TackKaiware/items/27ebcf10bb2624db197a

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

その参照しているページは普通のWindows用C++ライブラリの作り方です。
AndroidやiOSでは動きません。
x86やx64のDLLしかビルドされないです。
Android等で動かすにはarmeabiやarmeabi-v7a用等のDLLも必要です。
それを作るにはおっしゃる通り"C++の共有ダイナミックプロジェクト(Android)"を使う必要があります。
つまり、"C++の共有ダイナミックプロジェクト(Android)"を作って、元のプロジェクトから
中身を移植するのが手っ取り早いと思います。

参考ページ
Build and Debug C++ Libraries in Xamarin.Android Apps with Visual Studio 2015

投稿2018/06/27 06:03

sh_akira

総合スコア380

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

crew8573

2018/06/27 13:36

なるほど。 大変参考になりました。ありがとうございます! ちなみに、参考ページのサンプルだと関数の呼び出し処理しか書かれていないのですが、クラスを呼び出したい場合はどのように定義すればよいのでしょうか? 参考になりそうなサイト等があれば教えていただきたいです。
sh_akira

2018/06/28 07:07

詳細は長くなるので「C# C++ クラス」とかで検索してもらうとして、 C#からC++のクラスを呼び出すことはお勧めできません。大変です。 なので関数の呼び出し処理しか書かれていない場合がほとんどじゃないでしょうか。
crew8573

2018/06/30 13:30

ありがとうございます。 関数として呼び出せるようにまずは調べてみます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問