用nsis将做好的采集程序打包,用了做界面的dll 还有相机的dll。问题是在有的机器上可以正常运行,而有的机器上却提示应用程序正常初始化失败。
     哪位大哥给点提示啊。。

解决方案 »

  1.   

    你你的程序之间拷贝到有问题的机器上,用depends查看下缺少那些必要的DLL库
      

  2.   

    Warning: At least one module has an unresolved import due to a missing export function in a delay-load dependent module.用depends加载以后有个提示。是不是程序编译的时候出了问题
      

  3.   

    没关系,看下有没有红色提示的dll
      

  4.   

    Module一栏 下面有个dll前面的绿色方块变成红色的方块算不算。。
      

  5.   

    是使用了 Windows Side by Side 的 DLL/EXE 檔嗎?使用 NSIS 要特別注意打包 WinSxS 的方法, 因為只有 Microsoft 的 Installer 才根本上完善地支持.打包方法要視乎目標電腦的作業系統才能知道是否合適.
      

  6.   

    用depends查看后 发现相机的dll调用了MFC80dll  MSVCR80.dll等
    可以我的机器没有装过2005 我用的是2003  
      

  7.   


    那你应该给目标机器装VS2008的分发库下载地址:http://www.microsoft.com/downloads/details.aspx?familyid=9B2DA534-3E03-4391-8A4D-074B9F2BC1BF&displaylang=zh-cn
      

  8.   

    运行库必须的DLL缺少了,你装个.Net FrameWork就行了,里面会带有运行库的
    或者你的程序在编译的时候使用“静态库中使用MFC”即可
      

  9.   

    用了静态库编译后出现
    MSVCRTD.lib(MSVCR71D.dll) : error LNK2005: _fclose 已经在 libcmtd.lib(fclose.obj) 中定义  等类似的错误 。怎么改。。
      

  10.   

    若 MFC, VC-runtime 等有保安/bug-fix更新時, 使用靜態連結, LZ 的軟件便當災了.
      

  11.   

    舉一個例子, 寫一個不到 1MB 的軟件, 卻要在 NSIS 自帶 7MB 的分發庫把要用不用的東西通通包含, 有沒有更好的辦法呢?
      

  12.   

    Good article.Deploying the Visual C++ libraries with an NSIS installer
    By Koby Kahanehttp://kobyk.wordpress.com/2008/04/12/deploying-the-visual-c-libraries-with-an-nsis-installer/
      

  13.   


    http://blog.csdn.net/pgmsoul/archive/2009/05/20/4203941.aspx问问题前不妨自己先Google一下