C++学习笔记 All
beattwo
这个作者很懒,什么都没留下…
展开
-
windows下线程死锁
[code="c++"]#include #include #include #include #include #include #include "windows.h"using namespace std;CRITICAL_SECTION cs1;CRITICAL_SECTION cs2;CRITICAL_SECTION c...原创 2012-11-24 15:40:16 · 190 阅读 · 0 评论 -
C 单链表删除节点
[code="c"]#include #include struct node{ int data; struct node *next;};node * InitLink(){ node *p,*head,*newNode; head = (node*)malloc(sizeof(node)); p = head; int array[] ...原创 2011-05-09 00:55:12 · 120 阅读 · 0 评论 -
C 对单链表进行打印
[code="c++"]#include #include struct node{ int data; struct node *next;};node * InitLink(){ node *p,*head,*newNode; head = (node*)malloc(sizeof(node)); p = head; int arra...原创 2011-05-09 00:29:16 · 116 阅读 · 0 评论 -
C 计算单链表的长度
[code="c"]#include #include struct node{ int data; struct node *next;};node * InitLink(){ node *p,*head,*newNode; head = (node*)malloc(sizeof(node)); p = head; int array[...原创 2011-05-09 00:02:38 · 1065 阅读 · 0 评论 -
C 单链表创建
[code="c"]#include #include struct node{ int data; struct node *next;};node * InitLink(){ node *p,*head,*newNode; head = (node*)malloc(sizeof(node)); p = head; int array[] ...原创 2011-05-08 23:57:51 · 176 阅读 · 0 评论 -
C++ Singleton模式
[code="c++"]//Singleton.h#include class Singleton{public: Singleton(); static Singleton *GetInstance(); void DisplayCount(); void AddCount(int in_count);private: int m_count; ...原创 2010-12-23 15:52:28 · 93 阅读 · 0 评论 -
Buffer实现,存放指针对象.
[code="c++"]//Buffer.h#include #include #include templateclass Buffer{public: Buffer(); static const char* MODULE; bool Init(); inline void Notify() {m_bInterrupt = true; m...原创 2010-12-23 13:37:41 · 453 阅读 · 0 评论 -
初始化模块,很好的一种写法.
[code="c++"]#include #include enum MODULEID { MODULE_A, MODULE_B, MODULE_C , MODULE_D, MODULE_E, MODULE_F, MODULE_NONE};void Init(){ MODULEID eModuleId = MODULE_...原创 2010-12-22 12:43:20 · 145 阅读 · 0 评论 -
了解C++默默编写并调用哪些函数
[code="c++"]class Empty{ //....}[/code]这就好像你写下这样的代码:[code="c++"]class Empty{ public: Empty(){} Empty(const Empty& rhs){} ~Empty(){} Empty& operator=(const Empty& ...原创 2010-06-25 10:07:12 · 106 阅读 · 0 评论 -
文件-写文件
[code="c++"]#include "stdafx.h"#include #include #include int _tmain(int argc, _TCHAR* argv[]){ std::string filename = "outfile.txt" ; std::ofstream outfile(filename.c_str()); if(!...原创 2010-06-13 19:51:39 · 152 阅读 · 0 评论 -
C++编写Config类读取配置文件
老外写的一段代码,在Server中编写这个类读取配置文件比较实用[code="c++"]//Config.h#pragma once#include #include #include #include #include /** \brief Generic configuration Class**/class Config {...原创 2010-10-05 15:42:51 · 893 阅读 · 0 评论 -
C++基本数据类型字节数
[code="c++"] char buf[128]; sprintf(buf, "sizeof(bool) = %d", sizeof(bool)); std::cout原创 2010-10-05 16:06:58 · 134 阅读 · 0 评论 -
windows下线程同步
[code="c++"]#include #include #include #include #include #include "iostream"#include "windows.h"using namespace std;CRITICAL_SECTION g_cs;int tickets=100;DWORD WINAPI Fun1(...原创 2012-11-24 15:39:09 · 107 阅读 · 0 评论 -
C++ strchr 截取字符串,在协议解析中判断字符很有用
#include const char * strchr ( const char * str, int character );char * strchr ( char * str, int character );[code="c++"]/* strchr example */#include #include int main ()...原创 2011-07-27 18:55:59 · 465 阅读 · 0 评论 -
C++ MD5加密实现
[code="c++"]//MD5.h #ifndef BZF_MD5_H#define BZF_MD5_H#include #include // a small class for calculating MD5 hashes of strings or byte arrays// it is not meant to be fast or secure...原创 2011-03-21 13:13:58 · 415 阅读 · 0 评论 -
C/C++ 清屏输出,动态效果,应用程序运行进度
[code="c++"]#include #include int main(){ for(int i = 0;i原创 2011-07-04 11:12:00 · 1136 阅读 · 0 评论 -
C++ 输出日期
[code="c++"]#include int _tmain(int argc, _TCHAR* argv[]){ CTime t = CTime::GetCurrentTime(); long lDate = t.GetYear()*10000+t.GetMonth()*100+t.GetDay(); printf("%d\n",lDate); //如:2011...原创 2011-07-01 14:45:34 · 451 阅读 · 0 评论 -
C++ 委托 fastdelegate使用,实现类函数回调绑定
搜索下载文件: fastdelegate.h下载地址: [url]http://code.google.com/p/code-adintr-com/source/browse/trunk/mylib/aslib/utility/FastDelegate.h?r=4[/url][code="c++"]#include #include "fastdelegate.h"...原创 2011-09-20 18:41:26 · 271 阅读 · 0 评论 -
C/C++中extern用来声明全局变量
声明:在某个头文件1.h(可以在同一文件中或同一程序的不同文件中出现多次 );定义:在任何一个源文件x.cpp(只能定义一次!#include) ;使用:要使用这个全局变量,只要包含1.h就行了。在全局域中定义的对象 如果没有指定显式的初始值 则该存储区被初始化为 0 因此下面两个定义中 var1和 var2有相同的初始值 0 int var1 = 0;...原创 2011-06-15 14:48:53 · 525 阅读 · 0 评论 -
C++ 返回小数,保留自定义位数
[code="c++"]template //! Return a decimal in base of decimal separatorstd::string GetDecimal(T in_Value, int in_DecimalSeparator){ std::stringstream ss; ss原创 2011-02-18 16:04:45 · 841 阅读 · 0 评论 -
C++ 结构体字节占比分配
[code="c++"]struct Param{ unsigned long A : 8; unsigned long B : 24; Param() { memset(this, 0, sizeof(Param)); }};Param param;param.A = 0xffffffff;param.B = 0xffffffff;...原创 2011-09-14 20:15:14 · 150 阅读 · 0 评论 -
文件-读文件
[code="c++"]#include "stdafx.h"#include #include #include int _tmain(int argc, _TCHAR* argv[]){ std::string filename = "outfile.txt" ; std::ifstream infile(filename.c_str()); int num...原创 2010-06-13 19:34:31 · 83 阅读 · 0 评论 -
函数-取随机数
[code="c++"]#include "stdafx.h"#include #include int _tmain(int argc, _TCHAR* argv[]){ int base = 10; srand(base); int num = 0; for(int i = 0;i原创 2010-06-13 18:28:48 · 163 阅读 · 0 评论 -
模板- 非类型模板形参
此内容来源C++ primer 中的内容。[code="C++"]// Test8.cpp : Defines the entry point for the console application.//#include "stdafx.h"template void array_init(T (&arr)[N]){ for(size_t i=0;i...原创 2010-06-09 18:36:31 · 84 阅读 · 0 评论 -
转化string,char,const,atoi
[code="c++"]#include "stdafx.h"#include #include int _tmain(int argc, _TCHAR* argv[]){ std::string numstr = "23423"; //first convertion const char *chars1 = numstr.c_str(); //const c...2010-05-04 15:51:56 · 84 阅读 · 0 评论 -
进程-结束进程
[code="c++"]#include "windows.h"#include #include "tlhelp32.h"#include #include #include #include void FindAllProcessIdsByName(std::vector& outProcessIDsContainer,const std::string& ...2010-05-02 03:01:12 · 128 阅读 · 0 评论 -
进程-取得同名可执行程序的进程号
[code="c++"]#include "windows.h"#include #include "tlhelp32.h"#include #include #include #include void FindAllProcessIdsByName(std::vector& outProcessIDsContainer,const std::string& ...2010-05-02 02:42:12 · 207 阅读 · 0 评论 -
进程-取得当前可执行程序的进程号-对比前者通过名字取得的进程号
工程编译输出文件为Test.exe[code="c++"]#include "windows.h"#include #include "tlhelp32.h"#include #include #include #include DWORD FindProcessIdByName(const std::string& in_processName) ...2010-05-02 02:28:15 · 119 阅读 · 0 评论 -
进程-取得所有系统进程可执行文件名
[code="c++"]void FindAllProcessNames(vector& outProcessesContainer ) { PROCESSENTRY32 processInfo; processInfo.dwSize = sizeof(processInfo); HANDLE processesSnapshot = CreateT...2010-05-02 02:13:52 · 127 阅读 · 0 评论 -
进程-根据进程名取得进程号
[code="java"]DWORD FindProcessIdByName(const std::string& in_processName){ PROCESSENTRY32 processInfo; processInfo.dwSize = sizeof(processInfo); HANDLE processesSnapshot = CreateToolh...2010-05-02 01:47:00 · 144 阅读 · 0 评论 -
函数-GetModuleFileNameA函数和GetCurrentDirectoryA函数的应用
[size=large][color=darkred]头文件#include [/color][/size][code="c++"] char moduleFileName[MAX_PATH]; GetModuleFileNameA(0, moduleFileName, MAX_PATH);[/code][color=red]取得的路径为:c:\Docu...2010-05-02 00:18:21 · 134 阅读 · 0 评论 -
通信-简单boost 实现通信
[color=darkred][size=large]client side[/size]:[/color][code="c++"]#include "stdafx.h"#include #include int main(int argc, char* argv[]) { // 所有asio类都需要io_service对象 boost::a...2010-04-30 16:48:57 · 199 阅读 · 0 评论 -
整数十进制转为16进制
主要应用头文件#include #include 方法1[code="c++"] boost::uint16_t number = 255; std::stringstream convertor; convertor.setf(std::ios::hex,std::ios::basefield); convertor2010-04-27 19:29:20 · 589 阅读 · 0 评论 -
函数-打开和关闭控制台AllocConsole()和FreeConsole();
[code="c++"]#include "stdafx.h"#include #include int _tmain(int argc, _TCHAR* argv[]){ for(int i = 0;i原创 2010-05-06 15:14:49 · 3279 阅读 · 0 评论 -
函数-SecureZeroMemory和ZeroMemory
The ZeroMemory function fills a block of memory with zeros.ZeroMemory 函数可以把一块内存用'0’填充掉。void ZeroMemory(PVOID Destination,SIZE_T Length);如:char k[100];ZEROMEMORY( K , sizeof(k));...原创 2010-05-09 00:15:26 · 463 阅读 · 0 评论 -
operator-运算符重载"="
[code="c++"]//Programmer.h#pragma once#include #include class Programmer{public: Programmer() {}; ~Programmer() {}; void SetName(std::string &in_name) { m_name = in_name; } voi...原创 2010-08-30 15:31:05 · 107 阅读 · 0 评论 -
工程-编译工程exe 导出lib和exp文件
一般编译dll工程时会生成lib和exp文件编译exe工程同样可以生成以上两文件。[code="c++"]__declspec(dllexport)[/code]以Test.exe 为例编译时有以下信息[color=blue]1> Creating library C:\Documents and Settings\Administrator\My Docume...原创 2010-05-23 22:22:18 · 717 阅读 · 0 评论 -
数据格式定义
[code="c++"]#include "stdafx.h"#include #include #include int main(void){ std::ostringstream oStringStream; oStringStream原创 2010-08-08 22:25:05 · 239 阅读 · 0 评论 -
C++中的INL
inl 文件是内联函数的源文件。内联函数通常在c++头文件中实现,但有的时候内联函数较多或者出于一些别的考虑(使头文件看起来更简洁等),往往会将这部分具体定义的代码添加到INL文件中,然后在该头文件的末尾将其用#include引入。由此也可以看到inl文件的例外一个用法的影子——模板函数、模板类的定义代码的存放。对于比较大的工程来说,出于管理方面的考虑,模板函数、模板类的声明部分一般存放在一个...原创 2010-08-04 14:28:11 · 223 阅读 · 0 评论 -
模板函数-生成get,set 方法
通过模板生成set get 方法减少代码量。[code="c++"]#include "stdafx.h"#include #include #define SETGET_DATA( I )\void Set_##I( const std::string& in_##I )\{\ if (in_##I.length() > sizeof( m_##I ) )\...原创 2010-05-12 21:59:10 · 330 阅读 · 0 评论