問題タブ [objective-c++]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - Objective-C 子オブジェクトから C++ オブジェクトのメソッドを呼び出す
C++ オブジェクト内のメソッドを呼び出すために、Objective-C オブジェクトからイベントを取得しようとしている Objective-C++ コードがいくつかあります。私はObjective-Cに非常に慣れていないので、これをすべて間違っている可能性があります。
例:
メソッド[house.door.knob Event]
はイベントで生成され、呼び出しできるようにしたいhouse.alarm.Alert()
。しかし、これを正しい方法で達成する方法がわかりません。誰かがこれを達成する方法を提案できますか?
c++ - コンパイルおよびリンク時に、C ++のメイン関数とクラスをObjective-Cおよび/またはCルーチンから分離できますか?
私はObjective-Cクラスをインポートした小さなC++アプリケーションを持っています。これはObjective-C++ファイル.mmとして機能しますが、Objective-Cヘッダーを含む可能性のあるヘッダーを含むC ++ファイルは、適切なGCCドライバーの.mm拡張子に名前を変更する必要があります。
Objective-Cクラスの純粋なC++ラッパーを作成する方法はありますか、それとも、Objective-Cオブジェクトを何らかの方法で分離して、それらを個別にリンクすることはできますか?たぶん、Objective-Cクラスが小さなライブラリになったとしても、コンパイル時に静的に再リンクできますか?
問題は、このコードがクロスプラットフォームであり、通常はObjective-Cを使用しないシステム(つまりMacではない)でコンパイルするのがより難しいことです。プリプロセッサコマンドはWindowsまたはLinuxでのObjective-Cコードの実装を制限しますが、元のコードにはまだ.mm拡張子が付いており、GCCはコードをObjective-C++として扱います。
iphone - C++オブジェクトをObjective-Cクラスに追加する
私はC++とObjective-Cを混在させようとしています。ほとんどの方法で作成しましたが、Objective-CとC++コードの間に単一のインターフェイスクラスが必要です。したがって、ViewControllerインターフェイスに永続的なC++オブジェクトが必要です。
これは、タイプのない'myCppFile'の宣言を禁止することで失敗します。
ただし、これは.mm実装ファイルでは問題なく機能します(cppobjectを呼び出し間で保持したいので機能しません)
iphone - Objective-C、.m / .mmのパフォーマンスの違いは?
新しいクラスを作成するときは、デフォルトで.mm拡張子を使用する傾向があるため、後で必要に応じてObjC++を使用できます。
これを行うことに不利な点はありますか?いつご希望.m
ですか?より高速な実行可能ファイルにコンパイルしますか.m
(Cは一般的にC ++よりも高速であるため)?
c++ - Objective-C++ 内での C++ クラスの使用
Cocoa アプリケーションで小さな C++ ライブラリを使用しています (atm は、その方法を学ぶための非常に単純な例です)。
したがって、次のような名前空間に小さな C++ クラスがあります。
次に、次のコードを含む .h ファイルがあります。
最後に実装 (test.mm というファイル内):
これをコンパイルしようとすると、次のエラーが発生します。
私は何を間違っていますか?? Cコンパイラを使用してヘッダーファイルをコンパイルしているようです。
メンバーを void* 型として宣言し、実装でキャストを使用すると、これを Objective-C クラスでラップできます。しかし、これは間違いなく最も快適な方法ではありません。
xcode - Xcode プロジェクトの C++ および Objective C
最近、Xcode をバージョン 3.2.2 (プレリリース) に更新しました。古い Objective-C プロジェクトでは正常に動作していますが、Objective-C/Objective-C++ コードが混在するプロジェクトでは問題が発生します。コンパイル中に次のエラーが発生します。
コンパイラが不平を言うパスを確認したところ、ファイル functexcept.hが次のパスにあることがわかりました。
/開発者/プラットフォーム/iPhoneOS.platform/開発者/SDKs/iPhoneOS3.0.sdk/usr/include/c++/4.2.1/armv7-apple-darwin9/bits/
私の質問は、そのパスを Xcode で正しいパスに変更する必要がある場所ですか? 前もって感謝します。
objective-c - Objective-C++の文字列
コードをObjective-CからObjective-C++に切り替えました。2本の線を除いてすべてが泳ぎに行きます。
この行は
最初のエラーに関連する2番目のエラーは、次の行からのものです。
それは文句を言う
ObjCとObjC++の違いで見逃したことはありますか?
iphone - Objective C++ でメモリを管理するには、何を知る必要がありますか?
iPhone アプリで C++ オーディオ ライブラリを使用しています。C++ オブジェクトに使用できる Objective C / Cocoa メモリ管理インフラストラクチャはありますか? それとも、C++ メモリ管理を読んで学習する必要がありますか?
iphone - ObjectiveC++で不透明なポインタを使用する際の問題
この質問に対する答えは、不透明なポインターがC++メンバー変数をObjectiveC++ヘッダーに含めるための良い方法であることを説明しています。例に従おうとすると、コンパイルエラーが発生します。これが私のヘッダーの関連コードで、対応するコンパイラエラーがコメントとして表示されています。
私がここで間違っている単純なことはありますか?
c++ - テンプレート引数として指定された場合、0 は有効な FILE* ではありません
次のコード
MacOS X 上の Xcode によって .mm ファイル (Objective C++) にコンパイルされると、次のエラーがスローされます。
エラー: テンプレート引数 '0' を 'FILE*' に変換できませんでした。
どうしたの?問題のコードは、MSVC で正常にコンパイルされました。0 定数が何かへの有効なポインタではないのはいつですか? これは (バニラ C++ ではなく) Objective C++ のアーティファクトですか?