C/C++ Qt TableDelegate 自定义代理组件

tabledelegate 自定义代理组件的主要作用是对原有表格进行调整,例如默认情况下table中的缺省代理就是一个编辑框,我们只能够在编辑框内输入数据,而有时我们想选择数据而不是输入,此时就需要重写编辑框实现选择的效果,代理组件常用于个性化定制table表格中的字段类型。代理类的作用是用来实现重...

2023-03-09 C++Android面向对象编程C#网站


C/C++ Qt 自定义Dialog对话框组件应用

在上一篇博文 《c/c++ qt 标准dialog对话框组件应用》 中我给大家演示了如何使用qt中内置的标准对话框组件实现基本的数据输入功能。但有时候我们需要一次性修改多个数据,使用默认的模态对话框似乎不太够用,此时我们需要自己创建一个自定义对话框,这类对话框也是一种窗体,所以可以在其上面放置任...

2023-03-09 C++网站C#jQuery UIQt


C/C++ 实现COM转换到接口

和语言无关,可以在 c++ 中用类的方式来定义。一个 com 对象可以实现多个接口。iunknown:未直接口 一个特殊的接口,所有com接口都继承iunknown这个接口。interface iunknown{ hresult queryinterface( // 查询com对象的其他接口指针 [in] refiid iid, // 接口id [out] void **ppv // 接口指针 ); u...

2023-03-09 C++C#


C/C++ IAT HOOK MessageBoxW

最近在研究各种姿势的 hook,虽然 hook 这个东西已经是很久之前就有的技术了,但好在目前应用仍然很广泛,所以老老实实肯大佬们 10 年前啃过的骨头,下面是庄重的代码献祭时刻。首先 iat hook 需要使用 dll , 这里有两个项目工程,一个是 mfc窗体应用(用来测试),一个是我们的 dll (主要功能)...

2023-03-09 C++


C/C++ HOOK 全局 API

全局 hook 不一定需要用到 dll ,比如全局的鼠标钩子、键盘钩子都是不需要 dll 的,但是要钩住 api,就需要 dll 的协助了,下面直接放上 dll 的代码,注意这里使用的是 mfc dll。// test_dll(mfc).cpp : 定义 dll 的初始化例程。 // #include "stdafx.h" #include "test_dll(mfc).h" #ifdef _debug ...

2023-03-09 C++


C/C++ 实现ShellCode编写与提取

简单来说,shell code 的核心就是把代码写成 “与地址无关” 的风格,让它不论是在什么环境下都可以被执行,此段代码可实现c++开发shellcode代码,并提取出其中的机器码的作用。具体注意:使用 api 时应该动态调用(getproaddress)不能使用全局变量,或者用 static 修饰的变量在 shellcode 工程中要...

2023-03-09 C++APIC#编程算法


C/C++ Qt 监控文件状态变化

实现对特定文件的监控,qt中提供了qfilesystemwatcher调用这个接口可以快速实现监控功能,当有文件发生变化是自动触发并输出文件具体信息。filesystem.h#ifndef filesystem_h #define filesystem_h #include #include #include class filesystemwatcher : public qobject { q_object public: sta...

2023-03-09 文件存储C++C#


C++ Boost 内存池与智能指针

pool内存池: 只能开辟常规内存,数据类型为int,float,double,string等。#include #include #include using namespace std; using namespace boost; int main(int argc, char const *argv[]) { boost::pool pool(sizeof(int)); // 定义整数内存池 int *ptr[10] = { 0 }; // 定义指针列表 for (int...

2023-03-09 C++


C++ Boost库 操作字符串与正则

字符串的查找与替换一直是c++的若是,运用boost这个准标准库,将可以很好的弥补c++的不足,使针对字符串的操作更加容易。字符串格式转换:#include #include #include #include using namespace std; using namespace boost; int main(int argc, char * argv[]) { string str[3] = { "100", "102...

2023-03-09 C++编程算法正则表达式


C/C++ 通过中转函数实现DLL劫持

当我们运行程序时,一般情况下会默认加载ntdll.dll和kernel32.dll这两个链接库,在进程未被创建之前ntdll.dll库就被默认加载了,三环下任何对其劫持都是无效的,除了该dll外,其他的dll都是在程序运行时,在输入表中查找到对应关系后才会被装载到内存中的,理论上来说对除ntdll以外的其他库都是可操...

2023-03-09 C++打包C#