Submit Search
Upload
C++からC#まで Visual Studio 縛り (で死ぬ実験)
•
Download as PPTX, PDF
•
1 like
•
5,980 views
T
Takashi Kawasaki
Follow
Visual Studio だけで C++/C# を使ってマルチプラットフォーム開発する!実験。
Read less
Read more
Engineering
Report
Share
Report
Share
1 of 19
Download now
Recommended
Xamarin バッドノウハウ大全
Xamarin バッドノウハウ大全
Yoshito Tabuchi
Win/Mac/Android/iOS向けクロスプラットフォーム開発にXamarinがうまくハマりそうだった話
Win/Mac/Android/iOS向けクロスプラットフォーム開発にXamarinがうまくハマりそうだった話
Takuya Kikuchi
Visual Studio + xamarin で始めるモバイル アプリ開発
Visual Studio + xamarin で始めるモバイル アプリ開発
インフラジスティックス・ジャパン株式会社
C#でのクロスプラットフォーム モバイル開発環境 Xamarin のご紹介
C#でのクロスプラットフォーム モバイル開発環境 Xamarin のご紹介
Yoshito Tabuchi
Xamarin開発環境の選択
Xamarin開発環境の選択
Miho Kurosawa
Developers.io.札幌 xamarinってどうよ
Developers.io.札幌 xamarinってどうよ
Shinichi Hirauchi
Xamarin の救世主 Unity !
Xamarin の救世主 Unity !
Tatsuji Kuroyanagi
わんくま名古屋 #38 (20160521) Xamarin入門
わんくま名古屋 #38 (20160521) Xamarin入門
Yasuhiko Yamamoto
Recommended
Xamarin バッドノウハウ大全
Xamarin バッドノウハウ大全
Yoshito Tabuchi
Win/Mac/Android/iOS向けクロスプラットフォーム開発にXamarinがうまくハマりそうだった話
Win/Mac/Android/iOS向けクロスプラットフォーム開発にXamarinがうまくハマりそうだった話
Takuya Kikuchi
Visual Studio + xamarin で始めるモバイル アプリ開発
Visual Studio + xamarin で始めるモバイル アプリ開発
インフラジスティックス・ジャパン株式会社
C#でのクロスプラットフォーム モバイル開発環境 Xamarin のご紹介
C#でのクロスプラットフォーム モバイル開発環境 Xamarin のご紹介
Yoshito Tabuchi
Xamarin開発環境の選択
Xamarin開発環境の選択
Miho Kurosawa
Developers.io.札幌 xamarinってどうよ
Developers.io.札幌 xamarinってどうよ
Shinichi Hirauchi
Xamarin の救世主 Unity !
Xamarin の救世主 Unity !
Tatsuji Kuroyanagi
わんくま名古屋 #38 (20160521) Xamarin入門
わんくま名古屋 #38 (20160521) Xamarin入門
Yasuhiko Yamamoto
Xamarin から使う Azure
Xamarin から使う Azure
Yoshito Tabuchi
Realm Mobile Platform 概要
Realm Mobile Platform 概要
Yoshito Tabuchi
NET Standard と Xamarin
NET Standard と Xamarin
Yoshito Tabuchi
Xamarinの歩き方
Xamarinの歩き方
Yoshito Tabuchi
20171202 Xamarinの歩き方
20171202 Xamarinの歩き方
Yoshito Tabuchi
Prism.Formsについて
Prism.Formsについて
一希 大田
Xamarin 概要~Windows Embedded の業務用端末から Android へのシームレスな移行~
Xamarin 概要~Windows Embedded の業務用端末から Android へのシームレスな移行~
Yoshito Tabuchi
続Xamarinはじめました
続Xamarinはじめました
Yuya Yamaki
Xamarin.Forms アプリケーション 設計パターン
Xamarin.Forms アプリケーション 設計パターン
一希 大田
Xamarin の特徴と開発手法概要
Xamarin の特徴と開発手法概要
Yoshito Tabuchi
Xamarin 20141212 モバイルカフェスペシャル 「C#で作るiOS/Androidのクロスプラットフォームスマホアプリ開発」
Xamarin 20141212 モバイルカフェスペシャル 「C#で作るiOS/Androidのクロスプラットフォームスマホアプリ開発」
Yoshito Tabuchi
ゆるふわ Xamarin Tips
ゆるふわ Xamarin Tips
Daiki Kawanuma
Xamarin 101 ~環境構築からビルド・テストまで~
Xamarin 101 ~環境構築からビルド・テストまで~
Masaki Takeda
ちょっとエモい話
ちょっとエモい話
Yoshito Tabuchi
Xamarin + Visual Studio によるマルチプラットフォーム対応アプリ開発 - iOS, Android, Windows に対応しよう
Xamarin + Visual Studio によるマルチプラットフォーム対応アプリ開発 - iOS, Android, Windows に対応しよう
Akira Onishi
Xamarin概要と活用方法
Xamarin概要と活用方法
Yoshito Tabuchi
Xamarin で今日から始めるクロスプラットフォーム開発
Xamarin で今日から始めるクロスプラットフォーム開発
友太 渡辺
この辺でXamarin導入による 効果と限界をしっかり把握してみよう MVP Community Camp 2015
この辺でXamarin導入による 効果と限界をしっかり把握してみよう MVP Community Camp 2015
Shinichi Hirauchi
Xamarin.Forms概要
Xamarin.Forms概要
Hironov OKUYAMA
インフラジスティックスおよび Xamarin.Forms コントロールのご紹介
インフラジスティックスおよび Xamarin.Forms コントロールのご紹介
インフラジスティックス・ジャパン株式会社
20140830 2014年版 C #でできること
20140830 2014年版 C #でできること
Takayoshi Tanaka
20150127 jawsug京王線 ec2_config
20150127 jawsug京王線 ec2_config
Takayoshi Tanaka
More Related Content
What's hot
Xamarin から使う Azure
Xamarin から使う Azure
Yoshito Tabuchi
Realm Mobile Platform 概要
Realm Mobile Platform 概要
Yoshito Tabuchi
NET Standard と Xamarin
NET Standard と Xamarin
Yoshito Tabuchi
Xamarinの歩き方
Xamarinの歩き方
Yoshito Tabuchi
20171202 Xamarinの歩き方
20171202 Xamarinの歩き方
Yoshito Tabuchi
Prism.Formsについて
Prism.Formsについて
一希 大田
Xamarin 概要~Windows Embedded の業務用端末から Android へのシームレスな移行~
Xamarin 概要~Windows Embedded の業務用端末から Android へのシームレスな移行~
Yoshito Tabuchi
続Xamarinはじめました
続Xamarinはじめました
Yuya Yamaki
Xamarin.Forms アプリケーション 設計パターン
Xamarin.Forms アプリケーション 設計パターン
一希 大田
Xamarin の特徴と開発手法概要
Xamarin の特徴と開発手法概要
Yoshito Tabuchi
Xamarin 20141212 モバイルカフェスペシャル 「C#で作るiOS/Androidのクロスプラットフォームスマホアプリ開発」
Xamarin 20141212 モバイルカフェスペシャル 「C#で作るiOS/Androidのクロスプラットフォームスマホアプリ開発」
Yoshito Tabuchi
ゆるふわ Xamarin Tips
ゆるふわ Xamarin Tips
Daiki Kawanuma
Xamarin 101 ~環境構築からビルド・テストまで~
Xamarin 101 ~環境構築からビルド・テストまで~
Masaki Takeda
ちょっとエモい話
ちょっとエモい話
Yoshito Tabuchi
Xamarin + Visual Studio によるマルチプラットフォーム対応アプリ開発 - iOS, Android, Windows に対応しよう
Xamarin + Visual Studio によるマルチプラットフォーム対応アプリ開発 - iOS, Android, Windows に対応しよう
Akira Onishi
Xamarin概要と活用方法
Xamarin概要と活用方法
Yoshito Tabuchi
Xamarin で今日から始めるクロスプラットフォーム開発
Xamarin で今日から始めるクロスプラットフォーム開発
友太 渡辺
この辺でXamarin導入による 効果と限界をしっかり把握してみよう MVP Community Camp 2015
この辺でXamarin導入による 効果と限界をしっかり把握してみよう MVP Community Camp 2015
Shinichi Hirauchi
Xamarin.Forms概要
Xamarin.Forms概要
Hironov OKUYAMA
インフラジスティックスおよび Xamarin.Forms コントロールのご紹介
インフラジスティックスおよび Xamarin.Forms コントロールのご紹介
インフラジスティックス・ジャパン株式会社
What's hot
(20)
Xamarin から使う Azure
Xamarin から使う Azure
Realm Mobile Platform 概要
Realm Mobile Platform 概要
NET Standard と Xamarin
NET Standard と Xamarin
Xamarinの歩き方
Xamarinの歩き方
20171202 Xamarinの歩き方
20171202 Xamarinの歩き方
Prism.Formsについて
Prism.Formsについて
Xamarin 概要~Windows Embedded の業務用端末から Android へのシームレスな移行~
Xamarin 概要~Windows Embedded の業務用端末から Android へのシームレスな移行~
続Xamarinはじめました
続Xamarinはじめました
Xamarin.Forms アプリケーション 設計パターン
Xamarin.Forms アプリケーション 設計パターン
Xamarin の特徴と開発手法概要
Xamarin の特徴と開発手法概要
Xamarin 20141212 モバイルカフェスペシャル 「C#で作るiOS/Androidのクロスプラットフォームスマホアプリ開発」
Xamarin 20141212 モバイルカフェスペシャル 「C#で作るiOS/Androidのクロスプラットフォームスマホアプリ開発」
ゆるふわ Xamarin Tips
ゆるふわ Xamarin Tips
Xamarin 101 ~環境構築からビルド・テストまで~
Xamarin 101 ~環境構築からビルド・テストまで~
ちょっとエモい話
ちょっとエモい話
Xamarin + Visual Studio によるマルチプラットフォーム対応アプリ開発 - iOS, Android, Windows に対応しよう
Xamarin + Visual Studio によるマルチプラットフォーム対応アプリ開発 - iOS, Android, Windows に対応しよう
Xamarin概要と活用方法
Xamarin概要と活用方法
Xamarin で今日から始めるクロスプラットフォーム開発
Xamarin で今日から始めるクロスプラットフォーム開発
この辺でXamarin導入による 効果と限界をしっかり把握してみよう MVP Community Camp 2015
この辺でXamarin導入による 効果と限界をしっかり把握してみよう MVP Community Camp 2015
Xamarin.Forms概要
Xamarin.Forms概要
インフラジスティックスおよび Xamarin.Forms コントロールのご紹介
インフラジスティックスおよび Xamarin.Forms コントロールのご紹介
Similar to C++からC#まで Visual Studio 縛り (で死ぬ実験)
20140830 2014年版 C #でできること
20140830 2014年版 C #でできること
Takayoshi Tanaka
20150127 jawsug京王線 ec2_config
20150127 jawsug京王線 ec2_config
Takayoshi Tanaka
CSS Nite LP26 CodeKitで始める次世代Web制作
CSS Nite LP26 CodeKitで始める次世代Web制作
Maboroshi.inc
C#の強み、或いは何故PHPから乗り換えるのか
C#の強み、或いは何故PHPから乗り換えるのか
Yoshifumi Kawai
そろそろレガシーな.Net開発をやめなイカ?
そろそろレガシーな.Net開発をやめなイカ?
Yuta Matsumura
CEDEC2021 Android iOS 実機上での自動テストをより楽に有意義にする為に ~端末管理・イメージ転送・動画記録等の周辺情報のノウハウ共有~
CEDEC2021 Android iOS 実機上での自動テストをより楽に有意義にする為に ~端末管理・イメージ転送・動画記録等の周辺情報のノウハウ共有~
SEGADevTech
Cloud from Scratch / ゼロからクラウド構築
Cloud from Scratch / ゼロからクラウド構築
Tokyo University of Science
CLR/H 第 79 回勉強会での LT
CLR/H 第 79 回勉強会での LT
Shin-ya Koga
20140517 knockoutjs hands-on
20140517 knockoutjs hands-on
Seiji Noro
Visual Studio Codeを使い倒そう! ~プログラミングから機械学習、クラウド連携、遠隔ペアプロまで~
Visual Studio Codeを使い倒そう! ~プログラミングから機械学習、クラウド連携、遠隔ペアプロまで~
Saki Homma
Wasm blazor and wasi 2
Wasm blazor and wasi 2
Takao Tetsuro
Visual Studio 2019 GA ! ~ 最新情報 & これからの開発スタイル
Visual Studio 2019 GA ! ~ 最新情報 & これからの開発スタイル
Akira Inoue
Xamarin 概要 2014年08月版
Xamarin 概要 2014年08月版
Yoshito Tabuchi
Node.js x Headless Chrome for WeRTC MCU / Node.js x Chrome headless で、お手軽WebR...
Node.js x Headless Chrome for WeRTC MCU / Node.js x Chrome headless で、お手軽WebR...
mganeko
WebAssemblyとBlazor 、WebAssembly System Interfaceでコンテナライズの設計を解説
WebAssemblyとBlazor 、WebAssembly System Interfaceでコンテナライズの設計を解説
Takao Tetsuro
使い倒そうVisual Studio Code!!! ~ここからはじめる基本のキ~
使い倒そうVisual Studio Code!!! ~ここからはじめる基本のキ~
Saki Homma
Microsoft Intelligent Edge Technologies
Microsoft Intelligent Edge Technologies
Takeshi Fukuhara
Visual Studio Codeを使い倒そう! ~プログラミングから機械学習、クラウド連携、遠隔ペアプロまで~
Visual Studio Codeを使い倒そう! ~プログラミングから機械学習、クラウド連携、遠隔ペアプロまで~
Saki Homma
VSCodeで始めるAzure Static Web Apps開発
VSCodeで始めるAzure Static Web Apps開発
Yuta Matsumura
~ Build と言えば やっぱり Developer! ~ Microsoft 開発ツール最新アップデート
~ Build と言えば やっぱり Developer! ~ Microsoft 開発ツール最新アップデート
Akira Inoue
Similar to C++からC#まで Visual Studio 縛り (で死ぬ実験)
(20)
20140830 2014年版 C #でできること
20140830 2014年版 C #でできること
20150127 jawsug京王線 ec2_config
20150127 jawsug京王線 ec2_config
CSS Nite LP26 CodeKitで始める次世代Web制作
CSS Nite LP26 CodeKitで始める次世代Web制作
C#の強み、或いは何故PHPから乗り換えるのか
C#の強み、或いは何故PHPから乗り換えるのか
そろそろレガシーな.Net開発をやめなイカ?
そろそろレガシーな.Net開発をやめなイカ?
CEDEC2021 Android iOS 実機上での自動テストをより楽に有意義にする為に ~端末管理・イメージ転送・動画記録等の周辺情報のノウハウ共有~
CEDEC2021 Android iOS 実機上での自動テストをより楽に有意義にする為に ~端末管理・イメージ転送・動画記録等の周辺情報のノウハウ共有~
Cloud from Scratch / ゼロからクラウド構築
Cloud from Scratch / ゼロからクラウド構築
CLR/H 第 79 回勉強会での LT
CLR/H 第 79 回勉強会での LT
20140517 knockoutjs hands-on
20140517 knockoutjs hands-on
Visual Studio Codeを使い倒そう! ~プログラミングから機械学習、クラウド連携、遠隔ペアプロまで~
Visual Studio Codeを使い倒そう! ~プログラミングから機械学習、クラウド連携、遠隔ペアプロまで~
Wasm blazor and wasi 2
Wasm blazor and wasi 2
Visual Studio 2019 GA ! ~ 最新情報 & これからの開発スタイル
Visual Studio 2019 GA ! ~ 最新情報 & これからの開発スタイル
Xamarin 概要 2014年08月版
Xamarin 概要 2014年08月版
Node.js x Headless Chrome for WeRTC MCU / Node.js x Chrome headless で、お手軽WebR...
Node.js x Headless Chrome for WeRTC MCU / Node.js x Chrome headless で、お手軽WebR...
WebAssemblyとBlazor 、WebAssembly System Interfaceでコンテナライズの設計を解説
WebAssemblyとBlazor 、WebAssembly System Interfaceでコンテナライズの設計を解説
使い倒そうVisual Studio Code!!! ~ここからはじめる基本のキ~
使い倒そうVisual Studio Code!!! ~ここからはじめる基本のキ~
Microsoft Intelligent Edge Technologies
Microsoft Intelligent Edge Technologies
Visual Studio Codeを使い倒そう! ~プログラミングから機械学習、クラウド連携、遠隔ペアプロまで~
Visual Studio Codeを使い倒そう! ~プログラミングから機械学習、クラウド連携、遠隔ペアプロまで~
VSCodeで始めるAzure Static Web Apps開発
VSCodeで始めるAzure Static Web Apps開発
~ Build と言えば やっぱり Developer! ~ Microsoft 開発ツール最新アップデート
~ Build と言えば やっぱり Developer! ~ Microsoft 開発ツール最新アップデート
C++からC#まで Visual Studio 縛り (で死ぬ実験)
1.
C++からC#まで Visual Studio 縛り (で死ぬ実験) 川崎
高志 @espresso3389 2016/5/7
2.
自己紹介 川崎 高志 Twitter: @espresso3389 Blog:
http://espresso3389.hatenablog.com/ クミナス株式会社 代表取締役社長 画像圧縮技術, PDF関連技術, セキュリティ関連技術
3.
Visual C++ for
Cross-Platform Mobile Development • Visual Studio 2015 • clang ベースのビルドチェーン • Android NDK • ARM/ARM64/x86/x86_x64 • iOSはvcremote (ビルド用のMacが必要) https://msdn.microsoft.com/ja-jp/library/dn707591.aspx
4.
vcremote@Mac • インストール • PIN生成 •
起動 sudo npm install -g npm@2.6.0 sudo npm install -g --unsafe-perm vcremote vcremote generateClientCert … Host Name: minipresso.local Port: 3030 Secure: [x] Pin: 107453 Cross Platform > C++ > iOS > Pairing vcremote https://msdn.microsoft.com/en-us/library/mt147405(v=vs.140).aspx
5.
vcremote@Mac • ターミナル上で起動しっぱなしにしておく • ちょくちょく死ぬ
6.
C++プロジェクト作成 • Visual C++
> Cross Platform -> Shared Library (Android, iOS)
7.
C# (Xamarin)プロジェクト作成 • Visual
C# > Cross-Platform -> Blank App (Xamarin.Forms Shared)
8.
C++ と C#
が仲良く並びます ※Windows系はさっくり削除しました
9.
Androidのプロジェクト設定 • XamApp.Droid に
C++ 側のプロジェクトへの参照を追加
10.
C++側 #include <stdio.h> #include <stdlib.h> #if
defined(__ANDROID__) const char* const ModuleName = "CppModule.Android"; #elif defined(__APPLE__) const char* const ModuleName = "CppModule.iOS"; #endif extern "C" const char* AllocCppString() { char* p = NULL; asprintf(&p, "Hello, Xamarin! This is %s", ModuleName); return p; } extern "C" void FreeCppString(const char* str) { free((void*)str); }
11.
C#側 public App () { MainPage
= new ContentPage { Content = new StackLayout { VerticalOptions = LayoutOptions.Center, Children = { new Label { XAlign = TextAlignment.Center, Text = GetCppString() } } } }; } public class App : Application { #if __IOS__ public const string CPPMODULENAME = "__Internal"; #elif __ANDROID__ public const string CPPMODULENAME = "libCppModule.so"; #endif [DllImport(CPPMODULENAME)] static extern IntPtr AllocCppString(); [DllImport(CPPMODULENAME)] static extern void FreeCppString(IntPtr str); static string GetCppString() { var p = AllocCppString(); var s = Marshal.PtrToStringAnsi(p); FreeCppString(p); return s; } ...
12.
Android Windowsで動くシミュレーターは 多分、全部、x86
13.
iOS • Xamarin.iOSのプロジェクトで、C++側のプロジェクトを参照し てみる
14.
iOS • iOSライブラリは、Macのビルドホスト側に出来る… • このパスをどうやってXamarin.iOSのプロジェクトで参照する? →ハードコードするしかない? •
複数のライブラリをlipoしたい…→無理じゃね? CppModule.iOS.vcxproj -> host: minipresso.local output: /Users/kawasaki/vcremote/C/VsShibari/bin/Debug/CppModule.iOS/x86//libCppModule.iOS.a BUILT_PRODUCTS_DIR ""
15.
iOS • Xamarin.iOSの設定 • iPhoneSimulatorはx86だけで逃げる -gcc_flags "-L/Users/kawasaki/vcremote/VsShibari/bin/Debug/CppModule.iOS/x86 -lCppModule.iOS
-force_load /Users/kawasaki/vcremote/VsShibari/bin/Debug/CppModule.iOS/x86/libCppModule.iOS.a"
16.
iOS
17.
iPhoneSimultorで動いた • 環境によっては、x64じゃないと 逆に動かないかも(試してない)
18.
結論/課題 • Androidは、本当は、複数のアーキテクチャのライブラリをapk に同梱しないといけない • ARM,
ARM64, x86, x86_64 • iOSは、本当は、複数のアーキテクチャのライブラリをlipoした ものをリンクしないといけない • ARM, ARM64 • x86, x86_64 for iPhoneSimlulator • 単一のsln(ソリューション)でビルドするのには無理がある。 →バッチファイルか何かを書く羽目になるのでは…
19.
コード • GitHub https://github.com/espresso3389/VsShibari
Download now