自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

记事本

记录了一些日常中碰到的问题或经验。

  • 博客(7)
  • 资源 (4)
  • 收藏
  • 关注

转载 理解GL_TRIANGLES、GL_TRIANGLE_STRIP、GL_TRIANGLE_FAN绘制三角形序列的三种方式

一般情况下有三种绘制一系列三角形的方式,分别是GL_TRIANGLES、GL_TRIANGLE_STRIP和GL_TRIANGLE_FAN。如下图所示:GL_TRIANGLES是以每三个顶点绘制一个三角形。第一个三角形使用顶点v0,v1,v2,第二个使用v3,v4,v5,以此类推。如果顶点的个数n不是3的倍数,那么最后的1个或者2个顶点会被忽略。 GL_TRIANGLE_STR...

2018-12-29 20:52:00 6831

原创 进击的CIL Emit动态生成代理类用于监控对象的字段修改

第一篇:https://blog.csdn.net/Vblegend_2013/article/details/85228041本章_changepropertys 设为私有对象构建代理对象时继承了IPropertyChanged,实现了两个方法 保证了效率问题获取更新记录数获取更新字段信息 public interface IPropertyChanged ...

2018-12-24 16:45:15 327

原创 Emit动态生成代理类用于监控对象的字段修改

利用Emit动态生成代理对象监控对象哪些字段被修改,被修改为什么值被Register的对象要监控的值必须是Virtual虚类型必须使用CreateInstance创建对象必须使用DynamicProxyGenerator.GetChangeProperties 获取改变的值调用GetChangeProperties 返回的Dictionary.Clear() 重置当前已修改属性...

2018-12-24 00:29:42 976

原创 看如何在 Web上运行linux[JSLinux]

 先来看下几张图片  测试环境 I7 8700K   24G   GTX-1080360安全浏览器 Windows 2000 启动需要5分钟左右,运行起来有点卡,也就这样吧   Linux 4.12.0 Console版,启动很快速 大约5秒 就启动成功,根目录有个hello world例子编译要3秒   Linux 4.12...

2018-12-23 17:21:11 467

原创 C# Winform NativeWindow实现窗体、控件子类化,消息拦截,处理

 代码using System;using System.Windows.Forms;namespace WindowsFormsApp1{ /// <summary> /// 消息事件委托 /// </summary> /// <param name="m">消息</param> /// <...

2018-12-22 15:54:59 3163

原创 C# WinFrom 蜂巢类

  winformusing System;using System.Drawing;using System.Windows.Forms;namespace WindowsFormsApp1{ public partial class Form1 : Form { public Form1() { I...

2018-12-10 09:02:00 396

原创 WIN10 设置VS2017默认管理员权限启动

Win10下 设置软件默认为管理员权限打开Win+R regedit 找到路径如下HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers 在 Layers下创建一个字符串值,名字填VS路径C:\Program Files (x86)\Microsoft Visu...

2018-12-01 16:28:20 2527

C# 优雅的 APIHOOK 支持X86+X64源码

using System; using System.Runtime.InteropServices; namespace NativeHook.Test { public delegate Int32 MessageBoxW(IntPtr hWnd, [MarshalAs(UnmanagedType.LPWStr)] string lpText, [MarshalAs(UnmanagedType.LPWStr)] string lpCaption, UInt32 uType); public class MessageBoxHook : NtAPIHook { [DllHook("user32", EntryPoint = "MessageBoxW")] public Int32 MessageBox(IntPtr owner, string text, string caption, UInt32 options) { //拦截信息 Console.Title = caption; Console.WriteLine(text); //调用源函数 return Origin.Invoke(owner, text, caption, options); } } } [STAThread] static void Main(string[] args) { using (var hook = new MessageBoxHook()) { //绕过Hook直接调用源函数 hook.Origin(IntPtr.Zero, "111", "222", 0); //调用Api 被Hook MessageBox.Show("Hello world", "666", MessageBoxButtons.YesNoCancel); } //Hook解除拦截不到 MessageBox.Show("Hello world", "666", MessageBoxButtons.YesNoCancel); }

2018-09-21

C# 从内存加载动态链接库

纯C# 实现的 从内存加载动态链接库,支持加壳的DLL,使用方便 class Program { public delegate Int32 CompressHandle(ref Byte dest,ref Int32 len, Byte [] source,Int32 sourcelen); static void Main(string[] args) { Byte[] source = new byte[10000]; Byte[] dest = new byte[10000]; Int32 len = source.Length; Byte[] dllBin = File.ReadAllBytes("zlib1.dll"); using (var dll = new DllLoader()) { if (dll.LoadLibrary(dllBin)) { var Compress = dll.GetProcDelegate("compress"); if (Compress != null) { var result = Compress.Invoke(ref dest[0], ref len, source, len); Console.WriteLine(result); } } } } }

2018-09-08

Vb6 InLineHook(通用版)

Vb6 开发的 InLineHook (APIHook) 兼容 XP WIN7 SERVER2003 WIN2000 源码

2013-03-11

Obj文档解析

解析M$的Obj文档,Vb生成的 Obj文档,功能齐全 可编辑 源码

2013-03-10

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除