<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[pirate97的专栏]]></title><description><![CDATA[充实的源泉是每天不断的努力]]></description><link>https://blog.youkuaiyun.com/pirate97</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; pirate97]]></copyright><item><title><![CDATA[全排列算法]]></title><link>https://blog.youkuaiyun.com/pirate97/article/details/40086515</link><guid>https://blog.youkuaiyun.com/pirate97/article/details/40086515</guid><author>pirate97</author><pubDate>Tue, 14 Oct 2014 22:15:02 +0800</pubDate><description><![CDATA[（一）递归的全排列算法

（A、B、C、D）的全排列为

1、A后面跟（B、C、D）的全排列

2、B后面跟（A、C、D）的全排列

3、C后面跟（A、B、D）的全排列

4、D后面跟（A、B、C）的全排列

而对1中的（B、C、D）照样可以按照上面的形式进行分解。





[cpp] view
 plaincopy






/******]]></description><category></category></item><item><title><![CDATA[形参传入一级或者二级指针 内存结构]]></title><link>https://blog.youkuaiyun.com/pirate97/article/details/39206357</link><guid>https://blog.youkuaiyun.com/pirate97/article/details/39206357</guid><author>pirate97</author><pubDate>Thu, 11 Sep 2014 15:11:50 +0800</pubDate><description><![CDATA[这个问题其实一直有点没有特别浓清楚，我觉得下面两个例子能很好的说明这个问题


#include "stdio.h"
void pointer(int *p)
{
int a = 99;
printf("\n\n int a = 11; \n the p is %d , addr is %d, *p is %d",p , &p, *p);
*p =11;
printf("\n\n]]></description><category></category></item><item><title><![CDATA[lync 2013 plug in添加自定义状态的]]></title><link>https://blog.youkuaiyun.com/pirate97/article/details/36417619</link><guid>https://blog.youkuaiyun.com/pirate97/article/details/36417619</guid><author>pirate97</author><pubDate>Wed, 02 Jul 2014 14:29:32 +0800</pubDate><description><![CDATA[对于lync 2013 提供了c#版本的 api]]></description><category></category></item><item><title><![CDATA[Ansi、Unicode、UTF8字符串之间的转换和写入文本文件]]></title><link>https://blog.youkuaiyun.com/pirate97/article/details/26565463</link><guid>https://blog.youkuaiyun.com/pirate97/article/details/26565463</guid><author>pirate97</author><pubDate>Thu, 22 May 2014 10:37:09 +0800</pubDate><description><![CDATA[Ansi、Unicode、UTF8字符串之间的转换和写入文本文件

转载请注明出处http://www.cppblog.com/greatws/archive/2008/08/31/60546.html

最近有人问我关于这个的问题，就此写一篇blog

Ansi字符串我们最熟悉，英文占一个字节，汉字2个字节，以一个\0结尾，常用于txt文本文件
Unicode字符串，每个字符(汉字]]></description><category></category></item><item><title><![CDATA[VC++编写电子邮件程序 第二篇 也是用simple mapi]]></title><link>https://blog.youkuaiyun.com/pirate97/article/details/22275333</link><guid>https://blog.youkuaiyun.com/pirate97/article/details/22275333</guid><author>pirate97</author><pubDate>Thu, 27 Mar 2014 11:09:58 +0800</pubDate><description><![CDATA[VC++编写电子邮件程序


一、概述
---- 本文主要讲述如何使用Visual C++用MAPI编写E-mail程序。MAPI是包含在Windows之中的，
因此不需要安装其他额外的部件。MAPI有以下三种形式：
SMAPI，Simple MAPI，简单的MAPI
CMC，Common Messaging Calls，一般通讯调用
完整的MAPI
---- SMAPI和CMC]]></description><category></category></item><item><title><![CDATA[用simple mapi 发送一个带附件的邮件]]></title><link>https://blog.youkuaiyun.com/pirate97/article/details/22148135</link><guid>https://blog.youkuaiyun.com/pirate97/article/details/22148135</guid><author>pirate97</author><pubDate>Wed, 26 Mar 2014 10:49:23 +0800</pubDate><description><![CDATA[使用 MAPI 实现邮件发送

原　　作：deltacat，修改中
最后更新：2004.09.16
版权声明：随意转载，敬请保持文档及说明完整性

关键字： VC 邮件发送 MAPI


一、简述

　　实际上，本文的设计，所使用的只是 Simple MAPI，可以把它看作是MAPI（Messaging Application Programming Interface）的一]]></description><category></category></item><item><title><![CDATA[c#委托几篇好文章 续篇]]></title><link>https://blog.youkuaiyun.com/pirate97/article/details/21621373</link><guid>https://blog.youkuaiyun.com/pirate97/article/details/21621373</guid><author>pirate97</author><pubDate>Thu, 20 Mar 2014 15:07:29 +0800</pubDate><description><![CDATA[大白话系列之C#委托与事件讲解(三)





[我希望大家在看完文章的时候，多做做练习，自己也可以想个场景，动动手，这样才会有深刻的印象，不然遗忘的速度非常快]

今天我接着上面的3篇文章来讲一下，为什么我们在日常的编程活动中遇到这么多sender,EventArgs e 参数：
protected void Page_Load(object sender, EventArgs]]></description><category></category></item><item><title><![CDATA[c# 委托事件 看到的几篇好文章]]></title><link>https://blog.youkuaiyun.com/pirate97/article/details/21614807</link><guid>https://blog.youkuaiyun.com/pirate97/article/details/21614807</guid><author>pirate97</author><pubDate>Thu, 20 Mar 2014 14:13:31 +0800</pubDate><description><![CDATA[大白话系列之C#委托与事件讲解(一)






    从序言中，大家应该对委托和事件的重要性有点了解了吧，虽然说我们现在还是能模糊，但是从我的大白话系列中，我会把这些概念说的通俗易懂的。首先，我们还是先说说委托吧，从字面上理解，只要是中国人应该都知道这个意思，除非委托2个中文字不认识，举个例子，小明委托小张去买车票。
 
    但是在我们的程序世界里，也是这么的简单吗？当然]]></description><category></category></item><item><title><![CDATA[Outlook Object Model Overview]]></title><link>https://blog.youkuaiyun.com/pirate97/article/details/19542729</link><guid>https://blog.youkuaiyun.com/pirate97/article/details/19542729</guid><author>pirate97</author><pubDate>Thu, 20 Feb 2014 10:22:44 +0800</pubDate><description><![CDATA[Outlook Object Model Overview 

For accessing the outlook and its features you have to add reference of Microsoft Outlook 11.0 object library Version 9.2 (COM component) to your project.This COM com]]></description><category></category></item><item><title><![CDATA[Outlook appointment 常用方法模型]]></title><link>https://blog.youkuaiyun.com/pirate97/article/details/17525153</link><guid>https://blog.youkuaiyun.com/pirate97/article/details/17525153</guid><author>pirate97</author><pubDate>Tue, 24 Dec 2013 10:33:25 +0800</pubDate><description><![CDATA[The IAppointment Interface

The IAppointment interface is used to represent an object in the Calendar folder, and can specify an appointment, meeting, or recurring event (such as a weekly meeting).]]></description><category></category></item><item><title><![CDATA[通过传入的一个下载路径得到server上包的大小]]></title><link>https://blog.youkuaiyun.com/pirate97/article/details/13508621</link><guid>https://blog.youkuaiyun.com/pirate97/article/details/13508621</guid><author>pirate97</author><pubDate>Tue, 29 Oct 2013 15:14:31 +0800</pubDate><description><![CDATA[HTTPSession = InternetOpen("Mozilla/4.0 (compatible)", INTERNET_OPEN_TYPE_DIRECT, NULL, NULL, 0);

HTTPConnect = InternetConnect(HTTPSession,RemoteHost,RemotePort,NULL,NULL,INTERNET_SERVICE_HTTP, 0,]]></description><category></category></item><item><title><![CDATA[VC中调用外部EXE程序方法(转)]]></title><link>https://blog.youkuaiyun.com/pirate97/article/details/12848331</link><guid>https://blog.youkuaiyun.com/pirate97/article/details/12848331</guid><author>pirate97</author><pubDate>Fri, 18 Oct 2013 09:01:14 +0800</pubDate><description><![CDATA[在VC中，有些时候，我们需要调用其他一些现有的EXE可执行文件，当然，有些时候，我们也调用自己编写生成的EXE文件，以完成对不同选择条件的反应。


 通过总结，基本上调用EXE文件的办法有四种：
一、WinExec()
这个函数，在VB和VC中都有，百度百科中的解释是这样的：
WinExec
VB声明
Declare Function WinExec Lib "kernel32"]]></description><category></category></item><item><title><![CDATA[做update的时候 用到的movefileex]]></title><link>https://blog.youkuaiyun.com/pirate97/article/details/9027759</link><guid>https://blog.youkuaiyun.com/pirate97/article/details/9027759</guid><author>pirate97</author><pubDate>Wed, 05 Jun 2013 09:29:19 +0800</pubDate><description><![CDATA[当dwFlags被设为MOVEFILE_DELAY_UNTIL_REBOOT时，函数直到系统重启后才移动文件。注意文件的移动是发生在AUTOCHK执行之后，在页面文件创建之前。而此时用户还没有完全的进入操作系统，所以可以应用这点删除那些正常情况下很难删除的文件甚至是页面文件。


lpNewFileName为NULL时，MovefileEx实现的就是删除的功能。很多杀毒软件和一些恶意程序删除]]></description><category></category></item><item><title><![CDATA[清空数组：ZeroMemory、memset 和 “={0}” 三者用于清零操作的区别]]></title><link>https://blog.youkuaiyun.com/pirate97/article/details/8556670</link><guid>https://blog.youkuaiyun.com/pirate97/article/details/8556670</guid><author>pirate97</author><pubDate>Wed, 30 Jan 2013 16:11:13 +0800</pubDate><description><![CDATA[清空数组：ZeroMemory、memset 和 “={0}” 三者用于清零操作的区别



首先是ZeroMemory和memset的区别：
1、ZeroMemory是微软的SDK提供的，memset属于C Run-time Library提供的。因此ZeroMemory只能用于Windows系统，而memset还可用于其他系统。 
2、ZeroMemory是一个宏，只是用于把一段内]]></description><category></category></item><item><title><![CDATA[用ATL建立轻量级的COM对象]]></title><link>https://blog.youkuaiyun.com/pirate97/article/details/8517328</link><guid>https://blog.youkuaiyun.com/pirate97/article/details/8517328</guid><author>pirate97</author><pubDate>Fri, 18 Jan 2013 14:51:12 +0800</pubDate><description><![CDATA[用ATL建立轻量级的COM对象


2010-01-17 11:24 442人阅读 评论(0) 收藏 举报

本文假设你熟悉C++和COM。

摘要：
    ATL——活动模板库（The Active Template Library），其设计旨在让人们用C++方便灵活地开发COM对象。ATL本身相当小巧灵活，这是它最大的优点。用它可以创建轻量级的，自包含的，可复用的二进制代码，]]></description><category></category></item><item><title><![CDATA[Sizeof与Strlen的区别与联系]]></title><link>https://blog.youkuaiyun.com/pirate97/article/details/8486333</link><guid>https://blog.youkuaiyun.com/pirate97/article/details/8486333</guid><author>pirate97</author><pubDate>Wed, 09 Jan 2013 16:31:21 +0800</pubDate><description><![CDATA[Sizeof与Strlen的区别与联系

一、sizeof
    sizeof(...)是运算符，在头文件中typedef为unsigned int，其值在编译时即计算好了，参数可以是数组、指针、类型、对象、函数等。
    它的功能是：获得保证能容纳实现所建立的最大对象的字节大小。
    由于在编译时计算，因此sizeof不能用来返回动态分配的内存空间的大小。实际上，用sizeof]]></description><category></category></item><item><title><![CDATA[delete void*]]></title><link>https://blog.youkuaiyun.com/pirate97/article/details/8481485</link><guid>https://blog.youkuaiyun.com/pirate97/article/details/8481485</guid><author>pirate97</author><pubDate>Tue, 08 Jan 2013 15:34:24 +0800</pubDate><description><![CDATA[delete void* 对于一些简单的系统内建类型不会有问题，但是对于C++的类，确实存在一个问题，因为这样不会调用析构函数，因为类型已经丢失，如果类里面存在一个指针类型，指向了另一块内存，可能使得这块内存泄露。而类本身占据的内存不会泄露，举个例子:





‍include 

classTest {
   void*data;
   intn;
public:]]></description><category></category></item><item><title><![CDATA[C++ new运算符的失败处理]]></title><link>https://blog.youkuaiyun.com/pirate97/article/details/8479970</link><guid>https://blog.youkuaiyun.com/pirate97/article/details/8479970</guid><author>pirate97</author><pubDate>Tue, 08 Jan 2013 10:40:44 +0800</pubDate><description><![CDATA[C++new失败的处理


我们都知道，使用 malloc/calloc 等分配内存的函数时，一定要检查其返回值是否为“空指针”（亦即检查分配内存的操作是否成功），这是良好的编程习惯，也是编写可靠程序所必需的。但是，如果你简单地把这一招应用到 new 上，那可就不一定正确了。我经常看到类似这样的代码：

        int* p = new int[SIZE];
        i]]></description><category></category></item><item><title><![CDATA[BSTR、LPSTR、LPWSTR、CString、VARIANT、COleVariant 、_variant_t、CComBSTR、_bstr_t]]></title><link>https://blog.youkuaiyun.com/pirate97/article/details/8349571</link><guid>https://blog.youkuaiyun.com/pirate97/article/details/8349571</guid><author>pirate97</author><pubDate>Thu, 20 Dec 2012 13:59:57 +0800</pubDate><description><![CDATA[Visual C++.NET涉及到ATL/ATL Server、MFC和托管C++等多种编程方式，不仅功能强大而且应用广泛。在编程中，我们常常会遇到ANSI、Unicode以及BSTR不同编码类 型的字符串转换操作。本文先介绍基本字符串类型，然后说明相关的类，如CComBSTR、_bstr_t、CStringT等，最后讨论它们的转换方法， 其中还包括使用最新ATL7.0的转换类和宏，如CA2CT、]]></description><category></category></item><item><title><![CDATA[C++中L和_T()之区别]]></title><link>https://blog.youkuaiyun.com/pirate97/article/details/8313943</link><guid>https://blog.youkuaiyun.com/pirate97/article/details/8313943</guid><author>pirate97</author><pubDate>Tue, 18 Dec 2012 13:38:34 +0800</pubDate><description><![CDATA[C++中L和_T()之区别  

2012-05-24 10:50:44|  分类： VC++|字号 订阅
















字符串前面加L表示该字符串是Unicode字符串。
_T是一个宏，如果项目使用了Unicode字符集（定义了UNICODE宏），则自动在字符串前面加上L，否则字符串不变。因此，Visual C++里边定义字符串的时候，用]]></description><category></category></item></channel></rss>