下载到开发包了,遇见如下挠头的问题: 
编译StereoAPI工程时,出现很多链接错误,以前编译directshow sdk的时候会出现链接错误,那会基本都是unicode编译类型之类问题引起的。这次自己解决不了了,向您请教: 
1>StereoAPIApp.obj : error LNK2019: unresolved external symbol "long __cdecl DXUTCreateWindow(wchar_t const *,struct HINSTANCE__ *,struct HICON__ *,struct HMENU__ *,int,int)" (?DXUTCreateWindow@@YAJPB_WPAUHINSTANCE__@@PAUHICON__@@PAUHMENU__@@HH@Z) referenced in function _WinMain@16 
1>StereoAPIApp.obj : error LNK2019: unresolved external symbol "public: __thiscall CDXUTMesh::CDXUTMesh(wchar_t const *)" (??0CDXUTMesh@@QAE@PB_W@Z) referenced in function "void __cdecl InitApp(void)" (?InitApp@@YAXXZ) 
1>StereoAPIApp.obj : error LNK2019: unresolved external symbol "public: long __thiscall CDXUTDialog::AddStatic(int,wchar_t const *,int,int,int,int,bool,class CDXUTStatic * *)" (?AddStatic@CDXUTDialog@@QAEJHPB_WHHHH_NPAPAVCDXUTStatic@@@Z) referenced in function "void __cdecl InitApp(void)" (?InitApp@@YAXXZ) 
1>StereoAPIApp.obj : error LNK2019: unresolved external symbol "public: long __thiscall CDXUTListBox::AddItem(wchar_t const *,void *)" (?AddItem@CDXUTListBox@@QAEJPB_WPAX@Z) referenced in function "void __cdecl InitApp(void)" (?InitApp@@YAXXZ) 

解决方案 »

  1.   

    先谢谢sjdev的回复了。
    是的,nvidia官网上给出的lib库和它工程中调用的函数的接口不同,因此有上面的错误。上面的链接错误排除了,接着在要运行时出现错误:弹出对话框:
    Unable to start program 'd:\stereoapi\demos\direct3d9\bin\debug\StereoAPI.exe'
    This application has failed to start because the application configuration is incorrect. Review the manifest file for possible errors. Reinstalling the application may fix this problem. For more details. please see the application event log.下载到的源码的工程文件configuration 有两种:Debug Multithreaded Dll 和Release Multithreaded Dll;
    在网上搜了一下资料,说是出现上面错误的原因和Runtime Library 有关,我也分别试验了上面的几种:Multi-threaded Debug DLL,Multi-threaded等等,问题依然存在;
    各位高人给出出主意吧,先谢谢了;
      

  2.   

    哦,是在vista下面要,应该要加menifest文件在正式的版本中。
      

  3.   

    我用的是XP,怎么加manifest文件呢?
      

  4.   

    加manifest文件的方法并不好用,可以考虑静态编译:
    1.打开工程属性页(工程->属性)       
    2.将最上面的组态改为Release     
    3.选中左面树状菜单中的   组态属性->一般,将右面的工程预设值下的MFC库设置为使用MFC静态库   
    4.点最上面的组态管理员,使用中的方案组态下拉菜单中选中Release   
    5.关闭属性页   
    生成程序时,点菜单中的   生成   -〉生成**即可 
    这样生成的可执行文件便可以在别的机器上运行了,无须再拷贝任何DLL另外,你要确认nvidia所提供的DLL也在程序目录中或系统目录中。但是要方便的话,还是安装完整的库文件包比较好:微软网站上发布的vc8的runtime发布包的以及安装的vc2005里面带的包。总之,你能编译的话,说明你的系统的配置是正确的,在别的机器上不能运行是因为缺少库文件,最笨的方法是将VC也在该机器上安装一遍,并安装nvidia相关的SDK或可以单独使用的DLL文件。
      

  5.   

    进入WINDOWS事件查看器看看,看里面有什么记录,如果是清单文件的问题,一般这里都有详细错误信息.
      

  6.   

    谢谢TianChong的回复,我昨天晚上又排查了一下函数。发现问题出现在调用nvidia sdk自带的StereoI.lib库的时候;工程所要调用的库全是lib库,我已经用比较笨的办法,把所需要的库全部拷贝到工程文件所在的路径里了,但是问题依然存在。之前nvidia sdk自带的dxut.lib 中的函数接口 和 它所提到的directX sdk中的dxut.h中函数接口是不同的,所以需要自己重新编译出dxut.lib,所以我想可能和StereoI.lib有关系。