<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>Mfc on WilliamKyle&#39;s Home</title>
		<link>/tags/mfc/</link>
		<description>Recent content in Mfc on WilliamKyle&#39;s Home</description>
		<generator>Hugo</generator>
		<language>zh-Hans</language>
		
		
		
		
			<lastBuildDate>Mon, 27 Feb 2012 21:18:53 +0800</lastBuildDate>
		
			<atom:link href="/tags/mfc/index.xml" rel="self" type="application/rss+xml" />
			<item>
				<title>Visual C&#43;&#43; 6.0 CDialogBar Create 出错解决方案</title>
				<link>/archives/141/</link>
				<pubDate>Mon, 27 Feb 2012 21:18:53 +0800</pubDate>
				<guid>/archives/141/</guid>
				<description>&lt;p&gt;今天打算弄一个工具栏，于是设计了一个对话框，然后建立一个CDialogBar对象，可是在Create的时候老是出错，报错地点如下：&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;images/141.jpg&#34; alt=&#34;&#34;&gt;&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-cpp&#34; data-lang=&#34;cpp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;File:bardlg.cpp&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Line:&lt;span style=&#34;color:#ae81ff&#34;&gt;48&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;然后看了一下别人的建立过程，发现别人建立对话框的时候，是直接建立的&lt;strong&gt;IDD_DIALOGBAR&lt;/strong&gt;的对话框，于是比较了&lt;strong&gt;IDD_DIALOGBAR&lt;/strong&gt;和&lt;strong&gt;IDD_DIALOG&lt;/strong&gt;的各种参数，发现只要把建立的&lt;strong&gt;IDD_DIALOG&lt;/strong&gt;对话框的属性改一下就可以了。&lt;/p&gt;&#xA;&lt;p&gt;样式：下层；边框：无；&lt;br&gt;&#xA;更多样式：取消可见&lt;/p&gt;&#xA;&lt;p&gt;其他的设置没有测试，默认的对话框按以上设置之后就能当作工具栏使用了。&lt;/p&gt;</description>
			</item>
			<item>
				<title>VC6下通过DirectShow调用摄像头</title>
				<link>/archives/117/</link>
				<pubDate>Thu, 23 Feb 2012 23:19:08 +0800</pubDate>
				<guid>/archives/117/</guid>
				<description>&lt;p&gt;首先，我们下载一下DirectX的SDK开发包，目前我们可以使用的是&lt;a href=&#34;http://download.microsoft.com/download/7/e/9/7e9f48c6-f28a-469b-9b8e-cc84032efbd4/dxsdk_sum2004.exe&#34;&gt;DirectX 9.0 SDK（Summer 2004）&lt;/a&gt;之后的版本DirectShow已经被分离出去了。下载之后安装，安装前最好把IDE都给关了，免得路径没有添加进去。&lt;/p&gt;&#xA;&lt;h5 id=&#34;我们开始设计阶段&#34;&gt;&lt;strong&gt;我们开始设计阶段：&lt;/strong&gt;&lt;/h5&gt;&#xA;&lt;p&gt;我们先通过MFC AppWizard(exe)建立一个MFC的基本对话框，去除默认的两个按钮和文本，然后我们添加一个图像控件、一个组合框、一个按钮，然后设置属性，详情如下：&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;images/clip_image001.png&#34; alt=&#34;&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;images/clip_image002.png&#34; alt=&#34;&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;images/clip_image003.png&#34; alt=&#34;&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;images/clip_image004.png&#34; alt=&#34;&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;然后，我们通过类向导添加成员变量，详情如下：&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;images/clip_image006.jpg&#34; alt=&#34;&#34;&gt;&lt;/p&gt;&#xA;&lt;h5 id=&#34;我们双击test&#34;&gt;&lt;strong&gt;我们双击Test****按钮，进入代码编写。&lt;/strong&gt;&lt;/h5&gt;&#xA;&lt;p&gt;首先，我们把摄像头的两个文件加到项目路径下，然后再在文件视图里面添加这两个文件进项目。&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;images/clip_image007.png&#34; alt=&#34;&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;然后，我们给窗口类的头文件里面添加引用&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-cpp&#34; data-lang=&#34;cpp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;#include&lt;/span&gt; &lt;span style=&#34;color:#75715e&#34;&gt;&amp;#34;CaptureVideo.h&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;接着，给窗口类添加一个私有的成员变量&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-cpp&#34; data-lang=&#34;cpp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;private&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;:&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;         CCaptureVideo m_cap;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;然后再在窗口初始化的时候，初始化设备列表&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-cpp&#34; data-lang=&#34;cpp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;m_cap.EnumDevices(m_Device.GetSafeHwnd());&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;m_Device.SetCurSel(&lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;然后在按键的时候初始化摄像头就是的&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-cpp&#34; data-lang=&#34;cpp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;m_cap.Init(m_Device.GetCurSel(),m_Screen.GetSafeHwnd());&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;m_OK.EnableWindow(FALSE);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;我的设计环境为Windows 7 SP1 、 Visual C++ 6.0 SP6 ，借鉴的别人的程序，如果有其他问题，欢迎一起讨论。&lt;br&gt;&#xA;&lt;a href=&#34;/files/Cap.rar&#34;&gt;源代码点击下载&lt;/a&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;p&gt;关于出现以下错误的解决方案&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;C:&lt;span style=&#34;color:#ae81ff&#34;&gt;\D&lt;/span&gt;XSDK&lt;span style=&#34;color:#ae81ff&#34;&gt;\I&lt;/span&gt;nclude&lt;span style=&#34;color:#ae81ff&#34;&gt;\s&lt;/span&gt;trmif.h&lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;1018&lt;span style=&#34;color:#f92672&#34;&gt;)&lt;/span&gt; : error C2146: syntax error : missing &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;;&amp;#39;&lt;/span&gt; before identifier &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;HSEMAPHORE&amp;#39;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;C:&lt;span style=&#34;color:#ae81ff&#34;&gt;\D&lt;/span&gt;XSDK&lt;span style=&#34;color:#ae81ff&#34;&gt;\I&lt;/span&gt;nclude&lt;span style=&#34;color:#ae81ff&#34;&gt;\s&lt;/span&gt;trmif.h&lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;1018&lt;span style=&#34;color:#f92672&#34;&gt;)&lt;/span&gt; : fatal error C1004: unexpected end of file found&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;CapDlg.cpp&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;C:&lt;span style=&#34;color:#ae81ff&#34;&gt;\D&lt;/span&gt;XSDK&lt;span style=&#34;color:#ae81ff&#34;&gt;\I&lt;/span&gt;nclude&lt;span style=&#34;color:#ae81ff&#34;&gt;\s&lt;/span&gt;trmif.h&lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;1018&lt;span style=&#34;color:#f92672&#34;&gt;)&lt;/span&gt; : error C2146: syntax error : missing &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;;&amp;#39;&lt;/span&gt; before identifier &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;HSEMAPHORE&amp;#39;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;C:&lt;span style=&#34;color:#ae81ff&#34;&gt;\D&lt;/span&gt;XSDK&lt;span style=&#34;color:#ae81ff&#34;&gt;\I&lt;/span&gt;nclude&lt;span style=&#34;color:#ae81ff&#34;&gt;\s&lt;/span&gt;trmif.h&lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;1018&lt;span style=&#34;color:#f92672&#34;&gt;)&lt;/span&gt; : fatal error C1004: unexpected end of file found&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;CaptureVideo.cpp&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;C:&lt;span style=&#34;color:#ae81ff&#34;&gt;\D&lt;/span&gt;XSDK&lt;span style=&#34;color:#ae81ff&#34;&gt;\I&lt;/span&gt;nclude&lt;span style=&#34;color:#ae81ff&#34;&gt;\s&lt;/span&gt;trmif.h&lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;1018&lt;span style=&#34;color:#f92672&#34;&gt;)&lt;/span&gt; : error C2146: syntax error : missing &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;;&amp;#39;&lt;/span&gt; before identifier &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;HSEMAPHORE&amp;#39;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;C:&lt;span style=&#34;color:#ae81ff&#34;&gt;\D&lt;/span&gt;XSDK&lt;span style=&#34;color:#ae81ff&#34;&gt;\I&lt;/span&gt;nclude&lt;span style=&#34;color:#ae81ff&#34;&gt;\s&lt;/span&gt;trmif.h&lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;1018&lt;span style=&#34;color:#f92672&#34;&gt;)&lt;/span&gt; : fatal error C1004: unexpected end of file found&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Generating Code...&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;执行 cl.exe 时出错.&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;在项目的StdAfx.cpp里面加上&lt;/p&gt;</description>
			</item>
	</channel>
</rss>
