<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[jia_xiaoxin的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/jia_xiaoxin</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; jia_xiaoxin]]></copyright><item><title><![CDATA[dll 导出的类遇到 error LNK2019 的解决方法]]></title><link>https://blog.youkuaiyun.com/jia_xiaoxin/article/details/77368569</link><guid>https://blog.youkuaiyun.com/jia_xiaoxin/article/details/77368569</guid><author>jia_xiaoxin</author><pubDate>Fri, 18 Aug 2017 13:42:19 +0800</pubDate><description><![CDATA[今天在VS2010环境下写了一个测试程序用来测试类的导出，DLL头文件如下：


#if defined(CHAPTER2LIBRARY_EXPORT) // inside DLL
#   define CHAPTER2API   __declspec(dllexport)
#else // outside DLL
#   define CHAPTER2API   __declspec]]></description><category></category></item><item><title><![CDATA[IE调用Activex控件时EVENT的三种调用方式]]></title><link>https://blog.youkuaiyun.com/jia_xiaoxin/article/details/73850677</link><guid>https://blog.youkuaiyun.com/jia_xiaoxin/article/details/73850677</guid><author>jia_xiaoxin</author><pubDate>Wed, 28 Jun 2017 17:30:22 +0800</pubDate><description><![CDATA[Test 1 uses the "for" tag to setup the callback to the activeX event. This is successful on all versions IE8, 9, 10 and
 11.




	
		TestEvent Example HTML
		
        
        
        
		]]></description><category></category></item><item><title><![CDATA[关于TCP和和UDP包的大小]]></title><link>https://blog.youkuaiyun.com/jia_xiaoxin/article/details/7775919</link><guid>https://blog.youkuaiyun.com/jia_xiaoxin/article/details/7775919</guid><author>jia_xiaoxin</author><pubDate>Mon, 23 Jul 2012 16:19:28 +0800</pubDate><description><![CDATA[UDP一次发送数据包的大小，TCP一次发送数据包的大小。
