C++
文章平均质量分 60
gnorth
这个作者很懒,什么都没留下…
展开
-
VC++中的std::function比较问题
多年前VC++刚完善C++11那会儿,我就已经考虑将一个包含有unique timer模型的库中函数指针替换成std::function了,当时就苦恼std::function要如何比较,满世界的论坛,博客找了个遍,也没有答案,最终我只能去二进制层面寻求方法。最初的时候,我一直在用一段代码来处理这个问题:在VC++中,可以使用这个结构来模拟std::function的二进制数据:struct __std_func_struct { size_t* vt; // 虚函数表 void* fun原创 2022-06-17 11:55:48 · 975 阅读 · 1 评论 -
在静态库中,实现自动的初始化与卸载接口
所谓自动的自动初始化与自动卸载其实就是类似于dll中的DllMain函数,或者MFC DLL中的InitInstance与ExitInstance更为贴切(其实这两个也是从DllMain调用过来的)。也就是当调用静态库的PE文件加载时,自动初始化,PE文件释放时,自动执行卸载这个作用,看似不怎么样,实际运用中,处理好之后则可能省去很多麻烦的代码。你封装在静态库中的代码,通常原创 2013-06-19 13:43:03 · 2001 阅读 · 1 评论 -
游戏寻路算法的简单实现
提到寻路算法,大家都会想到A*算法。在度娘找了不少代码,看了不少教程之后,尤其是这个文章中提到的总结:http://www.cppblog.com/christanxw/archive/2006/04/07/5126.htmlA*算法总结(Summary of the A* Method)Ok ,现在你已经看完了整个的介绍,现在我们把所有步骤放在一起:1. 把起点加原创 2013-06-19 14:53:58 · 4434 阅读 · 0 评论 -
对A*算法的路径进行优化
如果你没有看过上一个文章的代码,请到这个传送门:A*算法的实现注:优化最终路径,必然会对算法耗时造成一定的影响。针对上一篇文章,我提到的设想,对路径进行分段处理,每一小段再进行一次A*,那么我们需要新增一个SearchEx接口,并对原本的Search接口进行修改。Search新增一个参数,用来代替原本的BREAK_GAP常量宏,在Search中,清理内存时,将地图数据恢复。原创 2013-06-22 03:51:04 · 8018 阅读 · 0 评论 -
A*寻路算法的实现
原理:http://www.cppblog.com/christanxw/archive/2006/04/07/5126.html算法理论请到原理这个传送门,代码中的注释,已经比较详细,所以我不会讲太多的原理,该文章本身就是以A*的思路,对算法进行一次速度上的优化,用一些更效率的方式来代替算法原理中必要的步骤。针对算法原理,做出如下改动:抛弃关闭列表,取而代之的是根据地图数据生成一个B原创 2013-06-21 20:01:47 · 5717 阅读 · 0 评论 -
vc SDK山寨spy++ FinderTool工具(靶心控件)纯GDI自绘
GDI编程本人不是很懂,以下代码,是之前还在MFC写代码的时候,度娘爬楼,挖坟千百次的成果,注释得已经比较详细了,反正我知道的都注释了,我不知道的我也没办法了。现在只是把这个代码转到win32 SDK来写,实际上和MFC区别没多大,如果你需要MFC的,可以去下载我之前发布的资源来看:http://download.csdn.net/detail/gnorth/4982016这个类,本意是继原创 2013-07-13 00:38:32 · 2621 阅读 · 0 评论 -
D3D游戏降帧的动态创建D3D设备以及ShellCode HOOK玩法
说白了,也就是HOOK掉Present,这种代码,其实百度上某些地方有,但是很多人估计不知道怎样得到Present的地址。所以就有些奇葩的例子:先到游戏的登录器内把CreateProcess之类的HOOK掉,让游戏进程暂停启动,然后注入游戏 HOOK Direct3DCreate9 得到 IDirect3D9 对象之后,又得到 IDirect3DDevice9 对象,最终得到Present原创 2013-07-15 08:16:51 · 5486 阅读 · 2 评论