找不到工程区文件,是不是要用VC7.0才行啊?
解决方案 »
- 使用boost编译速度为什么很慢?
- 有关OPENROWSET的问题,请进来看看,你一定行!!!!!!!!!!!
- 求助IE屏幕划词功能实现!
- 还是combo box 的问题!
- 两个控件实现属性绑定
- 关于VC程序中快捷键调用方法的实现?
- 大侠注意啦!!!!!!请问如何在自己创建的窗口里滚动显示信息???????
- 各位大虾,请问用win32API怎样实现把鼠标限制在自己的窗口内,让鼠标不超出边界框???
- 我在Activex 控件中调用 CMSComm 类的方法时出错
- 某地级市公安部门要上一套车辆GPS报警系统,有兴趣的速和我联系!
- 类似BitComet界面的实现问题
- CSocket问题和语音识别接口问题
我新建了个工程,然后把所有文件添加进去编译
但出现很多错误,全部都是strmif.h文件中的syntax error : missing ';' before identifier 'HSEMAPHORE'
是不是安装包的问题?
我下载的是April 2005的版本,然后又下载了一个拓展包
我是用directshow
VC开发环境的配置(假设DirectX SDK8.1安装在C:\DXSDK目录下。)
1. 编译基类源代码,至少生成两个静态库文件
打开C:\ DXSDK\samples\Multimedia\DirectShow\BaseClasses\baseclasses.dsw,Debug版本生成strmbasd.lib,Release版本生成strmbase.lib。2. 配置VC的编译环境:Include目录和Lib目录。执行VC的菜单命令Tools | Options…,在随后弹出的对话框中进入Directories一页,在Show directories for一项选择Include files,然后配置如下:(注意,务必将DirectX SDK的目录放在标准的VC目录之前。)
C:\DXSDK\Include
C:\ DXSDK\samples\Multimedia\DirectShow\BaseClasses
C:\ DXSDK\samples\Multimedia\Common\include
C:\Program Files\Microsoft Visual Studio\VC98\INCLUDE
C:\Program Files\Microsoft Visual Studio\VC98\MFC\INCLUDE
C:\Program Files\Microsoft Visual Studio\VC98\ATL\INCLUDE
再在Show directories for一项选择Library files,配置如下:
C:\DXSDK\Lib
C:\ DXSDK\samples\Multimedia\DirectShow\BaseClasses \DEBUG
C:\ DXSDK\samples\Multimedia\DirectShow\BaseClasses \RELEASE
C:\PROGRAM FILES\MICROSOFT SDK\LIB
C:\Program Files\Microsoft Visual Studio\VC98\LIB
C:\Program Files\Microsoft Visual Studio\VC98\MFC\LIB3. 配置DirectShow应用程序开发项目需要连接的库文件。
执行VC的菜单命令Project | Settings…,在随后弹出的对话框中进入Link一页,在Object/library modules一项,Debug版输入Strmbasd.lib Msvcrtd.lib Winmm.lib,Release版本输入Strmbase.lib Msvcrt.lib Winmm.lib。Ignore default libraries. (In Microsoft® Visual C++® 6.0, choose Settings from the Project menu. Click the Link tab and check Ignore all default libraries.)4. 如果安装的DirectX SDK的版本是9.0以前的,请确认在编译应用程序的Debug版本之前已经定义了DEBUG宏。执行VC的菜单命令Project | Settings…,在随后弹出的对话框中进入C/C++一页,在Category一项选择Preprocessor,然后确认Preprocessor definitions中有DEBUG(如果没有就自己加上)。
另外,应用程序在调用任何COM库函数之前,务必调用CoInitialize或CoInitializeEx进行COM库的初始化(一般只需在程序启动的时候调用一次);在结束所有COM操作之后,调用CoUninitialize进行反初始化(一般在程序退出之前调用一次)。而当程序中有多个线程都要使用COM库函数时,则每个线程都要进行初始化和反初始化。总之,要保证CoUninitialize和CoInitialize(或CoInitializeEx)调用的一一配对。