だから、どのように私は私のコードでその実行可能ファイルを呼び出すことができますか?
最も簡単な方法はsystem()
です。たとえば、実行可能ファイルがツールと呼ばれる場合、
system("tool");
ただし、この手法では多くの警告があります。この呼び出しは、オペレーティングシステムに何かを実行するよう要求しますが、各オペレーティングシステムは同じコマンドを別々に理解したり、応答したりすることができます。例えば
:
system("pause");
... exectuionを停止し、Windowsで動作しますが、ない他のオペレーティングシステムでます。また、ファイルへのパス内のスペースに関する規則も異なります。最後に、セパレータバーも異なる場合があります(ウィンドウのみの場合は '\')。
また、私は他の関数/オブジェクト/クラスをC++ から悪用して、この呼び出し手法を使ってC++コードで使用できますか?
実際はありません。他の人が作成したクラスや関数を使いたい場合は、ソースコードを取得してプログラムでコンパイルする必要があります。これはおそらく、ソースコードが十分に小さい場合には、これを実行する最も簡単な方法の1つです。
多くの場合、人々は便利なクラスおよび/または機能の集合体であるライブラリを作成します。ライブラリがバイナリ形式で配布されている場合は、dllファイル(または他のOSの場合は同等)と、ライブラリで提供されるクラスと関数を記述するヘッダファイルが必要です。これは、同じオペレーティングシステム内の異なるコンパイラで作成されたライブラリでも、互換性がない可能性があるため、C++プログラマの豊かな不満の源です。そのため、多くの場合、ライブラリがソースコード形式で配布され、前述のように、単一のファイルでバイナリバージョンを取得するための命令リスト(メイクファイルまたはさらに悪い)とヘッダーファイルが配布されます。 C++標準では、コンパイラの内部で起こる低レベルのものをしないため
です。コンパイラベンダーが望むように自由に放置された実装の詳細がたくさんあり、おそらくより良いパフォーマンスを達成しようとしています。これは残念ながら、単純なライブラリを配布するのは難しいということです。
あなたは 'exec *'のような意味ですか? – Shahbaz
実行ファイルの最初の質問は、 'exec'や' system'のように聞こえます。 2番目のライブラリは[ライブラリ](http://en.wikipedia.org/wiki/Library_(computing)#Shared_libraries)です。 – birryree