MTU最大传输单元，这个最大传输单元实际上和链路层协议有着密切的关系，EthernetII帧的结构DMAC+SMAC+Type+Data+CRC由于以太网传输电气方面的限制，每个以太网帧都有最小的大小64bytes最大不能超过1518bytes，对于小于或者大于这个限制的以太网帧我们都可以视之为错误的数据帧，一般的以太网转发设备会丢弃这些]]></description><category></category></item><item><title><![CDATA[nafxcwd.lib(afxmem.obj) : error LNK2005]]></title><link>https://blog.youkuaiyun.com/jia_xiaoxin/article/details/7768417</link><guid>https://blog.youkuaiyun.com/jia_xiaoxin/article/details/7768417</guid><author>jia_xiaoxin</author><pubDate>Fri, 20 Jul 2012 17:45:35 +0800</pubDate><description><![CDATA[近日在VC6.0写一个程序，编译时出如下错误
Linking...
nafxcwd.lib(afxmem.obj) : error LNK2005: "void __cdecl operator delete(void *)" (??3@YAXPAX@Z) already defined in LIBCMTD.lib(dbgdel.obj)
Debug/ShowLog.exe : fatal]]></description><category></category></item><item><title><![CDATA[关于UDP通信中的10045错误]]></title><link>https://blog.youkuaiyun.com/jia_xiaoxin/article/details/4256240</link><guid>https://blog.youkuaiyun.com/jia_xiaoxin/article/details/4256240</guid><author>jia_xiaoxin</author><pubDate>Wed, 10 Jun 2009 01:59:00 +0800</pubDate><description><![CDATA[ 在做UDP通信的过程中,服务器端绑定IP和PORT: m_stLocalAddr.sin_family =      AF_INET; m_stLocalAddr.sin_addr.s_addr = htonl(INADDR_ANY);  m_stLocalAddr.sin_port =        htons( 6000); m_hSocket = socket( PF_INET]]></description><category></category></item><item><title><![CDATA[VC++中#import的使用]]></title><link>https://blog.youkuaiyun.com/jia_xiaoxin/article/details/3944889</link><guid>https://blog.youkuaiyun.com/jia_xiaoxin/article/details/3944889</guid><author>jia_xiaoxin</author><pubDate>Sat, 28 Feb 2009 12:22:00 +0800</pubDate><description><![CDATA[#import 指令1. C++中使用 COM 簡單的方法是用 #import 導入 type library2. # import 指令將 COM 產生對應的 C++類別，可以用接近於VBScript和Visual Basic的語句操作 COM3. 使用 #import 命令就可以將該文件導入到我們的程式碼中。type library 的內容將被轉換為描述了 COM Interface ]]></description><category></category></item><item><title><![CDATA[MFC和模块状态]]></title><link>https://blog.youkuaiyun.com/jia_xiaoxin/article/details/3795431</link><guid>https://blog.youkuaiyun.com/jia_xiaoxin/article/details/3795431</guid><author>jia_xiaoxin</author><pubDate>Fri, 16 Jan 2009 13:37:00 +0800</pubDate><description><![CDATA[什么是模块状态？       在每个使用了Microsoft   Foundation   Classes   （MFC）的模块（EXE，DLL）中，都存在一种“全局”数据，MFC正是依靠这种全局数据才能执行正确的操作。这种全局数据就叫做MFC   模块状态。       例如，MFC应用程序经常使用下面的代码从资源文件中加载字符串：           CString   str;       ]]></description><category></category></item><item><title><![CDATA[用VC写DLL中"error LNK2005: _DllMain@12 already defined"的应对]]></title><link>https://blog.youkuaiyun.com/jia_xiaoxin/article/details/3705485</link><guid>https://blog.youkuaiyun.com/jia_xiaoxin/article/details/3705485</guid><author>jia_xiaoxin</author><pubDate>Sun, 04 Jan 2009 17:19:00 +0800</pubDate><description><![CDATA[用Visual C++编写DLL,如果在new project时选了MFC DLL,而后又想写成Regular DLL,即拥有自己的DllMain()入口函数,则在build时会遇到类似如下的link错误: error LNK2005: _DllMain@12 already defined in xxx.OBJ几种解决方案:1, 你只需要在工程设置里面，把WIN32,NDEBUG]]></description><category></category></item><item><title><![CDATA[读《大话设计模式》－－－观察者模式(Observer) ]]></title><link>https://blog.youkuaiyun.com/jia_xiaoxin/article/details/3414476</link><guid>https://blog.youkuaiyun.com/jia_xiaoxin/article/details/3414476</guid><author>jia_xiaoxin</author><pubDate>Sun, 30 Nov 2008 17:59:00 +0800</pubDate><description><![CDATA[观察者模式(Observer)又叫发布-订阅(Public/Subscribe)模式.观察者模式定义了一种一对多的依赖关系，让多个观察者对象同时监听某一个主题对象。这个主题对象在状态发生变化时，会通知所有观察者对象，使它们能够自动更新自己。观察者模式的结构图  观察者模式一般实现：// Observer.cpp : Defines the entry point f]]></description><category></category></item><item><title><![CDATA[VC下生成汇编代码的方法： ]]></title><link>https://blog.youkuaiyun.com/jia_xiaoxin/article/details/3348349</link><guid>https://blog.youkuaiyun.com/jia_xiaoxin/article/details/3348349</guid><author>jia_xiaoxin</author><pubDate>Sat, 22 Nov 2008 00:52:00 +0800</pubDate><description><![CDATA[生成汇编代码的方法： debug方式下： vc8 下面是： Project- > ...Properties - > C/C++ - > OutputFiles：选择右边的Assembler Output vc6 下面是： Project Settings - > C/C++ - > Listing Files 选择Listing File Types 输出: vc8 在debug目录下的]]></description><category></category></item><item><title><![CDATA[析构函数声明为私有的作用]]></title><link>https://blog.youkuaiyun.com/jia_xiaoxin/article/details/3348045</link><guid>https://blog.youkuaiyun.com/jia_xiaoxin/article/details/3348045</guid><author>jia_xiaoxin</author><pubDate>Fri, 21 Nov 2008 23:09:00 +0800</pubDate><description><![CDATA[当我们规定类只能在堆上分配内存时，就可以将析构函数声明为私有的。class alloc{public:    alloc():private:   ~alloc();}; 如果在栈上分配空间，类在离开作用域时会调用析构函数释放空间，此时无法调用私有的析构函数。如果在堆上分配空间，只有在delete时才会调用析构函数。 可以添加一个destroy()函]]></description><category></category></item><item><title><![CDATA[operator new抛出异常的处理]]></title><link>https://blog.youkuaiyun.com/jia_xiaoxin/article/details/3347904</link><guid>https://blog.youkuaiyun.com/jia_xiaoxin/article/details/3347904</guid><author>jia_xiaoxin</author><pubDate>Fri, 21 Nov 2008 22:37:00 +0800</pubDate><description><![CDATA[operator new在无法完成内存分配请求时会抛出异常(以前的做法一般是返回0，一些旧一点的编译器还这么做，我们也可以恢复到旧的编译器方式例如：char * lp = new char[10000000]; 如果分配失败，在旧的编译器下会返回0，但是在新的编译器下会抛出异常std::bad_alloc我们也可以用在新的编译器下不抛出异常而返回0char * lp = new]]></description><category></category></item><item><title><![CDATA[读《大话设计模式》－－－生成器模式(Builder) ]]></title><link>https://blog.youkuaiyun.com/jia_xiaoxin/article/details/3347187</link><guid>https://blog.youkuaiyun.com/jia_xiaoxin/article/details/3347187</guid><author>jia_xiaoxin</author><pubDate>Fri, 21 Nov 2008 17:55:00 +0800</pubDate><description><![CDATA[生成器模式:将一个复杂对象的构建与它的表示分离，使得同样的构建过程可以创建不同的表示。 结构图 Builder是为创建一个Product对象的各个部件指定的抽象接口。ConcreteBuilder是具体生成者，实现Builder接口，构造和装配各个部件。Product是产品角色，Director是指挥者，它是构建一个使用Builder接口的对象。主要用于创建一些复杂的对象，这些]]></description><category></category></item><item><title><![CDATA[构造函数初始化表的使用规则 ]]></title><link>https://blog.youkuaiyun.com/jia_xiaoxin/article/details/3336643</link><guid>https://blog.youkuaiyun.com/jia_xiaoxin/article/details/3336643</guid><author>jia_xiaoxin</author><pubDate>Wed, 19 Nov 2008 20:21:00 +0800</pubDate><description><![CDATA[(1)如果类存在继承关系，派生类必须在其初始化表里调用基类的构造函数。class A{public:    A(int x);};class B : public A{public:    B(int x, int y);};//如果A没有默认构造函数,必须在初始化表里调用A的构造函数.B::B(int x, int y)      :A(x)        {}(2)类的const常]]></description><category></category></item><item><title><![CDATA[读《大话设计模式》－－－外观模式(Facade) ]]></title><link>https://blog.youkuaiyun.com/jia_xiaoxin/article/details/3335620</link><guid>https://blog.youkuaiyun.com/jia_xiaoxin/article/details/3335620</guid><author>jia_xiaoxin</author><pubDate>Wed, 19 Nov 2008 16:34:00 +0800</pubDate><description><![CDATA[外观模式:为子系统中的一组接口提供一个一致的界面，此模式定义了一个高层接口，这个接口使得一个子系统更加容易使用 外观模式结构图 外观模式的一般实现方法：#include  using namespace std;class SubSystemOne{public:    void MethodOne()    {        cou]]></description><category></category></item><item><title><![CDATA[读《大话设计模式》－－－迪米特法则]]></title><link>https://blog.youkuaiyun.com/jia_xiaoxin/article/details/3335103</link><guid>https://blog.youkuaiyun.com/jia_xiaoxin/article/details/3335103</guid><author>jia_xiaoxin</author><pubDate>Wed, 19 Nov 2008 15:15:00 +0800</pubDate><description><![CDATA[迪米特法则也叫最少知识原则如果两个类不必彼此直接通信，那么这两个类就不应当发生直接的相互作用。如果其中一个类需要调用另一个类的某一个方法的话，可以通过第三者转发这个调用。迪米特法则首先强调的前题是在类的结构设计上，每一个类都应当尽量降低成员的访问权限，也就是说，一个类包装好自己的private状态，不需要让别的类知道的字段或行为就不要公开。]]></description><category></category></item><item><title><![CDATA[菜鸟自学Linux之－－－RedHat Linux 9键盘的快捷操作]]></title><link>https://blog.youkuaiyun.com/jia_xiaoxin/article/details/3334445</link><guid>https://blog.youkuaiyun.com/jia_xiaoxin/article/details/3334445</guid><author>jia_xiaoxin</author><pubDate>Wed, 19 Nov 2008 13:59:00 +0800</pubDate><description><![CDATA[这里列举了一些你可以用来快速执行常见任务的键盘快捷操作。这些操作不仅限于所列出的内容，要了解更多命令行和键盘的的快捷操作，请访问：    http://sunsite.dk/linux-newbie/lnag_commands.html#shortcuts    [Ctrl] + [Alt] + [Backspace] = 杀死你当前的 X 会话。杀死图形化桌面会话，把你返回到登录屏幕。如果正常退]]></description><category></category></item><item><title><![CDATA[为什么会两次调用析构函数]]></title><link>https://blog.youkuaiyun.com/jia_xiaoxin/article/details/3330744</link><guid>https://blog.youkuaiyun.com/jia_xiaoxin/article/details/3330744</guid><author>jia_xiaoxin</author><pubDate>Tue, 18 Nov 2008 22:07:00 +0800</pubDate><description><![CDATA[在类生成临时对象时，遇到一个问题，程序会两次调用析构函数#include  #include  using namespace std;class stack{public:    stack(const char *value);    ~stack();    char * data;};stack::stack(const char]]></description><category></category></item><item><title><![CDATA[为含指针变量的类声明一个拷贝构造函数和一个赋值操作符 ]]></title><link>https://blog.youkuaiyun.com/jia_xiaoxin/article/details/3330605</link><guid>https://blog.youkuaiyun.com/jia_xiaoxin/article/details/3330605</guid><author>jia_xiaoxin</author><pubDate>Tue, 18 Nov 2008 21:48:00 +0800</pubDate><description><![CDATA[C++编译器会为每个类自动生成一个默认的构造函数、析构函数、赋值函数、拷贝构造函数，这当然是在你没有为你的类声明这些函数的时候。这些默认的功能函数在为你提供方便的时候，也会给你带来麻烦。例如：class string {public:  string(const char *value);  ~string();   ...                           // 没]]></description><category></category></item><item><title><![CDATA[菜鸟自学Linux之－－－ADSL 设置全攻略]]></title><link>https://blog.youkuaiyun.com/jia_xiaoxin/article/details/3324407</link><guid>https://blog.youkuaiyun.com/jia_xiaoxin/article/details/3324407</guid><author>jia_xiaoxin</author><pubDate>Tue, 18 Nov 2008 10:46:00 +0800</pubDate><description><![CDATA[一、安装rp-pppoe到 http://www.roaringpenguin.com/pppoe/#download下载最新版rp-pppoe 的源代码。tar xzvf rp-pppoe-3.5.tar.gz然后进入解压生成的目录：cd rp-pppoe-3.5cd src接下来就是常规的配置编译和安装，一切按默认的即可：./configuremakemake install至此，安装结束，下]]></description><category></category></item></channel></rss>