- 博客(4)
- 资源 (2)
- 收藏
- 关注
原创 C++——Hook教程[1]:虚函数表(VMT)Hook
前言虚函数表(VMT)Hook,又叫指针重定向,是一种常见的Hook技术,在游戏外挂程序中最常见。例如,使用VMTHook在Direct3D / OpenGL引擎游戏里实现内置叠加层。虚函数表(VMT)本文中VMT就代指虚函数表。虚函数表是C++实现多态的一种方式。每一个有虚函数的类(或有虚函数类的派生类)都有一个VMT,VMT本质上就是一个函数指针数组,通常位于对象内存布局的开头或结尾。每当C++类声明虚(virtual)函数时,编译器都会增加一个条目到VMT中。例如,在x86系统上使用V
2020-12-07 19:02:41 4888 2
原创 .NET——让Task支持带超时的非阻塞异步等待
前言大家都知道Task表示一个异步任务。如果我们想等待一个Task完成,有很多自带的实例、静态方法供我们选择。有的阻塞,有的不阻塞。不过带超时的等待只有一个,而且它是堵塞的。这次给大家写个非阻塞的带超时的等待方法~Task已有的等待方法Task实例已有的等待方法就是Wait:▲ 五个重载,一个无限等待,一个支持取消,两个支持超时(毫秒和TimeSpan),一个既支持取消也支持超时但Task实例的等待方法的所有重载都有一个弊端,那就是阻塞。如果真的用这个方法来等待这个Task,那么一定会堵塞一个
2020-12-07 19:01:33 2228
原创 .NET——创建委托以大幅度提高反射调用的性能
前言反射这种东西,大家都知道伤性能,但有的时候就是不得不用反射。那咋办呢?那就是为反射得到的方法创建一个委托!这种方式能够提高近乎直接调用方法本身的性能。(当然Emit也能够帮助我们显著提升性能,不过直接得到可以调用的委托岂不是更加方便咱们先创建一个类,用来做测试private class Foo{ public int Test(int i) { return i; }}先创建一个实例// 调用的目标实例。var instance = new
2020-12-07 19:00:09 837
原创 .NET——深入剖析IEnumerable和IQueryable两接口
前言日常开发过程中,经常会遇到IEnumerable和IQueryable这两个接口,也许大家也能熟练的运用这两个接口对数据库或者集合进行各种复杂查询。实际上如果错误的使用,会导致很多很多系统优化,查询效率等等问题。以及很多人吐槽EntityFramework效率低下。实际上很大原因就是IEnumerable和IQueryable使用的问题!那么,它们究竟是如何定义的,都分别用来干什么的?又尤其是IQueryable,它和EntityFramework的延迟加载技术又有什么联系呢?定义Enum
2020-12-07 18:59:28 549
AssetsBundleExtractor_2.2beta2_x64
2018-08-22
de4dot Support.Reactor5.0-wuhensoft
2018-07-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人