C++/CX」カテゴリーアーカイブ

Windows ストアアプリから C言語の fopen を利用してローカルファイルを開く方法

久し振りのC言語ですが、ざざっと書き下します。とあるところで調べ始めてちょっと突っ込んだところで、本当にできるのか?ってのを調査している途中です。いや、正直に言うと目的を達する手段としては結構危ういので、まともに C# で書き直すなり別な方法を取ったほうがいいのですが、最初の目論見が達成できるのかを確認しているところ。 C/C++のライブラリをそのまま使う とあるC言語で作ったライブラリがあるとします。デスクトップアプリならば、そのまま静的リンクをするかDLL呼び出しをすれば良い訳で、OpenCVとかその手のC++絡みのライブラリはデスクトップ側で動かします。それを.NETで包むか、iOS内でリンクさせて動かすか、JavaからJNIを通して動かすかは色々と動作環境により方法が違うのですが、Windows ストアアプリ上で動かそうとすると結構な手間です。 ひとつの方法としては、C++/CXで … 続きを読む

カテゴリー: 開発, C#, C++/CX | コメントする

c++/cx metro の場合 mvvm がどのように実装されているか

というメモ書き。 metro application で grid のテンプレートを開くと、Common というフォルダが作られて、その中に ListView を使った mvvm の実装があります。WPF, Siverlight と実装が異なるので、覚え直しになるのか?とうことと、このクラスを使って実装して良いのか?ということがあるのですが、今後なし崩しに活用されそうな予感はします。 Visual Studio 2012 RCのMetro スタイル アプリのテンプレートを見てみる – かずきのBlog@Hatena http://d.hatena.ne.jp/okazuki/20120604/1338821522 のところを参照にして、 ・SampleDataSource.h ・SampleDataSource.cpp ・BindableBase.h ・BindableBase … 続きを読む

カテゴリー: C++/CX | 1件のコメント

[win8] SurfaceImageSource を使って、metro アプリに部分的に DirectX 描画する

[win8] 画像加工をDirectXに任せて、UIはC#にする技 | Moonmile Solutions Blog http://www.moonmile.net/blog/archives/3454 なところで、metro アプリで DirectX を使おうとしていたのですが、もっと良い方法がありました。既に、SurfaceImageSource ということで DirectX を使えるように用意がされているのですね。 わんくま大阪#49の資料 http://jyurimaru.info/data/20120602wankuma_osaka49/20120602_sao.pdf SurfaceImageSource http://blogs.msdn.com/b/windowsappdev_ja/archive/2012/03/22/xaml-directx.aspx DirectX … 続きを読む

カテゴリー: C++/CX, windows 8 | 2件のコメント

[win8] C++/CX から C# が使えるよ、という話

[win8] c++/cx から c# のライブラリは使えない…と思ったが使える | Moonmile Solutions Blog http://www.moonmile.net/blog/archives/3429 のところで「使えない~」ということを確認したかったのですが、「使えるよ」というのを教えて頂きました。 C# のプロジェクト出力で「WinWD ライブラリ」にすると、C++/CX や Javascript から使えるようになります。公開するクラスは sealed、メソッドの引数や戻り値はネイティブの型のみ(だったと思う)しかダメなので、若干制限はありますが、それなりに使えます。と言いますか、結構使えます。 どういう使い方をするかというと、 C++/CX では .NET Framework が扱えないので、ライブラリを使ったほうが良い処理は C# でライブラリを作る。 Stri … 続きを読む

カテゴリー: C#, C++/CX, windows 8 | コメントする

[win8] 画像加工をDirectXに任せて、UIはC#にする技

[win8] スタート画面のタイルを動的に作成する(前哨戦) | Moonmile Solutions Blog http://www.moonmile.net/blog/archives/3443 からちょっと横道に逸れて、画像データ(BitmapImage)に直接書き込む方法を紹介しておきます。 metro の Image コントロールには Source プロパティに BitmapImage オブジェクトを直接指定できます。BitmapImage オブジェクトは画像ファイルから指定もできるのですが、直接メモリから作ることもできます、ってことです。単純なところでは、こんな感じ。 これを実行すると、140×140 の矩形が赤で塗りつぶされます(これ自体のサンプルがあたのですが、URLを忘却。見つけたら記録しておきます)。 メモリ上で操作する場合は、byte[] と InMemor … 続きを読む

