2016-09-05 12 views
0

Visual Studio 2015でC++でコーディングされ、クロスプラットフォーム(現在WindowsとLinuxをサポート)を目指すアプリケーションでは、AppleのAppkitからNSEventにアクセスできますか?Visual Studio 2015でC++で作成されたクロスプラットフォームアプリケーションでは、AppleのAppkitのNSEventを使用できますか?

iOSユーザによってどのマウスボタンが押されたかを検索したいとします:Visual Studioでコード化されたC++アプリケーションでは、関数pressedMouseButtons()の結果を取得することができます。あなたのAppkitのオブジェクトNSEventの一部ですか?

もしそうなら、そのような関数をどのように呼び出すべきですか?

答えて

0

ターゲットプラットフォーム上に存在するAPIのみを呼び出すことができます。したがって、誰かがAppkitのポートを行っていない限り、いいえ。

一般的な戦略は、プラットフォーム固有のセクションをプリプロセッサの条件文(#ifdef)で囲むことです。あなたの代わりに、使用するAppkit関数とデータ構造のエミュレーションを実装することができます。 Apple以外のプラットフォームでは機能する必要はありません。事前に定義されたテストデータを返すだけで十分です。

+0

あなたの答えをありがとう。私は、プリプロセッサー条件でアップル固有のコードのセクションをラップする必要があることを知っています。それは私が既にWindows/Linuxのコードの特定の分野で行ってきたことです。その場合、Visual Studio 2015でC++を使用してAppKitからコードを呼び出すことは可能でしょうか? AppKitがObjective-Cを必要とするので、私はそれをどうすればいいのか正確には分かりません。そして、どうすればいいですか、私は '#include 'と' NSEvent :: pressedMouseButtons() '型の関数をどのように呼び出すべきかを意味します。 –

+0

私はあなたの目標を理解しているとは思わない。 Visual C++はWindowsをターゲットにしています(LinuxやAndroidの拡張機能を利用しています)。だから私の前提は、すべてのターゲットに対して共通のコードベースを用意しようとしていたが、個々のプラットフォームでビルドして実行しようとしていたということだった。 Apple以外のプラットフォームでpressedMouseButtons()などのAppKit関数を呼び出す場合は、移植されたバージョンのフレームワークを見つけたり、それらの関数を完全に機能したりスタブをテストしたりする必要があります。 AppKitの後継バージョンで、WindowsとLinuxで利用できるCocoa/GNUstepを見てきましたか? – stanthomas

+0

私は再びあなたがコメントしたことに気付かなかった。だから、私がやろうとしていることは、コンパイル時に、Apple Macのもとで、関数NSEvent ::から値を取り出すことができるアプリケーションを生成する、Visual Studio 205のコードをC++で書くことです。 pressedMouseButtons() ' –

関連する問題