<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[wen_eric的专栏]]></title><description><![CDATA[]]></description><link>https://blog.csdn.net/wen_eric</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; wen_eric]]></copyright><item><title><![CDATA[VC2005从开发MFC ActiveX ocx控件到发布到.net网站的全部过程]]></title><link>https://blog.csdn.net/wen_eric/article/details/49754875</link><guid>https://blog.csdn.net/wen_eric/article/details/49754875</guid><author>wen_eric</author><pubDate>Tue, 10 Nov 2015 07:48:06 +0800</pubDate><description><![CDATA[http://www.cnblogs.com/gengaixue/archive/2010/08/13/1799112.html

开篇语：最近在弄ocx控件发布到asp.net网站上使用，就是用户在使用过程中，自动下载安装ocx控件。（此文章也是总结了网上好多人写的文章，我只是汇总一下，加上部分自己的东西，在这里感谢所有在网上发表相关内容的朋友们。）
ActiveX控件用于Web的过程是将]]></description><category></category></item><item><title><![CDATA[类的static变量 连接时，提示无法解析的外部符号]]></title><link>https://blog.csdn.net/wen_eric/article/details/46773197</link><guid>https://blog.csdn.net/wen_eric/article/details/46773197</guid><author>wen_eric</author><pubDate>Mon, 06 Jul 2015 13:26:44 +0800</pubDate><description><![CDATA[问题：
在类MyClass.h中定义一个static成员    static QVector m_vecXmlDe;
当在其他类中引用该成员时m_vecXmlDe.pushback(i)，会提示m_vecXmlDe无法解析的外部符号。
原因：
没有初始化该静态成员。
解决办法：
在MyClass.cpp中初始化该成员变量，QVector CMyClass::m_vecXmlDe;]]></description><category></category></item><item><title><![CDATA[实战TinyXML]]></title><link>https://blog.csdn.net/wen_eric/article/details/46538447</link><guid>https://blog.csdn.net/wen_eric/article/details/46538447</guid><author>wen_eric</author><pubDate>Wed, 17 Jun 2015 21:24:55 +0800</pubDate><description><![CDATA[这几天在埋头写自己的3D文件浏览器（稍后发布），突发奇想的要把自己的内部格式转化成XML，于是，把以前在研究所时用过的ExPat翻了出来。
ExPat是基于事件的XML解释器，速度挺快的，但结构方面有点不敢恭维－－当年写配置文件的导出导入部分花了我足足1个星期！而且由于它是基于事件发生的次序（SAX），似乎有时会发生一些无法控制的情况－－例如进入某Level后忘了记录，结果……后面的程序全部死掉]]></description><category></category></item><item><title><![CDATA[C++ TinyXml操作(含源码下载)]]></title><link>https://blog.csdn.net/wen_eric/article/details/46538437</link><guid>https://blog.csdn.net/wen_eric/article/details/46538437</guid><author>wen_eric</author><pubDate>Wed, 17 Jun 2015 21:23:18 +0800</pubDate><description><![CDATA[前言
TinyXML是一个开源的解析XML的解析库，能够用于C++，能够在Windows或Linux中编译,使用TinyXML进行C++ XML解析，使用简单，容易上手。
这个解析库的模型通过解析XML文件，然后在内存中生成DOM模型，从而让我们很方便的遍历这棵XML树。 
DOM模型即文档对象模型，是将整个文档分成多个元素（如书、章、节、段等），并利用树型结构表示这些元素之间的顺序关系以及]]></description><category></category></item><item><title><![CDATA[C++xml文件操作 CMarkup学习方法说明(转)]]></title><link>https://blog.csdn.net/wen_eric/article/details/46517635</link><guid>https://blog.csdn.net/wen_eric/article/details/46517635</guid><author>wen_eric</author><pubDate>Tue, 16 Jun 2015 14:12:59 +0800</pubDate><description><![CDATA[最近正在研究C++下的XML分析工具CMarkup。初次和XML相遇是基于C#对XML的操作。C#的XmlDocument和XmlNode给我印象之深，让我至今都无法忘怀。现在想在C++下发掘XML的强大，结果却发现建房子你除了需要基本的建设材料外，还需要些而外的工具。不像C#那样，已经打成包供你直接使用了。好在有知道CMarkup这个小型XML的分析器，可以为我所用。俗话说：磨刀不误砍柴工。我现]]></description><category></category></item><item><title><![CDATA[vs2010 问题 >LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏]]></title><link>https://blog.csdn.net/wen_eric/article/details/46516911</link><guid>https://blog.csdn.net/wen_eric/article/details/46516911</guid><author>wen_eric</author><pubDate>Tue, 16 Jun 2015 13:04:27 +0800</pubDate><description><![CDATA[>LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏
问题说明：当安装VS2012之后，原来的.NET 4.0会被替换为.NET 4.5。卸载VS2012时，不会恢复.NET 4.0。

