を使用するDLLをビルドします。Mozilla use a C DLL with js-ctypesは、Mozillaのjs-ctypesのことで私の最初の記事を参照する
私はMozillaのFirefoxの拡張機能から使用するDLLを構築しようとしています。私は少しCコードを作成し、GCCでコンパイルしました。ここ
は、Cコードである:
gcc -c library.c
gcc -shared -o library.dll library.o -Wl
DLLはよくコンパイルされ、Iはdllexpでそれを開くことができ、add()メソッドを見ることができる:ここ
#include<stdio.h>
int add(int a,int b)
{
return(a+b);
}
コンパイル線であります露出した。
問題は、私は私の拡張機能からそれを使用しようとすると、私は常にメッセージを取得するには、次のとおりです。エラー:オープンできませんでしたライブラリ
ここでは私のJavascriptの呼び出しです:
var libc = ctypes.open("C:\\WINDOWS\\system32\\user32.dll"); //OK
var libc2 = ctypes.open("C:\\WINDOWS\\system32\\library.dll"); //KO
DLLはFirefoxで開くことができないようですが、どうしてですか?私はFirefoxの拡張機能のDLLを構築することについて何も表示されません、我々はすべての古典的なDLLライブラリを使用することができるようだ。
ありがとう
それは、私はあなたの助けなしでそれを行うことはできませんでした多くのおかげで、このチケットのために、以前の他の人にも当てはまりました! – frinux
より正確には、Cファイル内の宣言だけが必要です。 -nostdlibを指定したコンパイル行は、コードがkernel32関数を実行しないようにします – frinux