- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
自从我们从 Visual Studio 6 切换到 Visual Studio 2008 以来,我们一直在使用 MFC90.dll 和 msvc[pr]90.dll 以及私有(private)并行配置中的 list 文件,以免担心版本或将它们安装到系统中。
在 SP1 之前,它运行良好(在我们的开发人员机器上仍然运行良好)。既然我们已经在 SP1 后进行了一些测试,我从昨天早上就开始拔头发了。
首先,我们的 NSIS 安装程序脚本从 redist 文件夹中提取 dll 和 list 文件。这些不再正确,因为该应用仍链接到 RTM 版本。
因此,我将 _BIND_TO_CURRENT_VCLIBS_VERSION=1
的定义添加到我们所有的项目中,以便它们将使用 redist 文件夹中的 SP1 DLL(或在新服务包出现时使用后续的)。我花了几个小时才找到这个。
我已经从编译中仔细检查了中间文件文件夹中生成的 list 文件,它们正确列出了 9.0.30729.1 SP1 版本。我已经两次和三次检查取决于一台干净的机器:它都链接到本地 dll,没有错误。
运行应用程序仍然出现以下错误:
The application failed to initialize properly (0xc0150002). Click on OK to terminate the application.
我在 google 或 microsoft 上进行的搜索都没有找到与我的具体问题相关的任何内容(但有此错误消息可追溯到 2005 年)。
有人对 SP1 有过类似的问题吗?
选项:
编辑:我尝试在关闭定义的情况下重新构建(链接到 RTM dll),只要 RTM dll 安装在文件夹中,它就可以工作。如果将 SP1 dll 放入,则会出现以下错误:
c:\Program Files\...\...\X.exe
This application has failed to start because the application configuration is incorrect. Reinstalling the application may fix this problem.
没有其他人必须处理这个问题吗?
编辑: 只是为了笑,我在我的测试机器上下载并运行了 VS2008SP1 的 vcredist_x86.exe。 它有效。使用 SP1 DLL。还有我的 RTM 链接应用程序。但是不在 SP1 之前工作的私有(private)并行分发中。
最佳答案
上周我自己也解决了这个问题,现在我认为自己有点专家了;)
我 99% 确定并非所有 dll 和静态库都使用 SP1 版本重新编译。你需要放
#define _BIND_TO_CURRENT_MFC_VERSION 1
#define _BIND_TO_CURRENT_CRT_VERSION 1
进入您正在使用的每个项目。对于每个实际大小的项目,很容易忘记一些未重新编译的小库。
还有更多的标志来定义要绑定(bind)的版本;它记录在 http://msdn.microsoft.com/en-us/library/cc664727%28v=vs.90%29.aspx .作为上述行的替代方案,您还可以将
#define _BIND_TO_CURRENT_VCLIBS_VERSION 1
它将绑定(bind)到所有 VC 库(CRT、MFC、ATL、OpenMP)的最新版本。
然后,检查嵌入式 list 的内容。下载XM资源编辑器:http://www.wilsonc.demon.co.uk/d10resourceeditor.htm .打开解决方案中的每个 dll 和 exe。查看“XP 主题 list ”。检查右侧的“版本”属性是否为“9.0.30729.1”。如果是“9.0.21022”,则某些静态库正在拉入旧版本的 list 。
我发现,在许多情况下,两个 版本都包含在 list 中。这意味着一些库使用 sp1 版本而其他库不使用。
调试哪些库没有设置预处理器指令的好方法:临时修改您的平台 header ,以便在尝试嵌入旧 list 时停止编译。打开 C:\Program Files\Microsoft Visual Studio 9.0\VC\crt\include\crtassem.h。搜索“21022”字符串。在该定义中,放置一些无效的内容(将“定义”更改为“blehbleh”左右)。这样,当您编译一个未设置 _BIND_TO_CURRENT_CRT_VERSION
预处理器标志的项目时,您的编译将停止,您将知道您需要添加它们或确保它适用于任何地方。
还要确保使用 Dependency Walker,这样您就知道要提取哪些 dll。在虚拟机上安装没有更新(仅 SP2)的全新 Windows XP 拷贝是最简单的。通过这种方式,您可以确定 SxS 文件夹中没有任何内容正在使用,而不是您提供的并排 dll。
关于c++ - 应用程序不能与 VS 2008 SP1 DLL 一起运行,以前的版本适用于 RTM 版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59635/
我在我的 Xcode 项目目录中输入了以下内容: keytool -genkey -v -keystore release.keystore -alias mykey -keyalg RSA \
假设我有一个像这样的 DataFrame(或 Series): Value 0 0.5 1 0.8 2 -0.2 3 None 4 None 5 None
我正在对一个 Pandas 系列进行相对繁重的应用。有什么方法可以返回一些打印反馈,说明每次调用函数时在函数内部进行打印还有多远? 最佳答案 您可以使用跟踪器包装您的函数。以下两个示例,一个基于完成的
我有一个 DataFrame,其中一列包含列表作为单元格内容,如下所示: import pandas as pd df = pd.DataFrame({ 'col_lists': [[1, 2
我想使用 Pandas df.apply 但仅限于某些行 作为一个例子,我想做这样的事情,但我的实际问题有点复杂: import pandas as pd import math z = pd.Dat
我有以下 Pandas 数据框 id dist ds 0 0 0 0 5 1 0 0 7 2 0 0
这发生在我尝试使用 Gradle 构建时。由于字符串是对象,因此似乎没有理由发生此错误: No signature of method: java.util.HashMap.getOrDefault(
您好,有人可以解释为什么在 remaining() 函数中的 Backbone 示例应用程序 ( http://backbonejs.org/examples/todos/index.html ) 中
我有两个域类:用户 class User { String username String password String email Date dateCreated
问题陈述: 一个 pandas dataframe 列系列,same_group 需要根据两个现有列 row 和 col 的值从 bool 值创建。如果两个值在字典 memberships 中具有相似
apporable 报告以下错误: error: unknown type name 'MKMapItem'; did you mean 'MKMapView'? MKMapItem* destina
我有一个带有地址列的大型 DataFrame: data addr 0 0.617964 IN,Krishnagiri,635115 1 0.635428 IN,Chennai
我有一个列表list,里面有这样的项目 ElementA: Number=1, Version=1 ElementB: Number=1, Version=2 ElementC: Number=1,
我正在编译我的源代码,它只是在没有运行应用程序的情况下终止。这是我得到的日志: Build/android-armeabi-debug/com.app4u.portaldorugby/PortalDo
我正在尝试根据另一个单元格的值更改单元格值(颜色“红色”或“绿色”)。我运行以下命令: df.loc[0, 'Colour'] = df.loc[0, 'Count'].apply(lambda x:
我想弄清楚如何使用 StateT结合两个 State基于对我的 Scalaz state monad examples 的评论的状态转换器回答。 看来我已经很接近了,但是在尝试申请 sequence
如果我已经为它绑定(bind)了集合,我该如何添加 RibbonLibrary 默认的快速访问项容器。当我从 UI 添加快速访问工具项时,它会抛出 Operation is not valid whi
在我学习期间Typoclassopedia我遇到了这个证明,但我不确定我的证明是否正确。问题是: One might imagine a variant of the interchange law
我是一名优秀的程序员,十分优秀!