l 当VS2012安装后，VS2010的cvtres.exe就无法使用了。如果你的PATH环境变量中VS2010的工具路径第一个出现，而且链接器需要将.re]]></description><category></category></item><item><title><![CDATA[VC工程中各文件的作用以及VC工程和VS工程相互转换]]></title><link>https://blog.csdn.net/wen_eric/article/details/30065027</link><guid>https://blog.csdn.net/wen_eric/article/details/30065027</guid><author>wen_eric</author><pubDate>Wed, 11 Jun 2014 16:04:14 +0800</pubDate><description><![CDATA[*.dsp(DeveloperStudio Project)：是VC++的工程配置文件,比如说你的工程包含哪个文件,你的编译选项是什么等等,编译的时候是按照.dsp的配置来的。
*.dsw(DeveloperStudio Workspace)：是工作区文件，用来配置工程文件的。它可以指向一个或多个.dsp文件。
*.clw：是 ClassWizard信息文件,实际上是INI文件的格式,有兴趣可]]></description><category></category></item><item><title><![CDATA[warning LNK4098: defaultlib "MSVCRT" conflicts with use of other libs; use /NODEFAULTLIB:library]]></title><link>https://blog.csdn.net/wen_eric/article/details/8995397</link><guid>https://blog.csdn.net/wen_eric/article/details/8995397</guid><author>wen_eric</author><pubDate>Thu, 30 May 2013 16:28:44 +0800</pubDate><description><![CDATA[以前经常遇到这个警告信息，因为运行并没有什么问题，所以也没深究。但是耿耿于怀那个“ 0 个错误，0 个警告”的成功提示，在网上搜了一下。原来问题出在默认库的引用选择上。

VS2008，项目——属性——配置属性——C/C++——代码生成：他有/MT，/MTd，/Md，/MDd四个选项，你必须让所有使用的库都使用相同的配置，否则就会有相应的提示，甚至可能会出现无法解析的函数。有时我们使用的库不是]]></description><category></category></item><item><title><![CDATA[利用GetPrivateProfileString读取配置文件(.ini)]]></title><link>https://blog.csdn.net/wen_eric/article/details/8991120</link><guid>https://blog.csdn.net/wen_eric/article/details/8991120</guid><author>wen_eric</author><pubDate>Wed, 29 May 2013 20:38:21 +0800</pubDate><description><![CDATA[配置文件中经常用到ini文件，在VC中其函数分别为：

写入.ini文件：bool WritePrivateProfileString(LPCTSTR lpAppName,LPCTSTR lpKeyName,LPCTSTR lpString,LPCTSTR lpFileName);
读取.ini文件：DWORD GetPrivateProfileString(LPCTSTR lpAppNam]]></description><category></category></item><item><title><![CDATA[VC预处理指令与宏定义的妙用]]></title><link>https://blog.csdn.net/wen_eric/article/details/8919144</link><guid>https://blog.csdn.net/wen_eric/article/details/8919144</guid><author>wen_eric</author><pubDate>Mon, 13 May 2013 09:28:08 +0800</pubDate><description><![CDATA[VC中预处理指令与宏定义的妙用




