我正在运行带有外部 c 库的tcl/tk (8.5)以连接到d2xx USB库。我正在运行 Windows 8 并尝试使用VS 2012 Native Tools
命令提示符编译库。当我启动命令提示符时,我的密码是:
\Program Files (x86)\Microsoft Visual Studio 11.0\VC
c 库 (tclftd2xx.c) 带有用于虚拟工作室的 nmake 文件,可以正确设置环境以链接到所需的 tcl 库和 d2xx 头文件。
在 VS 命令窗口中,我 CD 到包含 makefile.vc 的目录并键入:
制造……
我得到了我的 tclftd2xx.dll。
tclftd2xx.dll calls msvcr110.dll
. 当这两个都正确放置在 /Tcl/lib 中时,它们在我的 Windows 8 系统以及 Vista 和 Windows 7 上运行良好。
但是,在 Windows XP 上安装时,Windows 无法加载 tclftd2xx.dll。
我做了一些搜索,发现我必须为 v110_xp 工具集配置 VS2012。链接(http://blogs.msdn.com/b/vcblog/archive/2012/10/08/10357555.aspx)有这个注释:
已切换到 v110_xp 工具集的 Visual Studio 2012 解决方案和项目可以使用 MSBuild 或 DEVENV 从命令行构建,无需额外步骤。
但是,如果您希望直接使用 CL 和 Link,则需要额外的步骤。请注意,可以通过创建批处理脚本来自动执行以下步骤。
我在这里做的:
REM set include and path variables
set INCLUDE=%ProgramFiles(x86)%\Microsoft SDKs\Windows\7.1A\Include;%INCLUDE%
set PATH=%ProgramFiles(x86)%\Microsoft SDKs\Windows\7.1A\Bin;%PATH%
REM When targeting X86, set the lib path as follows:
set LIB=%ProgramFiles(x86)%\Microsoft SDKs\Windows\7.1A\Lib;%LIB%
REM set the compiler options
set CL=/D_USING_V110_SDK71_;%CL%
REM When targeting x64, set the lib path as follows:
REM set LIB=%ProgramFiles(x86)%\Microsoft SDKs\Windows\7.1A\Lib\x64;%LIB%
REM Specify the correct subsystem and subsystem version for the linker based on the type of
REM application you are building. Applications targeting the x86 version of Windows XP must specify
REM subsystem version 5.01, and applications targeting x64 must specify version 5.02.
REM For x86 console applications:
set LINK=/SUBSYSTEM:CONSOLE,5.01 %LINK%
REM For x64 console applications:
REM set LINK=/SUBSYSTEM:CONSOLE,5.02 %LINK%
要构建 xp 版本,从 VS 命令行 I 1) 运行 .bat 文件 2) nmake .....
我得到一个大小与 Windows 8 目标 dll 完全相同的 .dll。
所以我有两个问题:
- 除了执行 .bat 文件之外,我还必须运行其他一些神奇的配置脚本或环境变量来启用 v110_xp 工具集
.bat file
吗?还是执行 .bat 文件来完成完整配置? - 除了尝试将其加载到 XP 系统上之外,是否有其他方法可以确认 .dll 确实针对 XP 系统?