0

以前のすべてのバージョンでFFツールバーが機能しています。私のツールバーは部分的にC++で書かれています。xulrunner-sdk-15.0.1を使用してC++パーツをビルドしようとしました(xulrunner-sdk-16.0.1も試しました)。どちらのバージョンでも、リンクエラーが発生します。

1>Link:
1>     Creating library C:\Dev\Projects\fftoolbar\toolbar\src\components\vc2010\\..\bin\win32\agat.lib and object C:\Dev\Projects\fftoolbar\toolbar\src\components\vc2010\\..\bin\win32\agat.exp
1>xpcomglue_s.lib(nsStringAPI.obj) : error LNK2001: unresolved external symbol __imp___snprintf
1>xpcomglue_s.lib(nsCRTGlue.obj) : error LNK2001: unresolved external symbol __imp__rand
1>xpcomglue_s.lib(nsCRTGlue.obj) : error LNK2001: unresolved external symbol __imp__srand
1>xpcomglue_s.lib(nsCRTGlue.obj) : error LNK2001: unresolved external symbol __imp___fdopen
1>xpcomglue_s.lib(nsCRTGlue.obj) : error LNK2001: unresolved external symbol __imp___dup
1>C:\Dev\Projects\fftoolbar\toolbar\src\components\vc2010\..\bin\win32\agat.dll : fatal error LNK1120: 5 unresolved externals
1>
1>Build FAILED.
1>
1>Time Elapsed 00:00:06.39
========== Rebuild All: 0 succeeded, 1 failed, 0 skipped ==========

誰かがそれをどのように解決できるか考えていますか?

4

1 に答える 1

2

これらのシンボルはmsvcrt.lib(ランタイム ライブラリ) によって公開されます。したがって、標準ライブラリを無視するようにプロジェクトを構成した可能性があります。その場合msvcrt.lib、ライブラリのリストに明示的に追加する必要があります。

ご存じない場合に備えて: js-ctypesを使用すると、バイナリ XPCOM コンポーネントを使用して Firefox バージョンごとに再コンパイルすることなく、拡張機能でコードをコンパイルできます。拡張機能に通常の Windows DLL を含め、js-ctypes を使用してその関数を呼び出すことができます。欠点: この DLL は XPCOM にアクセスできません。したがって、JavaScript にはない低レベルの XPCOM アクセスが本当に必要な場合は、バイナリ XPCOM オブジェクトを避けることはできません。

于 2012-10-19T07:22:20.150 に答える