none
使用vs2010编译的工程在xp下报错(找不到msvcp100d.dll) RRS feed

  • 问题

  • 在win7下用vs2010编译的一个简单工程,包含dialogbox,listview控件等相关内容,在win7下可以正常运行,但是在xp下无法正常运行,报错找不到msvcp100d.dll文件。

    如果同样代码用vc6编译则在win7和xp下都可以正常运行。

    大概是crt版本的问题,如何解决呢,就是在win7下用 vs2010编译,也可以在xp下正常运行呢?

    2010年8月2日 7:16

答案

  • 有的

     



    The following is signature, not part of post
    Please mark the post answered your question as the answer, and mark other helpful posts as helpful, so they will appear differently to other users who are visiting your thread for the same problem.
    Visual C++ MVP
    • 已标记为答案 zxloong 2010年8月4日 1:35
    2010年8月3日 16:29
    版主

全部回复

  • 楼主的编译选项估计是Debug,建议客户使用Release编译再试。

    msvcp100d.dll 的最后一个d是指Debug,楼主的xp由于没有安装VS2010,但exe依赖于msvcp100d.dll ,所以不能正常运行,而在win7上可以正常运行。


    We are the staff of stars
    2010年8月2日 7:37
  • 用release的话会报msvcp100.dll缺失的错误。
    2010年8月2日 7:51
  • 楼主可以说明一下Xp系统的Framework环境,以及VS2010编译条件(Framework版本,平台等信息)。

    如果楼主采用Framework4.0编译,而xp上没有安装Framework 4.0,我认为很有可能出现您所描述的情况。


    We are the staff of stars

    2010年8月2日 7:55
  • 使用的是纯windowsAPI,没有用到dotnet的东西, win7下编译使用的vs2010默认的sdk。

     

    #include <Windows.h>
    #include <WindowsX.h>
    #include <commctrl.h>
    #include "resource.h"

    #pragma comment(lib, "Comctl32.lib")

     

    int APIENTRY WinMain(  HINSTANCE hInstance,  HINSTANCE hPrevInstance,  LPSTR lpCmdLine,  int nShowCmd )
    {
        InitCommonControls();
        DialogBox(hInstance,
                        MAKEINTRESOURCE(IDD_DIALOG1), 
                        NULL,
                        Dlg_Proc);

     return 0;
    }

    2010年8月2日 8:06
  • 刚才我测试了一下:写了一个简单的CPP的exe,在没有Framework4的系统上运行,遇到的问题和楼主描述的一致。

    然后我把这两个dll(msvcp100.dll和msvcr100.dll)拷到XP上,就能正常运行了。


    We are the staff of stars
    2010年8月2日 8:25
  • 动态链接了DLL的话要随程序发布DLL。VC的DLL也不例外。

    The following is signature, not part of post
    Please mark the post answered your question as the answer, and mark other helpful posts as helpful, so they will appear differently to other users who are visiting your thread for the same problem.
    Visual C++ MVP
    2010年8月2日 13:30
    版主
  • mfc有静态链接,crt好像没有静态链接的选项,是不是就意味着,这个问题没有办法解决了,只能适应编译器的这种机制?
    2010年8月3日 6:28
  • 有的

     



    The following is signature, not part of post
    Please mark the post answered your question as the answer, and mark other helpful posts as helpful, so they will appear differently to other users who are visiting your thread for the same problem.
    Visual C++ MVP
    • 已标记为答案 zxloong 2010年8月4日 1:35
    2010年8月3日 16:29
    版主
  • 找到静态链接的选项了,以前没注意。
    2010年8月4日 1:35