カテゴリー: C#, C++/CX, windows 8 | 1件のコメント

[win8] スタート画面のタイルを動的に作成する(前哨戦)

途中なのですが、windows 8 のスタート画面のタイルを動的に作成することができたので、報告。 通常は、TileTemplateType あたりを使ってテンプレートを使ってタイルを作るのですが、これだと microsoft 社が提供するタイルしか作れません。まあ、標準的なタイルを作る場合にはこれでも良いのですが、どうせならばオリジナルのタイルが作りたいですよね、というのが発端です。 TileTemplateType enumeration (Preliminary) http://msdn.microsoft.com/en-us/library/windows.ui.notifications.tiletemplatetype.aspx テンプレートを使ったタイルの制限としては、 標準的なフォーマットに従うために、画像位置やフォントが変更できない。 があります。これを、画像テンプレート … 続きを読む

カテゴリー: C++/CX, windows 8 | コメントする

[win8] 動的にImageコントロールに画像を配置する

動的にタイル画像(スタート画面の画像)を DirectX で作成して、スタート画面に設定することはできたので、その調節中。 DirectX 自体は(多分)直接 C# から扱うことができないので、ライブラリを c++/cx で作成して c# から使うという手順になりそうです。 で、その前に、c++/cx 単体で動くことを確認中というところ。 眠るシーラカンスと水底のプログラマー ≫ Windows8 Metro:初めてのアプリはWindowsPhoneからの移植 http://coelacanth.heteml.jp/blog/?p=612 metro アプリケーションではファイルアクセスが基本、非同期になってしまったので、C# では非同期用の async/awit を使うことになりそうなのですが、c++/cx ではそれらしい文法追加がされていないので、task<> と lamb … 続きを読む

カテゴリー: C#, C++/CX, windows 8 | コメントする

[win8] c++/cx から c# のライブラリは使えない…と思ったが使える

metro アプリケーションの作り方は、いくつかパターンが考えられて、 VB/C# 単体で作る。 C++/CX 単体で作る。 VB/C# でライブラリを作って、VB/C# で使う。 C++/CX でライブラリを作って、C++/CX で使う。 このように同じ言語で揃えるパターンの他にも、 C++/CX でライブラリを作って、VB/C# で利用する。 VB/C# でライブラリを作って、C++/CX で利用する。 というのがあります。さきの同じ言語の場合はスムースにいくのですが、他言語と mix する場合はどうなるかというと…実は、「VB/C# でライブラリを作って、C++/CX で利用する」という方法は取れません。あまり明記はされていないのですが、C#/VB の場合は、.NET Framework を使っていて、C++/CX では WinRT のみ使っている且つ .NET Fram … 続きを読む

カテゴリー: C#, C++/CX, windows 8 | 2件のコメント

C++/CX で扱う文字列の話

[win8] C++/CLI と C++/CX の違い | Moonmile Solutions Blog http://www.moonmile.net/blog/archives/3401 の続きとして「文字列の話」を少し書き下しておきます。 .NET Framework では文字列を一律 System::String で扱っています。これは、C#/VB 共通で、C++/CLI でも文字列は System::String。なので、やり取りは相互にやり取りは簡単です。まぁ、ファイルから SJIS を読み込む時はややこしいことをしないと駄目なんですが、ひとまず UTF-8 のファイルを作っておけば、統一的に扱えます。 が、御存じのように歴史的な点から C/C++ の文字列の扱いはやっかいです。ざっと書き出してみると、 御馴染みの char[] 。 御馴染みの std::string MFC … 続きを読む

カテゴリー: C++/CX, windows 8 | 4件のコメント