视频聊天vs2003工程转vs2010工程问题记录

今天需要将一份vs2003上面的工程转成vs2010下面的,在转换过程中出现了如下问题,特作此记录。

一.头文件streams.h、qedit.h找不见

这个错误需要我们在工程中配置directshow,由于目前directshow已经不随着directx一起发布了,而是集成到了windows platform sdk当中,所以我们需要安装windows platfrom sdk7.

接下来,我们需要进入目录“C:\Program Files\Microsoft SDKs\Windows\v7.1\Samples\multimedia\directshow\BaseClasses”,打开baseclasses.sln文件,进行编译即可生成工程中所需要的库文件strmbaseRU.lib、strmbaseDU.lib,其所在目录是“C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1\Samples\multimedia\lib”,如何生成的是64位的库文件,则所在目录是“C:\Program Files\Microsoft SDKs\Windows\v7.1\Samples\multimedia\libx64”。

生成好了所需要的directshow库文件后,就需要在vs2010中配置它了。如果整个解决方案里面的工程都需要用到directshow的话,可以在通过如下方式设置。

1.点击“view->other window->property manager"

2. 点击任意一个工程,双击Microsoft.Cpp.Win32.user,在弹出框中设置include、llibrary即可

  

视频聊天vs2003工程转vs2010工程问题记录_第1张图片


下面是directShow的设置情况:

1.include

  • C:\Program Files\Microsoft SDKs\Windows\v7.1\Samples\multimedia\directshow\BaseClasses
  • C:\Program Files\Microsoft SDKs\Windows\v7.1\Samples\multimedia\directshow\common
  • C:\Program Files\Microsoft SDKs\Windows\v7.1\Include
  • C:\Program Files\Microsoft SDKs\Windows\v6.0A\Include

2.lib

  • C:\Program Files\Microsoft SDKs\Windows\v7.1\Samples\multimedia\lib
  • C:\Program Files\Microsoft SDKs\Windows\v6.0A\Lib

设置了以上内容后,在编译qedit.h的时候会报:无法打开包括文件:"dxtrans.h": No such file or directory c:\program files\microsoft sdks\windows\v6.0a\include\qedit.h 498这个错误,修正该错误的方法为在qedit.h文件中添加如下内容即可:

#pragma include_alias( "dxtrans.h", "qedit.h" )
#define __IDxtCompositor_INTERFACE_DEFINED__
#define __IDxtAlphaSetter_INTERFACE_DEFINED__
#define __IDxtJpeg_INTERFACE_DEFINED__
#define __IDxtKey_INTERFACE_DEFINED__

二.报连接错误GIPSVoiceEngineLib.lib(lpc_maskingmodel.obj) : error LNK2019: unresolved external symbol __iob referenced in function _GIPS_ISAC_levdurb
1>GIPSVoiceEngineLib.lib(fftns.obj) : error LNK2001: unresolved external symbol __iob

解决方法为:

//在main函数文件中添加如下语句
#ifdef __cplusplus
extern "C" 
#endif
FILE _iob[3] = {__iob_func()[0], __iob_func()[1], __iob_func()[2]}; 

三.工程包错”fatal error LNK1146: no argument specified with option '/out:'“

这个错误的原因是系统或者文件夹下面有cl.exe这个文件,而vs2010没有用自己的cl.exe,使用个系统目录下或者工程目录下面的老版本的cl.exe的原因,将这个文件移除即可解除这个错误



你可能感兴趣的:(VS2010,DirectX)