- 博客(26)
- 资源 (1)
- 收藏
- 关注
原创 c++使用指针做出类似C#委托的功能
可以将typedef int(*haitao) (int age1, int age2);这行代码放入stdafx.h文件中,效果是一样的typedef int(*haitao) (int age1, int age2); 这行代码相当于C#中声明一个委托FR:海涛高软(hunk Xu)...
2018-02-27 16:24:18 354
原创 c++ EnterCriticalSection和LeaveCriticalSection
多线程中用来确保同一时刻只有一个线程操作被保护的数据的操作函数为了让CRITICAL_SECTION发挥作用,我们必须在访问dwTime的任何一个地方都加上 EnterCriticalSection(&cs)和LeaveCriticalSection(&cs)语句。再次强调一次,没有任何资源被“锁定”,CRITICAL_SECTION这个东东不是针对于资源的,而是针对于不同线程间的代码段的!我们能够
2018-02-27 14:09:06 1834
原创 C++ Assert函数的使用
游戏开发中用到Assert函数地方如下: void assert( int expression );assert的作用是现计算表达式 expression ,如果其值为假(即为0),那么它先向stderr打印一条出错信息,然后通过调用 abort 来终止程序运行。使用assert的缺点是,频繁的调用会极大的影响程序的性能,增加额外的开销。 程序一般分为Debug 版本和Release 版本,De
2018-02-27 13:55:02 861
原创 c++ async_wait和.expires_from_now
boost::asio::io_service io_service; boost::asio::deadline_timer timer(io_service, boost::posix_time::seconds(5)); //定义一个5秒的计时器 ,这里指定的是绝对时间 timer.async_wait(handler); //计时时间一到,开始执行handler函数 ...
2018-02-25 21:26:16 9751
原创 boost::asio::io_service::work
由于io_service并不会主动常见调度线程,需要我们手动分配,常见的方式是给其分配一个线程,然后执行run函数。但run函数在io事件完成后会退出,线程会终止,后续基于该对象的异步io任务无法得到调度。解决这个问题的方法是通过一个asio::io_service::work对象来守护io_service。这样,即使所有io任务都执行完成,也不会退出,继续等待新的io任务。 boo...
2018-02-25 21:18:37 4082 1
原创 c++ memcpy内存拷贝
void *memcpy(void *dest, const void *src, size_t n);解释: memcpy指的是c和c++使用的内存拷贝函数,memcpy函数的功能是从源src所指的内存地址的起始位置开始拷贝n个字节到目标dest所指的内存地址的起始位置中下面是游戏开发中的一个具体的应用: FR:徐海涛(hunk Xu) QQ技术交流群:386...
2018-02-25 15:17:06 8083
原创 c++ realloc
realloc原型是extern void *realloc(void *mem_address, unsigned int newsize);指针名=(数据类型*)realloc(要改变内存大小的指针名,新的大小)。功能:先判断当前的指针是否有足够的连续空间,如果有,扩大mem_address指向的地址,并且将mem_address返回,如果空间不够,先按照newsize指定的大小分配空间,将原
2018-02-25 15:01:35 4245
原创 C++ GetPrivateProfileInt方法
下面是具体使用代码gLsConfig.client_listen_port = GetPrivateProfileInt(_T("MainGC"),_T("ListernPortForClient"),0,_T("LSConfig\\Setup.ini"));下面是GetPrivateProfileInt方法的定义:下面是(.ini格式的)配置文件...
2018-02-25 11:15:42 5669
原创 c++指针池
class NetPointerPool{public: typedef typename std::vector<T*> PointerList; typedef typename std::vector<T*>::iterator PointerListIt; NetPointerPool() { memset(mPointers,0,size
2018-02-24 11:48:24 274
原创 std::function和std::bind
std::function<int(int)> fr2 = std::bind(&MyClass::getChengFa,mm,_1,6);cout << fr2(4) << endl; //打印结果:360上面代码意思是: 调用mm对象的getChengFa方法,传入两个实参4和6FR:海涛高软(QQ技术交流群:...
2018-02-20 18:06:15 159
原创 std::bind用法
auto hh2 = std::bind(&MyClass::aa, mm2); hh2(); 其实就是调用mm2对象的aa属性auto hh22 = std::bind(&MyClass::getChengFa, mm2); hh22(); 其实就是调用mm2对象的getChengFa方法FR:海涛高软(hunk Xu)...
2018-02-20 11:32:58 851
原创 strcpy_s使用
strcpy_s(b, a)意思是将a拷贝给b,但是一定要保证b装的下a,否则会报错FR:海涛高软(hunk Xu) QQ技术交流群:386476712
2018-02-19 16:26:51 9782
原创 boost::algorithm::split
typedef vector< string > split_vector_type;split_vector_type ssIndexVec;boost::algorithm::split( ssIndexVec, ssIndexStr, boost::algorithm::is_any_of(";") );FR:海涛高软(hun
2018-02-18 21:35:00 1941
原创 boost::any 具体使用
#include "stdafx.h" #include <iostream> #include <boost/any.hpp> #include <boost/format.hpp> using namespace std;#define PRINT(xxx) ( std::cout << boost::format("%-20s...
2018-02-17 21:38:10 1504
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人