- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
一. 第一步,设置INCLUDE及LIB目录 在把dxsdk中提供的baseclass编译通过后,用四种方式编译,会分别生成四个lib,一般只用到了 其中的Debug和Release文件,在tool|option|vc++ directories中包含的files中设置如下。这里需要加入得include files有四种:D:/SDK/DXSDK/IncludeD:/SDK/DXSDK/Samples/C++/DirectShow/BaseClassesD:/SDK/DXSDK/Samples/C++/DirectShow/CommonD:/SDK/DXSDK/Samples/C++/Common/Include (这里可能是Common)(接下来才是VC原来的) 在后边的library files中也需要增加三到四种的文件:D:/SDK/DXSDK/LibD:/SDK/DXSDK/Samples/C++/DirectShow/BaseClasses/Debug (基类编译前,这两个可以不设置)D:/SDK/DXSDK/Samples/C++/DirectShow/BaseClasses/Release(接下来才是VC原来的) 二. 第二步,编译BaseClasses基类 本人使用的是VS2005,要使用DirectShow进行编程,需要对环境进行必要的配置。第一步:对dssdk中的baseclass.sln进行编译,生成需要的debug和release文件,具体步骤如下 :在VS6中,安装DirectShow9c版本之后,直接打开BaseClass中的Vc6工程baseclasses.dsw文件, 直接编译即可,编译Debug Release Debug_Unicode Release_Unicode四个版本,都需要进行 额外的设置(头文件或者链接库目录设置)。DirectShow的BaseClass中已经带了VS2005的工程文件baseclasses.sln,在vs2005中打开此文件 ,提示你进行必要的工程转换,转换之后开始编译,编译过程一般会出现下面两个问题:(1)C:/Program Files/Microsoft Visual Studio 8/VC/PlatformSDK/include/winnt.h(222) : error C2146: syntax error : missing ; before identifier PVOID64(2)error C4430: missing type specifier - int assumed. Note: C++ does not support default-int(3)error C2065: Count : undeclared identifier第一类问题的解决:project-BaseClasses properties-configuration-C/C++ - General- Additional Include Directories里面的内容(.,../../../../include)删掉,重新编译, PVOID64的错误消失,原因如下:POINTER_64 是一个宏,在64位编译下起作用,它包含在SDK目录下的BASETSD.H中(Microsoft Visual Studio 8/VC/PlatformSDK/Include/basetsd.h(23):#define POINTER_64 __ptr64),但 DXSDK自己也带了一个basetsd.h,里面没有定义POINTER_64,从而导致出错,只需要改变include files的优先级即可。。当然,也可以改写winnt.h中的代码,将typedef void *PVOID;typedef void * POINTER_64 PVOID64;改成typedef void *PVOID;typedef void * POINTER_64;typedef void * PVOID64;第二类问题的解决:错误发生在:operator=(LONG);函数定义中,这是因为在VC6中,如果没有显 示的指定返回值类型,编译器将其视为默认整形;但是vs2005不支持默认整形,解决这个问题不 能修改每个没有显示指示返回值类型的函数地方,可以用wd4430来解决;具体的在工程选项中的 c++/Command Line中添加/wd4430即可。第三个错误发生在for循环中,vc6中for循环中定义的变量相当于在for外面定义,可以在for之外 地方使用;但是vs2005for循环中定义变量相当于域{}变量,只能在for循环中使用。要解决
您可能关注的文档
最近下载
- 实施指南《GB21345 - 2024黄磷单位产品能源消耗限额》实施指南.pptx VIP
- 吉林省德惠市第三中学2024-2025学年七年级上学期9月月考地理试题.docx VIP
- 气流干燥器设计说明书.doc VIP
- 《电子商务基础》中职电子商务专业全套教学课件.pptx
- 桶装水项目质量管理方案.docx VIP
- 地震数据采集设备的收放方法、集运箱和车辆.pdf VIP
- 压力管道壁厚及开孔补强计算.xls VIP
- 四五级拼音版 (20220824修订).pdf VIP
- 幼儿园区域留痕培训.pptx VIP
- 2025年贵州省高职(专科)分类招生中职生文化综合考试试卷(英语试题)676.pdf VIP
文档评论(0)