　　刚接触到MFC编程的人往往会被MFC 向导生成的各种宏定义和预处理指令所吓倒，但是预处理和宏定义又是C语言的一个强大工具。使用它们可以进行简单的源代码控制，版本控制，预警或者完成一些特殊的功能。

　　一个经典的例子

　　使用预处理与宏定义最经典的例子莫过于加在一个头文件中以避免头文件被两次编译。试想这种的情况，有一个文件header]]></description><category></category></item><item><title><![CDATA[visual studio工程设置中增加宏定义]]></title><link>https://blog.csdn.net/wen_eric/article/details/8919060</link><guid>https://blog.csdn.net/wen_eric/article/details/8919060</guid><author>wen_eric</author><pubDate>Mon, 13 May 2013 09:12:32 +0800</pubDate><description><![CDATA[1. 应用：dll生成工程中导出头文件中有如下定义：

#ifdef VIDEO_QUALITY_DIAGNOSIS_EXPORTING
#define VQD_INTERFACE _declspec(dllexport)
#else
#define VQD_INTERFACE _declspec(dllimport)
#endif

2.方法：在Solution Explorer]]></description><category></category></item><item><title><![CDATA[串口编程API函数]]></title><link>https://blog.csdn.net/wen_eric/article/details/8917841</link><guid>https://blog.csdn.net/wen_eric/article/details/8917841</guid><author>wen_eric</author><pubDate>Sun, 12 May 2013 19:48:46 +0800</pubDate><description><![CDATA[http://wenku.baidu.com/view/616d2860f5335a8102d2204d.html]]></description><category></category></item><item><title><![CDATA[线程中CreateEvent和SetEvent及WaitForSingleObject的用法]]></title><link>https://blog.csdn.net/wen_eric/article/details/8899692</link><guid>https://blog.csdn.net/wen_eric/article/details/8899692</guid><author>wen_eric</author><pubDate>Wed, 08 May 2013 12:40:50 +0800</pubDate><description><![CDATA[首先介绍CreateEvent是创建windows事件的意思，作用主要用在判断线程退出，程锁定方面.
CreateEvent 
函功能描述：创建或打开一个命名的或无名的事件对象.
EVENT有两种状态：发信号，不发信号。 
SetEvent/ResetEvent分别将EVENT置为这两种状态分别是发信号与不发信号。 
WaitForSingleObject()等待，直到参数所指定的OBJ]]></description><category></category></item><item><title><![CDATA[多线程编程之四——线程的同步]]></title><link>https://blog.csdn.net/wen_eric/article/details/8828707</link><guid>https://blog.csdn.net/wen_eric/article/details/8828707</guid><author>wen_eric</author><pubDate>Sat, 20 Apr 2013 17:59:44 +0800</pubDate><description><![CDATA[八、线程的同步 
虽然多线程能给我们带来好处，但是也有不少问题需要解决。例如，对于像磁盘驱动器这样独占性系统资源，由于线程可以执行进程的任何代码段，且线程的运行是由系统调度自动完成的，具有一定的不确定性，因此就有可能出现两个线程同时对磁盘驱动器进行操作，从而出现操作错误；又例如，对于银行系统的计算机来说，可能使用一个线程来更新其用户数据库，而用另外一个线程来读取数据库以响应储户的需要，极有可能读]]></description><category></category></item><item><title><![CDATA[多线程编程之三——线程间通讯]]></title><link>https://blog.csdn.net/wen_eric/article/details/8828703</link><guid>https://blog.csdn.net/wen_eric/article/details/8828703</guid><author>wen_eric</author><pubDate>Sat, 20 Apr 2013 17:58:21 +0800</pubDate><description><![CDATA[七、线程间通讯 
一般而言,应用程序中的一个次要线程总是为主线程执行特定的任务,这样,主线程和次要线程间必定有一个信息传递的渠道,也就是主线程和次要线程间要进行通信。这种线程间的通信不但是难以避免的，而且在多线程编程中也是复杂和频繁的，下面将进行说明。
使用全局变量进行通信
由于属于同一个进程的各个线程共享操作系统分配该进程的资源，故解决线程间通信最简单的一种方法是使用全局变量。对于标准类型]]></description><category></category></item><item><title><![CDATA[多线程编程之二——MFC中的多线程开发]]></title><link>https://blog.csdn.net/wen_eric/article/details/8828697</link><guid>https://blog.csdn.net/wen_eric/article/details/8828697</guid><author>wen_eric</author><pubDate>Sat, 20 Apr 2013 17:57:09 +0800</pubDate><description><![CDATA[五、MFC对多线程编程的支持 
MFC中有两类线程，分别称之为工作者线程和用户界面线程。二者的主要区别在于工作者线程没有消息循环，而用户界面线程有自己的消息队列和消息循环。
工作者线程没有消息机制，通常用来执行后台计算和维护任务，如冗长的计算过程，打印机的后台打印等。用户界面线程一般用于处理独立于其他线程执行之外的用户输入，响应用户及系统所产生的事件和消息等。但对于Win32的API编程而言，]]></description><category></category></item><item><title><![CDATA[多线程编程之一——问题提出]]></title><link>https://blog.csdn.net/wen_eric/article/details/8828687</link><guid>https://blog.csdn.net/wen_eric/article/details/8828687</guid><author>wen_eric</author><pubDate>Sat, 20 Apr 2013 17:55:04 +0800</pubDate><description><![CDATA[一、问题的提出
编写一个耗时的单线程程序：
新建一个基于对话框的应用程序SingleThread，在主对话框IDD_SINGLETHREAD_DIALOG添加一个按钮，ID为IDC_SLEEP_SIX_SECOND，标题为“延时6秒”，添加按钮的响应函数，代码如下：


