Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/132.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ MFC&x2B+;:待办事项<;文件描述>;他停止工作了_C++_Windows_File_Mfc_System - Fatal编程技术网

C++ MFC&x2B+;:待办事项<;文件描述>;他停止工作了

C++ MFC&x2B+;:待办事项<;文件描述>;他停止工作了,c++,windows,file,mfc,system,C++,Windows,File,Mfc,System,我写了一个程序,试图在C:\windows\目录下写一个文件。我已经用winXP、win7(64位和32位)在几台电脑上测试了这个程序。但是当我把它安装到我客户的电脑上时,它崩溃了,并显示消息:TODO(文件描述)已停止工作 如果任何人知道任何解决方案,请回复我。您是否可能关闭了UAC,但您的客户没有?或者,客户的用户是否没有管理权限?不允许用户进程写入c:\Windows文件夹。如果是这种情况,尝试创建文件将引发异常 创建数据文件的正确位置应为: 用户文件夹下的应用程序数据(如果该文件为每个用

我写了一个程序,试图在C:\windows\目录下写一个文件。我已经用winXP、win7(64位和32位)在几台电脑上测试了这个程序。但是当我把它安装到我客户的电脑上时,它崩溃了,并显示消息:TODO(文件描述)已停止工作
如果任何人知道任何解决方案,请回复我。

您是否可能关闭了UAC,但您的客户没有?或者,客户的用户是否没有管理权限?不允许用户进程写入c:\Windows文件夹。如果是这种情况,尝试创建文件将引发异常

创建数据文件的正确位置应为:

  • 用户文件夹下的应用程序数据(如果该文件为每个用户)
  • 程序数据(Win7)或所有用户(XP)下的应用程序数据,如果文件是每个应用程序(日志或其他)

  • 有几个可能的原因,其中包括没有写入权限(可能运行程序的用户没有对C:\Windows文件夹的写入权限。请尝试在该位置手动创建文件)或编程错误


    在任何情况下,你都需要做一些事情来解决这个问题。如果无法调试,则应将代码的合理部分放在块中(例如,编写文件的部分)。如果发现错误,您可以输出有关错误所在部分的消息。您还应该在代码的各个位置包括一个和添加日志。安装更新后的应用程序后,如果出现错误,请在日志文件中查找代码停止的位置。

    解决方案是不要写入
    C:\Windows
    文件夹。您不是为Microsoft Windows团队工作

    除了权限问题之外,第一件会导致应用程序崩溃的事情就是没有在客户端的PC上安装运行时。您的安装包是否安装了MSVC运行时?如果没有,您是否在那台电脑上安装了MSVC可再发行运行时?

    您为您的客户提供了一款“TODO:…”产品,这真是太棒了?请编辑版本信息以反映您的产品名称~

    至于坠机场景:

    • 检查你的应用程序是否真的需要管理员权限,如果需要,从“以管理员身份运行”开始,看看它是否解决了问题
    • 在“停止工作对话框”或Windows事件查看器中查看问题详细信息。在这两者中,您都可以看到异常代码(如0xC0000005)和DLL名称。为此,您应该通过在链接器设置中启用
      /DEBUG
      标志来启用PDB文件生成(这与编译器设置中的_DEBUG宏不同)
    • 放置一些文件日志或消息框(临时)并查看程序是否正常运行。是的,您需要做一些更改,构建并再次提供给您的客户(请不要将“待办事项”作为产品名称-要专业!)
    “我编写了一个程序,试图在C:\windows\目录中写入文件。”


    这就是你的问题所在。不要这样做。

    你做了程序的发布版本吗?@John Paul:是的,做了程序的发布版本如果我们不能检查代码,我们怎么知道解决方案?你不能打电话给你父亲说“我的车坏了,我该怎么办?”。原因包括电池坏了,汽油没了,油没了,过热,火花塞坏了,穿孔,方向盘被偷了,汽车被偷了,车里有定时炸弹,试图开车上山,交通堵塞,乘客太重,等等。等等。明白我的意思了吗?@phresnel:谢谢你的宝贵意见。我曾尝试在客户端PC上用管理员用户运行该程序,但结果是相同的错误。@rahh,只是想确定一下-你是用管理员组成员的用户运行该程序,还是使用“以管理员身份运行”来运行该程序?如果是Vista/7/2008站点,您应该同时使用这两个选项-使用本地管理员用户,并以管理员身份运行。@rahhh:真不幸。正如Micrsoft的Raymond Chen所说,“我们相信程序员会做正确的事情”。直到现在,他们才更加积极地执行旧规则。