2010-12-15 8 views
1

私はjavascriptからC++関数を呼び出す必要があります。あなたが呼び出すことができますC++ from javascript

+5

ブラウザでJavascriptが動作していますか? JavascriptはWebサーバー上で動作していますか?より具体的にしてください。 – dthorpe

+4

とあなたが実際にやろうとしていることを述べているかもしれません。解決策は、C++(またはJavaScript)をまったく必要としないかもしれません。 – jrharshath

答えて

2

は、WebKitのを見てみましょう/ Qtの(特別なハードウェア関連のAPIおよび同類をあなたがJavaScriptに追加機能をエクスポートするブラウザを書くことに興味があると仮定した場合)任意のC++関数

するvar myNativeObj =新しいActiveXObjectを( "foo.dll")のようなActiveXオブジェクトを

を拡張することによってJavaScriptを使用して、DLLにそれをコンパイルした後、

myNativeObj.someMethod(); //いくつかのメソッドは、クラス

で定義されているが、これだけでは、Internet Explorerブラウザに限定されています。

+0

+1非常に良い答えです。それが私の頭の中にあふれた最初のことです。 –

2

- してください誰かHLP ..

+0

どのようにdllにクラスをコンパイルするには、ステップの例や、より良いチュートリアルへのリンクを提供してください。初めて私はこの種の作業をしています。 ありがとうございます。 –

+0

VisualC++を使用している場合は、IDE内でDLL用に作成するオプションがあります。 –

3

あなたがして、JavaScriptからネイティブコードを実行し、Webブラウザについて話している場合は、通常のWebブラウザプラグインを通じて必要な機能を暴露することによって行われます。異なるWebブラウザにはプラグインを書き込む方法が異なります。 FirefoxとChromeはNPAPIを使用し、Internet ExplorerはActiveXを使用します。

Firebreathと呼ばれるオープンソースプロジェクトがあり、NPAPIとActiveXホストの両方で動作するクロスプラットフォームのブラウザプラグインを簡単に作成できます。

http://www.firebreath.org

0

IEでは、あなたは、ActiveXを使用することができます。
Firefoxでは、js-ctypesを使用できます。https://wiki.mozilla.org/Jsctypes/api
Chromeでは、V8がサポートしているかどうかわかりません。