- 博客(9)
- 资源 (24)
- 收藏
- 关注
原创 显示加载DLL封装
#ifndef DYNALINK_H_ #define DYNALINK_H_ #include #include class DynaLink { public: DynaLink() : hDll_(NULL) { } DynaLink(const std::wstring &name) : hDll_(NULL) { open(name); } vi
2013-04-24 17:46:05 793
原创 WSAAsyncSelect模型
这个模型跟窗口有关,它使用消息来进行通知的。如下是对话框客户端关键代码,连接的是一个echo服务端。 首先,自定义一个消息WM_MYSOCKET,消息响应函数OnMySocketMessage,新建两个CListBox控件用来显示发送和接受数据,分别是:m_ctrlSend, m_ctrlRecv; // 产生随机字符串 std::string BuildRandString(int nu
2013-04-21 22:09:43 1047
原创 select模型
需要注意的是要将listenSock设置为非阻塞模式,这样在while(1)循环中accept才不会被阻塞。同时listenSock也要set到fdread中,如果不这样做的话,select只能监视到客户端的socket,当客户端没有进行任务IO操作的时候select返回值为SOCKET_ERROR会一直进行循环检测,这样是没必要的。如果有listenSock在fdread中,而又没有新的客户端接
2013-04-21 19:37:26 975
原创 多线程异步TCP客户端实现
其中使用到的其他头文件地址: 线程:http://blog.csdn.net/tujiaw/article/details/8795014 阻塞队列:http://blog.csdn.net/tujiaw/article/details/8779466 消息:http://blog.csdn.net/tujiaw/article/details/8665610 #define DISALL
2013-04-12 20:52:43 1795
原创 Windows线程简单封装
#ifndef SPEND_THREAD_H_ #define SPEND_THREAD_H_ #include "Def.h" #include #include typedef std::tr1::function ThreadFunc; class Thread { DISALLOW_COPY_AND_ASSIGN(Thread); public: explicit Thread
2013-04-12 20:43:54 1398
原创 MFC 拷贝ListBox单行的数据到剪切板
由于从控件上得到的数据是宽字符,所以分配空间的时候需要 注意的是单行数据长度要乘以2作为GlobalAlloc分配的大小 void Show::OnLbnDblclkListResult() { int curSel = m_listResult.GetCurSel(); CString str; m_listResult.GetText(curSel, str);
2013-04-12 20:41:04 2175
原创 windows阻塞队列
#ifndef SPEND_BLOCKQUEUE_H_ #define SPEND_BLOCKQUEUE_H_ #include #include #include #include "Def.h" // for DISALLOW_COPY_AND_ASSIGN template class BlockQueue { DISALLOW_COPY_AND_ASSIGN(BlockQueu
2013-04-09 20:15:27 2310 6
原创 产生随机字符串
// 产生随机字符串 std::string BuildRandString(int num) { static unsigned int s_add = 0; std::string ret; srand((unsigned int)time(NULL) + (s_add++)); for (int i=0; i<num; ) { char buf[17] = {0}; _it
2013-04-09 20:10:55 801
原创 int64、double字节序转换(大小端)
#include #include // 包含windows.h就不要包含这个头文件了 #pragma comment(lib, "Ws2_32.lib") struct int64tonet { union { __int64 w_; int r_[2]; }w, r; int64tonet(__int64 i) { w.w_ = i; r.r_[0] = ht
2013-04-03 20:59:12 10039 2
xware-desktop_0.13.20141115_amd64.deb
2015-09-19
我的emacs配置
2011-10-30
GDI+ SDK参考(翻译版本)
2011-05-17
wtl81 支持vs2010
2011-03-18
WTL81_9127
2011-02-26
C++设计模式(用C++写的还有简单的介绍)
2011-01-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人