繁体   English   中英

在Windows 7下编译的Dll在Windows XP中不起作用

[英]Dll compiled under Windows 7 doesn't work in Windows XP

我正在为NodeJS构建插件。

只能在Windows 7中正常工作。但是在Windows XP中,无论我做什么,它都不会加载,无法打开。 ERROR: Unable to load shared library c:\\tst\\tst.node

我正在使用以下选项从VS2010编译DLL:

  • c / c ++选择

    /I"c:\\tst\\nodemodule\\cvv8\\include" /I"c:\\tst\\nodemodule\\node-src\\deps\\uv\\include" /I"c:\\tst\\nodemodule\\node-src\\deps\\v8\\include" /I"c:\\tst\\nodemodule\\node-src\\src" /I"c:\\tst\\nodemodule\\node-src\\deps\\zlib" /I"c:\\tst\\nodemodule\\node-src\\deps\\http_parser" /I"c:\\tst\\nodemodule\\cvv8\\include\\cvv8" /Zi /nologo /W0 /WX- /O2 /Oi /Oy- /GL /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_USRDLL" /D "TST_EXPORTS" /D "_WINDLL" /D "_UNICODE" /D "UNICODE" /Gm- /EHsc /GS /Gy /fp:precise /Zc:wchar_t /Zc:forScope /Fp"Release\\tst.pch" /Fa"Release\\" /Fo"Release\\" /Fd"Release\\vc100.pdb" /Gd /analyze- /errorReport:queue

  • 链接器选择

    /OUT:"c:\\tst\\tst.node" /INCREMENTAL:NO /NOLOGO /DLL "kernel32.lib" "user32.lib" "gdi32.lib" "winspool.lib" "comdlg32.lib" "advapi32.lib" "shell32.lib" "ole32.lib" "oleaut32.lib" "uuid.lib" "odbc32.lib" "odbccp32.lib" /MANIFEST:NO /ManifestFile:"Release\\tst.node.intermediate.manifest" /ALLOWISOLATION /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /PDB:"c:\\tst\\tst.pdb" /SUBSYSTEM:WINDOWS /OPT:REF /OPT:ICF /PGD:"c:\\tst\\tst.pgd" /LTCG /TLBID:1 /DYNAMICBASE /NXCOMPAT /MACHINE:X86 /ERRORREPORT:QUEUE

怎么了? 这与UTF-8相关吗?

诊断此类问题的最佳工具是依赖项遍历器 在dw中打开您的dll,您将立即看到为什么它无法加载:很有可能是某些dll / libs缺少您的dll所依赖。

在包含Windows标头(通常在stdafx.h中)之前,请尝试设置Windows版本宏,以确保您使用的不是仅在XP之后才可用的api。

http://msdn.microsoft.com/zh-cn/library/windows/desktop/aa383745(v=vs.85).aspx#setting_winver_or__win32_winnt

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM