您的位置:首页 > 其它

VS2008编译项目遇到的问题以及解决方法

2013-11-15 23:10 731 查看
1.error :  _WIN32_WINNT settings conflicts with _WIN32_IE setting

解决:

项目属性 -> c/c++ ->预处理器 ->
预处理器定义,里面有一个_WIN32_WINNT=0x400,

改为_WIN32_WINNT=0x0500就好了。不用改代码。

 

2.错误提示信息:fatal error C1083: Cannot open include file: 'streams.h': No such file or directory

 

错误原因:找不到streams.h这个文件

 

解决方法:

 

1)
安装directX sdk

2)打开安装目录下的dshow.dsw,进行编译

3)在VC++的Tools/Option/Directory的Include和Library中分别加入

C:/DXSDK/Include

C:/DXSDK/SAMPLES/C++/DIRECTSHOW/BASECLASSES

C:/DXSDK/SAMPLES/C++/COMMON/INCLUDE

 

C:/DXSDK/Lib

C:/DXSDK/SAMPLES/C++/DIRECTSHOW/BASECLASSES/DEBUG

 

4)在编译你工程前,在Project/Setting/Link/中加入 strmbasd.lib uuid.lib winmm.lib

 

操作:

头文件

D:\sdk\dx90asdk\Include

D:\sdk\dx90asdk\Samples\C++\Common\Include

D:\sdk\dx90asdk\Samples\C++\DirectShow\BaseClasses

 

lib文件

D:\sdk\dx90asdk\lib

 

3.error C4430:缺少类型说明符 -
假定为 int。注意: C++不支持默认 int
错误的解决方法

 解决方法:

一些函数定义中,在VC6中,如果没有显示的指定返回值类型,编译器将其视为默认整型;

但是vs2008/vs2010不支持默认整型,解决这个问题不能修改每个没有显示指示返回值类型的函数地方,

可以用排除4430来解决;具体的在打开project->BaseClasses properties->configuration->C/C++ ->Advance

中禁用特定警告中排除4430即可。

 

4.下面使用i的时候提示变量未定义。

       INT i;

       for (i = 0; i< m_nBuffers; i++

修改前

       for (INT i = 0; i< m_nBuffers; i++

 

5.

DSCapture.obj : error LNK2019:无法解析的外部符号 "int __cdecl wsprintfWInternal(wchar_t *,wchar_t const *,...)"

(?wsprintfWInternal@@YAHPA_WPB_WZZ),该符号在函数

"protected: long __thiscall CDSCapture::AddGraphToRot(struct IUnknown *,unsigned long *)"

(?AddGraphToRot@CDSCapture@@IAEJPAUIUnknown@@PAK@Z)中被引用

 

解决方法:

把wsprintfW改为swprintf即可。

 

 转载请注明原创链接:http://blog.csdn.net/wujunokay/article/details/16350185

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: