fgets给出了断言,试图重新分配vs2010 MFC应用程序

时间:2013-09-18 00:03:09

标签: c++ visual-studio-2010 dll mfc fgets

我有一个简单的应用程序,它读取一些文本文件进行一些计算并写入一些文本文件。在我的开发机器上运行完美(Server2008R2 VC ++ 2010)。即使我已经安装/运行vs2010 redistribute x86,我也无法让它在Win7机器上运行。

我得到的第一个错误是缺少mfc100ud.dll(是的,我正在使用调试,如果我尝试发布它只是崩溃,因为调试告诉你什么是错的)。我把mfc100ud.dll放在应用程序的目录中,现在fgets断言如下所示。 str不为null,文件已成功打开。

我错过了什么?

我的目标是在Win7机器上运行MFC应用程序而无需安装vs2010。

另一个考虑因素,我使用MFC的唯一原因是COleTimeDate功能。我一直在寻找替代方案,但我们发现任何可行的东西或使用起来都很简单。

感谢。

Assertion Error

2 个答案:

答案 0 :(得分:0)

如果文件流指针(由fopen提供)为NULL,则会发生此错误。 使用fopen后,是否可能没有任何错误检查?

基本上使用“静态链接”到MFC和CRT。比没有必要安装和复制任何运行时文件。

答案 1 :(得分:0)

可再发行组件仅适用于发布版本。如果您真的想要分发调试版本,您有两个选择:

  • 静态链接您的应用,因此您不需要任何共享DLL(例如mfc100ud.dll)
  • 与您的应用(在您的应用文件夹中)一起分发所有相关的DLL。您可以使用depends.exe检查依赖项