
C/C++
文章平均质量分 68
wklnewlife
这个作者很懒,什么都没留下…
展开
-
STL--模板和容器
函数模板#include //int max(int a,int b)//{// return a > b ? a : b;//}////char max(char a,char b)//{// return a > b ? a : b;//}////float max(float a,float b)//{// return a >原创 2013-07-31 14:56:36 · 1071 阅读 · 0 评论 -
ocx手动添加事件
假设创建的ocx工程名称为AgentRest,要添加的事件为OnPreviewCallRequest。1.AgentRest.idl文件中添加 [id(1)] OnPreviewCallRequest(long lCtrlID, BSTR lpCalls); [ uuid(7BC09251-081A-4AAE-A757-18D603CE4800), helpstring("Even原创 2013-02-17 16:22:25 · 2108 阅读 · 0 评论 -
LibCurl库使用
这篇文章以实例讲解如何使用HTTP常用的四种协议 put、post、get、delete,只要掌握一种,其他的在使用上都是大同小异。在实际项目开发过程中,这些工具会有帮助,HttpWatch或者Wireshark。最新的libcurl可以到http://curl.haxx.se/下载。关于资料可以参考官方文档。库使用前准备工作:引用lib库,并把文件夹curl复制到到工程项目目录中。代码部原创 2013-02-02 13:11:53 · 2388 阅读 · 0 评论 -
error C2504: 未定义基类
此错误是编译错误,和“inclued头文件“有关问题描述有三个头文件AgentSDK.h、AA.h、BB.h,其中CBB类继承自CAA。头文件包含顺序如下,1.AA.h包含AgentSDK.h2.AgentSDK.h包含BB.h3.BB.h包含AA.h原因分析:编译器首先编译AA.h,因其包含AgentSDK.h,引入AgentSDK.h继续编译。因为AgentSDK.原创 2013-02-01 11:23:10 · 28383 阅读 · 2 评论 -
Vmtools的安装(结)
1.在Vmware菜单中右键点击自己安装的虚拟机名字,在弹出菜单上单机 settings(设置)2.点击cd/dvd这个选项,Use Iso image file: 处点击Browse3.浏览到vmware这个软件的安装位置,在VMware/VMware Workstation文件夹下选择linux.iso,点击打开4.去掉Device status项下Conected勾选,点击OK;原创 2013-01-12 20:54:54 · 765 阅读 · 0 评论 -
VC功能实现
如何移动窗体 在鼠标左击事件中添加代码:void CDialogin::OnLButtonDown(UINT nFlags, CPoint point) { //该函数实现在客户区能够拖动窗体 // TODO: Add your message handler code here and/or call default CDialog::OnLButtonDown(nFl原创 2012-10-22 16:46:18 · 779 阅读 · 0 评论 -
C题库2
输入输出、格式化1.如下程序用于把“blue”字符串打印出来,请指出其中的错误:#include void main(){ char pcBlue[] = {'b', 'l', 'u', 'e'/*, '\0'*/}; printf("%s", pcBlue); return;}答案:缺少结束符2.指出代码错误:#include #defin原创 2013-01-07 10:17:55 · 2270 阅读 · 0 评论 -
C/C++随笔
C语言sizeofsizeof是C/C++中的一个操作符,简单的说其作用就是返回一个对象或者类型所占的内存字节数。 int i = 0; int isize = 0; isize = sizeof(i); printf("%d\n", isize); isize = sizeof i; printf("%d\n", isize); isize = size原创 2012-11-29 08:12:50 · 801 阅读 · 0 评论 -
C题库1
数据类型、字节对齐1.在VC6,32位X86系统下,有下列程序:#include void main(){ union { int k; char i[2]; }*s, a; s = &a; s->i[0] = 0x39; s->i[1] = 0x38; printf("%x\n", a.k);}输出结果是()a.3839 b.393原创 2013-01-05 11:34:12 · 3234 阅读 · 0 评论 -
可变函数(结)
1.建一个对话框工程,写一个Log函数,且看实例void C可变函数Dlg::Log(LPCTSTR FormatString, ...){ CString str(_T("")); va_list args; //初始化参数,FormatString为参数的前一个参数 va_start(args, FormatString); /*然后应该对ap 进行初始原创 2013-01-23 09:01:28 · 534 阅读 · 0 评论 -
win2008下openssh安装配置(sftp服务器)
安装配置参考安装目录下doc的quickstart.txt或者readme.txt文件。配置:--摘自quickstart.txt---------Configuration-------------1. Open a command prompt and change to the installation directory (Program Files\OpenSSH原创 2012-12-06 15:02:33 · 4572 阅读 · 0 评论 -
Json库
选择第三方库JsonCpp来解析json,JsonCpp是比较出名的c++解析库,在json官网也是首推的。下载地址是:http://sourceforge.net/projects/jsoncpp/。或者到http://download.youkuaiyun.com/detail/wklnewlife/4008660注意: Json::Value只能处理ANSI类型的字符串,如果C++程序使用Unico原创 2013-01-05 17:01:11 · 1146 阅读 · 0 评论 -
用GDB调试程序(一)
用GDB调试程序http://blog.youkuaiyun.com/haoel/article/details/2879GDB概述————GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具。或许,各位比较喜欢那种图形界面方式的,像VC、BCB等IDE的调试,但如果你是在UNIX平台下做软件,你会发现GDB这个调试工具有比VC、BCB的图形化调试器更强大的功能。所谓“寸有所长,尺有转载 2013-03-04 22:46:33 · 617 阅读 · 0 评论 -
Linux Glibc(学习笔记三)
简介glibc是gnu发布的libc库,也即c运行库。glibc是linux系统中最底层的api(应用程序开发接口Application Programming Interface ),几乎其它任何的运行 库都会倚赖于glibc。glibc除了封装linux操作系统所提供的库函数外,它本身也提供了许多其它功能的库函数,主要的如下:(1)string库,字符串处理库函数(2)sign原创 2013-02-26 22:18:00 · 1490 阅读 · 0 评论 -
非阻塞Socket
工程-》属性》链接器》输入》附加依赖项》ws2_32.libHTTPSocket.h#pragma once#include using std::string;typedef unsigned short USHORT;const USHORT HTTP_TIMEOUT = 5000;const USHORT MAX_EXTERN_LEN = 200;原创 2013-07-23 15:37:31 · 1081 阅读 · 0 评论 -
VC多线程
线程的创建CreateThread HANDLE CreateThread(LPSECURITY_ATTRIBUTES lpThreadAttributes, DWORD dwStackSize,LPTHREAD_START_ROUTINE lpStartAddress, LPVOID lpParameter,DWORD dwCreationFlags,LPDWOR原创 2013-07-21 11:55:58 · 1442 阅读 · 0 评论 -
链表
#include typedef int ElemType;typedef struct LNODE { ElemType data; struct LNODE *next;}LNODE, *LinkList;//寻找单链表的中间结点: 慢指针走一步,快指针走两步LNODE *middle(LNODE *head){ if(NULL == he原创 2013-07-17 14:38:29 · 854 阅读 · 0 评论 -
链表
寻找单链表的中间结点#include typedef int ElemType;typedef struct LNODE { ElemType data; struct LNODE *next;}LNODE, *LinkList;//寻找单链表的中间结点: 慢指针走一步,快指针走两步LNODE *middle(LNODE *head){ i原创 2013-07-17 14:14:54 · 800 阅读 · 0 评论 -
旋转矩阵
顺时针N(n#include#define N 10void main(){ int a[N][N]; //left, up, right, down为矩阵限制行和列 int left, up, right, down, n, t; puts("input n:\n"); scanf("%d", &n); if (n > 10) { p原创 2013-07-12 15:08:48 · 929 阅读 · 0 评论 -
VC常见问题集锦
error LNK2019: 无法解析的外部符号 1.是否引入Lib和Dll文件,如检查工程——》右键属性——》配置属性——》链接器——》输入中“附加依赖项”是否缺少Lib文件等等如:error LNK2019: 无法解析的外部符号 _GetFileVersionInfoA@16,该符号在函数 __catch$?GetOCXInfo@CAgentRestOCX@@AAEXAAV?$CS原创 2012-11-20 15:01:07 · 1337 阅读 · 0 评论 -
带窗体的OCX控件
1.创建“MFC Activex 控件”类型的项目,项目名称AgentSDKEx;在控件设置中,创建的控件基于STATIC,勾选“无闪烁激活”,去掉勾选“有关于对话框”,点击“完成”2.资源视图中,插入对话框资源IDD_DIALOG_MAIN,属性中设置style:child visible:true。另外可选属性toolbar,control等等,可根据需要选择3.类向导中创建IDD_D原创 2013-05-23 23:47:28 · 2909 阅读 · 1 评论 -
Linux随笔
Linux命令1.重启网络适配器:service network restart怎么putty远程连接到linux虚拟机(VMare) 首先,要给虚拟机分配独立的ip地址,在虚拟机setting中,选择NetworkAdaptert——》Custom:Specifc virtual network。当分配玩独立ip,可以ping通后,就可以putty了。--------------原创 2012-12-02 09:11:10 · 980 阅读 · 0 评论 -
C++网络编程--TCP客户端端
工程-》设置》连接》 ws2_32.lib 到“对象/库模块”中#include #include //使用了c的输入输出void main(){ //一,//1.要加载套接字库用WSAStartup//2.WSAStartup有两个参数:wsaData,wVersionRequested//3.wsaData:存放要加载的库版本的有关信息结构体//原创 2012-02-15 23:01:31 · 1144 阅读 · 0 评论 -
Linux Glibc(学习笔记五)待续。。。。
内存及字符串1. calloc(配置内存空间) 相关函数 malloc,free,realloc,brk表头文件 #include 定义函数 void *calloc(size_t nmemb,size_tsize);函数说明 calloc()用来配置nmemb个相邻的内存单位,每一单位的大小为size,并返回指向第一个元素的指针。这和使用下列的方式效果相同: mall原创 2013-03-06 22:33:57 · 973 阅读 · 0 评论 -
Linux Glibc(学习笔记四)
字符串转换1相关函数 atoi,atol,strtod,strtol,strtoul表头文件 #include stdlib.h>定义函数 doubleatof(const char *nptr);函数说明 atof()会扫描参数nptr字符串,跳过前面的空格,遇上数字或正负符号才开始做转换,而再遇到非数字或字符串结束时(‘\0’)才结束转换,并将结果返回。参数nptr字符原创 2013-03-05 22:48:20 · 1206 阅读 · 0 评论 -
消息队列
头文件://////////////////////////////////////////////////////////// 文件名: MessageQueue.h// 版本: 1.0 // 目的及主要功功能: 消息队列CMessageQueue// 创建日期: 2009.05.原创 2012-12-18 18:23:22 · 807 阅读 · 0 评论 -
临界区
详细实例可以参考《UNICODE下日志打印2》1.Log.h中临界区变量声明,在CLog类里。 //日志操作临界区 CRITICAL_SECTION m_csLog;2.构造函数中m_csLog初始化。CLog::CLog(void):m_fp(NULL){ InitializeCriticalSection(&m_csLog);}3.使用EnterCr原创 2012-12-16 20:14:07 · 530 阅读 · 0 评论 -
Winsock网络编程接口
Winsock 是一套开放的、支持多种协议的 Windows 下网络编程接口,是 Windows 网络编程上的标准接口。应用程序通过调用 Winsock 的 API 实现相互之间的通信,而 Winsock利用下层的网络通信协议功能和操作系统调用实现实际的通信工作。 套接字(Sockets)是通信端点的一种抽象,是支持 TCP/IP 协议网络通信的基本操作单元,它提供了一种发送和接原创 2012-11-28 20:33:46 · 1896 阅读 · 0 评论 -
DLL文件编写和调用
DLL文件编写也可以参考《读取数据库字段的DLL编写》。使用VS2008创建MFC DLL工程。工程名称libipsi_crypto2。在libipsi_crypto2.h中添加以下代码:extern "C" _declspec(dllexport) int Add(int a, int b);libipsi_crypto2.cpp文件中添加以下代码,编译后Debug下会生成lib原创 2012-11-05 18:16:23 · 668 阅读 · 0 评论 -
VC控件使用记录
Button控件: Bitmap:可以使用位图自定义button外观,需要将此属性设置为true 代码class CDialogin : public CDialog{ ......private: HBITMAP m_BitmapCancel; HBITMAP m_BitmapOK; HBITMAP m_BitmapClose;public: CBu原创 2012-10-22 14:41:59 · 703 阅读 · 0 评论 -
VC++ ADO实现三层架构
ADO底层实现头文件// ADOConn.h: interface for the ADOConn class.////////////////////////////////////////////////////////////////////////#if !defined(AFX_ADOCONN_H__B8D01B34_20DA_49AE_9FA1_664D67A2原创 2012-10-22 19:19:06 · 1763 阅读 · 1 评论 -
vc++获得UTC时间
注意:在VC6.0中不支持TzSpecificLocalTimeToSystemTimeerror C2065: 'TzSpecificLocalTimeToSystemTime' : undeclared identifier -------------------------------------------------------------------------------原创 2012-10-11 14:54:21 · 4612 阅读 · 0 评论 -
ADO公共类
// ADOConn.h: interface for the ADOConn class.////////////////////////////////////////////////////////////////////////#if !defined(AFX_ADOCONN_H__5FB9A9B2_8D94_44F7_A2DA_1F37A4F33D10__INCLUDED原创 2012-05-29 08:06:21 · 707 阅读 · 0 评论 -
字符转换
C++标准里面提供:#include 宽字节转单字节 :size_t wcstombs( char *mbstr, const wchar_t *wcstr, size_tcount );单字节转宽字节 :size_t mbstowcs( wchar_t *wcstr, const char *mbstr, size_tcount ); 微软提供:宽字节转多字原创 2012-05-27 21:43:31 · 445 阅读 · 0 评论 -
C++中的URL编码解码
static CString URLDecode(CString sIn) { CString sOut; const int nLen = sIn.GetLength() + 1; register LPBYTE pOutTmp = NULL; LPBYTE pOutBuf = NULL; register LPBYTE pInTmp = NULL; LP转载 2011-12-25 23:52:37 · 3049 阅读 · 0 评论 -
CBITMAP与BITMAP
CBitmap是一个类,封装了Windows图形设备接口(GDI)中的位图,并且提供了操纵位图的成员函数。 BITMAP是个结构: typedef struct tagBITMAP { LONG bmType; LONG bmWidth; LONG bmHeight; LONG原创 2011-12-20 15:21:47 · 659 阅读 · 0 评论 -
十六进制字符串转换为十六进制数字
#include #include unsigned long atox(char* str){ unsigned long var=0; unsigned long t; int len = strlen(str); if (var > 8) //最长8位 { return -1; } strupr(str);//统一大原创 2012-12-03 22:17:21 · 1201 阅读 · 0 评论 -
利用GetPrivateProfileString读取配置文件(.ini)
利用GetPrivateProfileString读取配置文件(.ini)配置文件中经常用到ini文件,在VC中其函数分别为:写入.ini文件:bool WritePrivateProfileString(LPCTSTR lpAppName,LPCTSTR lpKeyName,LPCTSTR lpString,LPCTSTR lpFi转载 2012-02-16 23:03:57 · 855 阅读 · 0 评论 -
跟我一起写 Makefile(2)
三、书写规则规则包含两个部分,一个是依赖关系,一个是生成目标的方法。在Makefile中,规则的顺序是很重要的,因为,Makefile中只应该有一个最终目标,其它的目标都是被这个目标所连带出来的,所以一定要让make知道你的最终目标是什么。一般来说,定义在Makefile中的目标可能会有很多,但是第一条规则中的目标将被确立为最终的目标。如果第一条规则中的目标有很多个,那么,第一个目标会成为转载 2012-12-12 10:25:35 · 509 阅读 · 0 评论 -
AES加密之openssl使用(2)
书接上篇《AES加密只openssl安装》,在文章结尾简单列出了openssl接口使用,但是峰回路转旧的代码总是满足不了新的需求。我想将加密后的二进制数手动输入然后通过算法解密,怎么办,。。。。?使用base64啊。加密后的结果因为是二进制数字,而base64编码之中要求传入编码的长度,于是使用strlen就不怎么靠谱了,加密后的长度怎么求出。解决1.使用MD5加密为固定长度,缺点不可逆。2.me原创 2012-12-03 22:14:52 · 3655 阅读 · 0 评论