2011-06-22 6 views
0

を登録するには失敗しました。依存関係ウォーカープログラムによって明らかにされたように、Firefoxは明らかに期待通りにDLLを読み込んでいますが、決して実行されないようです。のFirefoxへのXPCOMコンポーネントDLLが読み込まれると、その後私は、そのソースコンパイルすると、Linux上で正常に動作しますが、Windows上で動作しませんXPCOMコンポーネントを持つクラス

[4/5] cxx: components\nsSoundSubsystem.cpp -> build\components\nsSoundSubsystem.cpp.2.o 
15:44:31 runner ['C:\\Program Files (x86)\\Microsoft Visual Studio 9.0\\VC\\BIN\\CL.exe', '/nologo', '/MT', '/IE:\\src\\chunder\\clients\\xpcomextension\\build', '/IE:\\src\\chunder\\clients\\xpcomextension', '/IE:\\src\\chunder\\clients\\xpcomextension\\build\\components', '/IE:\\src\\chunder\\clients\\xpcomextension\\components', '/IC:\\Program Files (x86)\\Microsoft Visual Studio 9.0\\VC\\INCLUDE', '/IC:\\Program Files\\Microsoft SDKs\\Windows\\v6.0A\\include', '/Ic:\\xulrunner-sdk\\include', '/DHAVE_XPCOM_CONFIG_H=1', '/DMOZ_NO_MOZALLOC', '/DWIN32', '/D_WINDOWS', '/D_USRDLL', '/DXP_WIN', '/DXP_WIN32', '/DXPCOM_GLUE_USE_NSPR', '..\\components\\nsSoundSubsystemModule.cpp', '/FC', '/c', '/Focomponents\\nsSoundSubsystemModule.cpp.2.o'] 
15:44:31 runner ['C:\\Program Files (x86)\\Microsoft Visual Studio 9.0\\VC\\BIN\\CL.exe', '/nologo', '/MT', '/IE:\\src\\chunder\\clients\\xpcomextension\\build', '/IE:\\src\\chunder\\clients\\xpcomextension', '/IE:\\src\\chunder\\clients\\xpcomextension\\build\\components', '/IE:\\src\\chunder\\clients\\xpcomextension\\components', '/IC:\\Program Files (x86)\\Microsoft Visual Studio 9.0\\VC\\INCLUDE', '/IC:\\Program Files\\Microsoft SDKs\\Windows\\v6.0A\\include', '/Ic:\\xulrunner-sdk\\include', '/DHAVE_XPCOM_CONFIG_H=1', '/DMOZ_NO_MOZALLOC', '/DWIN32', '/D_WINDOWS', '/D_USRDLL', '/DXP_WIN', '/DXP_WIN32', '/DXPCOM_GLUE_USE_NSPR', '..\\components\\nsSoundSubsystem.cpp', '/FC', '/c', '/Focomponents\\nsSoundSubsystem.cpp.2.o'] 
nsSoundSubsystem.cpp 
nsSoundSubsystemModule.cpp 
[5/5] cxxshlib: build\components\nsSoundSubsystemModule.cpp.2.o build\components\nsSoundSubsystem.cpp.2.o -> build\components\chunder_x86.dll build\components\chunder_x86.dll.manifest build\components\chunder_x86.lib 
15:44:32 runner ['C:\\Program Files (x86)\\Microsoft Visual Studio 9.0\\VC\\BIN\\LINK.exe', 'components\\nsSoundSubsystemModule.cpp.2.o', 'components\\nsSoundSubsystem.cpp.2.o', '/OUT:E:\\src\\chunder\\clients\\xpcomextension\\build\\components\\chunder_x86.dll', '/LIBPATH:C:\\Program Files (x86)\\Microsoft Visual Studio 9.0\\VC\\LIB', '/LIBPATH:C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0A\\lib', '/LIBPATH:c:\\xulrunner-sdk\\lib', 'xpcom.lib', 'xpcomglue_s_nomozalloc.lib', 'nspr4.lib', '/NOLOGO', '/MANIFEST', '/DLL', '/machine:I386', '/IMPLIB:components\\chunder_x86.lib'] 
    Creating library components\chunder_x86.lib and object components\chunder_x86.exp 
15:44:33 runner ['C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0A\\bin\\MT.exe', '/NOLOGO', '-manifest', 'E:\\src\\chunder\\clients\\xpcomextension\\build\\components\\chunder_x86.dll.manifest', '-outputresource:E:\\src\\chunder\\clients\\xpcomextension\\build\\components\\chunder_x86.dll;2'] 

私はこの追撃で3日間、私の知恵末端に午前:

これは、私はそれをすべてをコンパイルするために使用していますコマンドラインです。

私は間違っていますか?また、問題をデバッグするために何ができるのですか?

追加情報:私は、モジュールを実行するためのFirefox 4を使用しています、とはXULRunner 2.0 SDKは、モジュールをコンパイルします。 XPTファイルからのインタフェースは、それ自体を正しく登録します。

+0

追加情報: [732140]:ロードライブラリC:\ \ユーザーラッド-O \のAppData \ローミング\ Mozilla \ Firefox \ Profiles \とhob5ycuo.default、モジュールのロードとは、すぐにFirefoxのNSPRログに応じてアンロード\拡張\ [email protected] \コンポーネント\ chunder_x86.dll(負荷LIB) [732140]:アンロードライブラリC:ラッド-O \のAppData \ローミング\ Mozilla \ Firefox \ Profiles \とhob5ycuo.default \拡張\ \ Users \ユーザー[email protected]コンポーネント\ \ chunder_x86.dll –

+0

追加情報: –

+0

バグを提出= _NSModule DLLショー、DUMPBIN /エクスポートを使用して、NSModuleエントリポイント:https://bugzilla.mozilla.org/show_bug.cgi?id= 666450 –

答えて

0

を見ると、依存関係が問題ではありません。依存関係がないと、ライブラリが最初にロードされず、アンロードすることはありません。ライブラリがアンロードされる条件には、シンボルNSModuleが定義されていないか、またはモジュールのバージョンが一致していないという2つの条件があります。あなたの説明から、前者は問題です、それは本当にNSModuleであり、_NSModuleではありません。だから私はNSMODULE_DEFN()マクロ以外のものを使用していると思います。正しいモジュール定義の例については、http://mxr.mozilla.org/mozilla-central/source/xpcom/sample/nsSampleModule.cppを参照してください。私の推測が間違っていれば、あなたのモジュール定義コードを見せてください。

+0

シンボルNSModuleは_NSModuleと定義されています。 Linux上で動作します。アイデア? –

+0

これはコード内にあります:NSMODULE_DEFN(nsSoundSubsystemModule)=&kSoundSubsystemModule; –

+0

私は問題のマクロdefを使用しています。 :-( –

関連する問題