我遇到疑难杂症了:我的应用程序在win 2k/xp下运行正常,在win 2003下,dll中通过DoModal()启动失败,GetLastError返回值1812:The specified image file did not contain a resource section, 但是如果在win 2k3下装了VC,则又一切正常。请大家帮忙。

解决方案 »

  1.   


    又发现,将装了vc的系统的\windows\winsxs文件夹拷贝到目标机器上,也能运行正常, 看来就是这个winsxs中的某些文件引起的,可是目前我对这个机制却不了解  
      

  2.   

    winsxs??
    这个有点象解决vc依赖问题,好象是返回14001错误的
      

  3.   

    VC的DEBUG?
    是不是他要依赖与系统库?
    这就有点过分了~
      

  4.   

    WinSxS是Windows目录下一个重要的目录,里面的文件是不可删除的。
            WinSxS下有很多重要的组件,版本也很繁杂,为了保证Windows的正常运行,请确保这些文件一个都不能少。这些文件支撑着 mscorwks.dll,没有它们,mscorwks也无法加载。强行删除后可能只有以安全模式能勉强进入Windows,Windows也就废了。        以下是微软关于关于WinSxS的说明:
            支持COM和共享DLL的隔离
            Windows XP/Vista在“Windows”目录下提供了一个名为“WinSxS”(Windows Side-by-Side)的文件夹。系统使用这个文件夹存储各个版本的Windows XP组件,减少因为动态链接库(Dynamic Link Libraries,DLL)引起的配置问题(DLL hell)。组件的多个版本都存储在这个文件夹中。Windows XP允许Win32? API组件和应用程序使用与这些程序在测试时所使用的版本完全一致的Microsoft 组件版本,并且不受其它程序或者操作系统升级的影响。Windows XP通过XML文件来实现这一功能,这些XML文件保存了有关应用程序配置的元数据,例如COM类、接口和类型库。