我有一個XPCOM組件,其源代碼在編譯時,在Linux上正常工作,但在Windows上無法正常工作。由於依賴walker程序顯示,該DLL顯然按照Firefox的預期加載,但似乎永遠不會被它執行。XPCOM組件DLL加載到Firefox中,但未能註冊其類。
這是我使用的編譯所有的命令行:
[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']
我在我束手無策,這個場三天。
我在做什麼錯?或者,我能做些什麼來幫助我調試問題?
附加信息:我正在使用Firefox 4運行該模塊,並使用XULrunner 2.0 SDK來編譯該模塊。從XPT文件的接口註冊自己就好了。
其他信息: [732140]:加載庫C:\用戶\拉德-O \應用程序數據\漫遊\ Mozilla的\火狐\概況\ hob5ycuo.default的模塊加載,然後根據火狐NSPR日誌立即卸載\ extensions \ [email protected] \ components \ chunder_x86.dll(加載庫) [732140]:卸載庫C:\ Users \ Rudd-O \ AppData \ Roaming \ Mozilla \ Firefox \ Profiles \ hob5ycuo.default \ extensions \ [email protected] \ components \ chunder_x86.dll –
附加信息:DLL使用dumpbin/exports顯示NSModule入口點= _NSModule –
提交的問題:https://bugzilla.mozilla.org/show_bug.cgi?id = 666450 –