1.void
CSingleThreadDlg::OnSleepSixSecond() 
2.{
3.Sleep]]></description><category></category></item><item><title><![CDATA[用VC资源动态链接库解决国际化问题]]></title><link>https://blog.csdn.net/wen_eric/article/details/8806039</link><guid>https://blog.csdn.net/wen_eric/article/details/8806039</guid><author>wen_eric</author><pubDate>Mon, 15 Apr 2013 21:42:13 +0800</pubDate><description><![CDATA[（一）
随着计算机应用的普及，应用软件跨国使用越来越频繁，如何实现应用软件的国际化，成为许多程序员关心的问题。这种国际化问题相对使用某一种语言的用户来说，就是本地化问题。本地化的含义比仅仅翻译菜单栏和对话框的文本内容要广泛得多，如特定文化背景的位图和图标对不同的人来说，可能会有不同的含义。在Windows系统中，应用程序开发者可以通过利用VC动态链接库，只用一套源代码就能简洁地支持多种文字。本文]]></description><category></category></item><item><title><![CDATA[使控件失去焦点]]></title><link>https://blog.csdn.net/wen_eric/article/details/8073677</link><guid>https://blog.csdn.net/wen_eric/article/details/8073677</guid><author>wen_eric</author><pubDate>Mon, 15 Oct 2012 16:37:57 +0800</pubDate><description><![CDATA[三种方式任一种：
GetDlgItem(要失去焦点的控件名)->PostMessage(WM_KILLFOCUS, 0, 0);
::SendMessage(GetDlgItem(要失去焦点的控件名)-> m_hWnd,WM_KILLFOCUS,-1,0);
 SendDlgItemMessage(要失去焦点的控件名,WM_KILLFOCUS,0,0);]]></description><category></category></item><item><title><![CDATA[in order to debug remotely or update the remote target the remote executable file name is required]]></title><link>https://blog.csdn.net/wen_eric/article/details/8063365</link><guid>https://blog.csdn.net/wen_eric/article/details/8063365</guid><author>wen_eric</author><pubDate>Fri, 12 Oct 2012 10:01:19 +0800</pubDate><description><![CDATA[本地调试按F5后弹出提示框：“in order to debug remotely or update the remote target the remote executable file name is required”。
原因：设置了远程调试连接：Debugger   Remote   Connection。
解决：Menu:->Build->Debugger   Remote]]></description><category></category></item></channel></rss>