插件软件如何设计
admin | 二次开发 | 2014-05-06
昨天突然有一个做技术的朋友问我如何做插件。虽然我已经太久不做技术,但为了维持我在朋友面前样样精通的光辉形象,我还是忍不住好奇地查了点资料。感觉有一个写的还可以,转过来,供后来者研究。–看看
读了 goldboar的平台+插件软件设计思想及基于COM的原型实现,再加上自己的软件的需求,感觉很有必要将自己的软件设计成插件更新的方式。
平... [阅读全文]
深度解析VC中的消息
admin | Windows api | 2014-05-06
消息是指什么?
消息系统对于一个win32程序来说十分重要,它是一个程序运行的动力源泉。一个消息,是系统定义的一个32位的值,他唯一的定义了一个事件,向Windows发出一个通知,告诉应用程序某个事情发生了。例如,单击鼠标、改变窗口尺寸、按下键盘上的一个键都会使Windows发送一个消息给应用程序。
消息本身是作为一个记录传递给应用程序的,这个记录... [阅读全文]
用VC6.0编写Word插件(Office2007篇)
admin | 二次开发 | 2014-05-06
简介
微软在06年底推出了两个重量级的产品:Vista和Office 2007。在Office2007中使用了新的UI方式。微软大力鼓吹这种叫做Ribbon的新的UI将会给使用Office的人带来更大的便利性。在Office插件方面,微软保持了对原有版本 (office 2K、XP、03) 的兼容性,都被放到一个叫做Add-In的Tab里面,如下图所示。
不过样子比较难看,到底有没有办法让界面做得更漂... [阅读全文]
TCP协议三次握手过程分析
admin | net work | 2014-04-29
TCP(Transmission Control Protocol) 传输控制协议
TCP是主机对主机层的传输控制协议,提供可靠的连接服务,采用三次握手确认建立一个连接:
位码即tcp标志位,有6种标示:SYN(synchronous建立联机) ACK(acknowledgement 确认) PSH(push传送) FIN(finish结束) RST(reset重置) URG(urgent紧急)
Sequence number(顺序号码) Acknowledge number(确认号码)
第... [阅读全文]
TCP和UDP之间的区别
admin | net work | 2014-04-29
TCP和UDP区别
TCP
UDP
是否连接
面向连接
面向非连接
传输可靠性
可靠的
不可靠的
应用场合
传输大量的数据
少量数据
速度
慢
快
OSI 和 TCP/IP 模型在传输层定义两种传输协议:TCP(或传输控制协议)和 UDP(或用户数据报协议)。
UDP
UDP 与 TCP 的主要区别在于 UDP 不一定提供可靠的数据传输。事... [阅读全文]
STL中vector、list、deque和map的区别
admin | C++ | 2014-04-29
1 vector
向量 相当于一个数组
在内存中分配一块连续的内存空间进行存储。支持不指定vector大小的存储。STL内部实现时,首先分配一个非常大的内存空间预备进行存储,即capacituy()函数返回的大小,当超过此分配的空间时再整体重新放分配一块内存存储,这给人以vector可以不指定vector即一个连续内存的大小的感觉。通常此默认的内存分配能完成大部... [阅读全文]
STL中基本容器有: string、vector、list、deque、set、map
admin | C++ | 2014-04-29
在STL中基本容器有: string、vector、list、deque、set、map
set 和map都是无序的保存元素,只能通过它提供的接口对里面的元素进行访问
set:集合, 用来判断某一个元素是不是在一个组里面,使用的比较少
map:映射,相当于字典,把一个值映射成另一个值,如果想创建字典的话使用它好了
底层采用的是树型结构,多数使用平衡二叉树实现,查找某一值是常数时间,遍历... [阅读全文]
无敌的Word CommandBar和它的Control们
admin | 二次开发 | 2014-04-25
Word 2007在外观上和Word 2003比,改动很大。一个叫Ribbon的控件容器取代了过去Office版本中的菜单和工具栏。在Word 2003中,我们可以使用VBA, VSTO, Office Automation等等各种各样的技术,在菜单或者工具栏上添加自定义的按钮,实现我们想要的功能。C#版本的Automation代码,大致如下:
//Initial and show Word Application
Word.Application wordApp... [阅读全文]
UnicodeToUTF8
admin | 类型转换 | 2014-04-23
C++
bool wstring2string(IN const wchar_t* lpwstr, OUT string& str, IN unsigned int uCodePage)
{
if (NULL == lpwstr)
return false;
int nLen = ::WideCharToMultiByte(uCodePage, 0, lpwstr, -1, NULL, 0, NULL, NULL);
char* pBuf = new char[nLen + 1];
if (NULL != pBuf)
{
nLen = ::WideCha... [阅读全文]
CString2string
admin | 类型转换 | 2014-04-23
C++
void ConvertCString2string(CString& strSrc,std::string& strDes)
{
#ifndef UNICODE
strDes = strSrc;
#else
USES_CONVERSION;
strDes = W2A(strSrc.LockBuffer());
strSrc.UnlockBuffer();
#endif
}
12345678910
void ConvertCString2string(CStri... [阅读全文]