![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c++
huanongying131
这个作者很懒,什么都没留下…
展开
-
wdk sdk
https://docs.microsoft.com/en-us/windows-hardware/drivers/other-wdk-downloads原创 2020-01-19 17:41:22 · 368 阅读 · 0 评论 -
IDA 导入 winddk 结构
shift+F11 右键,选择Load Type Library 可以选择:wdk8_km Windows Driver Kit 8 (kernel mode)【系统不同,版本不同,选择wdkXXX_KM 就好】原创 2019-10-15 21:10:34 · 543 阅读 · 3 评论 -
如何找到文件版本号,以及如何在vs工程中设置(查找)版本号
版本规则版本号由四部分组成:格式: a.b.c.d含义: a为主版本号; b为次版本号; c为修订版本号; d为日期版本号 用户群体:1. 首先找到使用软件的对应图标(一般在桌面): 2.然后在对应图标上 点击 鼠标右键—》属性: 3.原创 2017-07-14 19:52:10 · 6281 阅读 · 0 评论 -
static_cast const_cast dynamic_cast
转换万能法 (类型)变量 class a{}; class b{}; class c : public b{}; void func() { a* a1; b* b1; a1 =(a*) b1; b1 =(原创 2017-07-14 20:59:16 · 266 阅读 · 0 评论 -
关于 c++ 内存泄漏
对于windows 32为系统来说,一般一个进程的内存有4Gb,当然这是虚拟内存,windows 用一堆的数据结构来保存 进程,线程,虚拟内存。。。。 在4GB的虚拟内存中,需要映射高2G的内存给操作系统(通过开关设置,可以只配置1G的内存给操作系统),所以对于进程来说,就只有2Gb的虚拟内存,当一个进程被加载的时候,进程的可执行文件需要占用一定的虚拟内存,被加载进来的模块(dll 动态链接库,其原创 2017-08-25 18:40:48 · 372 阅读 · 0 评论 -
关于内存泄漏---auto_ptr
上一篇,自己写了一些代码,在调试的时候去检测内存泄漏,现在来分析一下auto_ptr 源码是vs2015里的。ok,let's go !template struct auto_ptr_ref //引用指针 { explicit auto_ptr_ref(_Ty *_Right) //只能显示调用,用来初始化成员变量 : _Ref(_Right) {原创 2017-08-26 04:13:56 · 903 阅读 · 0 评论 -
placement new
上一篇,我分析了 new , delete 现在来分析一下 placement new placement new 的语法: new(address) constructed_function(..) placement new 是以已分配的内存为this,来调用函数。在需要重复分配内存的情况下, 使用placement new 的效率是比较原创 2017-08-29 19:57:17 · 612 阅读 · 0 评论 -
new delete operator new oprator delete operator new[] operator delete[] 详解
在vs2015里,有这么一个文件 vcruntime_new.h内容大致如下:#define __CRTDECL __cdecl namespace std { struct nothrow_t { }; extern nothrow_t const nothrow; } _Ret_notn原创 2017-08-30 08:20:41 · 2962 阅读 · 0 评论 -
浅析 main 之前代码 (VS2015)
用VS2015 如何追踪 main之前代码尼?#include #include void main(){ printf("%d\n", 1);}在printf处设置断点,反汇编代码,在ret 设置断点,f5, 再f10单步。便能跳到 编译器插入的代码。 printf("%d\n", 1);00CE1070 push 1原创 2017-08-30 13:18:31 · 3662 阅读 · 0 评论 -
关于调试 那点事
最近遇到了,非常让人恼火的事情。就是vs2013 。 突然调试不了了,修改了代码,能够编译通过,但就是无法生成新的可执行文件。卧槽,删除了生成的exe 文件,还是无法生成修改后的可执行文件。于是,我把项目里的 ipch、.sdf、.v12.suo 、项目名/项目名/Debug 、项目名/项目名/Release。删除了,就好了 卧槽。。。。。原创 2017-09-11 10:32:18 · 264 阅读 · 0 评论 -
在编译期,获得函数参数个数
#if _MSC_VER >= 1900#define _CONST_EXPR constexpr#define _NO_EXCEPT noexcept#else#define _CONST_EXPR inline#define _NO_EXCEPT throw()#endif#define MYLIB_START namespace myLib{#define原创 2017-09-11 13:52:59 · 650 阅读 · 0 评论 -
MallocCreator
template struct MallocCreator { static T* Create() { void* buf = mal原创 2017-10-27 06:20:04 · 164 阅读 · 0 评论 -
自定义MessageBox
自定义MessageBox方法一:#include HHOOK g_hMsgBoxHook;void OnModifyMsgBoxOk(HWND hwnd){ SetDlgItemText(hwnd, IDOK, "确定按钮");}LRESULT CALLBACK CBTHookProcOk(int nCode, WPARAM wParam, LPARAM lParam)原创 2017-10-19 10:35:34 · 1461 阅读 · 0 评论 -
泛型 _Get_deleter_pointer_type
在分析 Unique_ptr的 遇到了 _Get_deleter_pointer_type 百思不得其解 所以把这个代码抠出来,测试了一下,终于明白了,写到博客上便于以后查找。template struct MyPointer{ typedef _Ty* pointer;};template struct _MyIdentity{原创 2017-10-13 07:54:29 · 435 阅读 · 0 评论 -
Windows 桌面程序例子网址
https://msdn.microsoft.com/en-us/library/windows/desktop/bg126469(v=vs.85).aspx原创 2017-10-31 15:35:51 · 327 阅读 · 0 评论 -
VS 字符集设置
#include #include #ifdef _UNICODE# define UICODE_IS_DEFINED#else # define MULTIBYTES_IS_DEFINE#endifvoid main(){#ifdef UICODE_IS_DEFINED printf("项目属性页--》配置属性--》常规--》项目默认值--》字符集:使用Unicode字原创 2017-10-25 06:56:37 · 12298 阅读 · 3 评论 -
WINHTTP
原文地址:http://blog.sina.com.cn/s/blog_b74670be0102v3yd.htmlWinHTTP的全称是Microsoft Windows HTTP Services, 它提供给开发者一个HTTP客户端应用程序接口(API), 通过这种API借助HTTP协议给其他的HTTP服务器发送请求. WinHTTP支持桌面应用程序, Windows系统服务, 和W转载 2017-10-25 13:25:34 · 2855 阅读 · 0 评论 -
http以post方式上传一个文件,构造其请求头和消息报文
原文地址:http://www.cnblogs.com/frustrate2/archive/2012/11/07/2759080.html假设接受文件的网页程序位于 http://192.168.29.65/upload_file/UploadFile.假设我们要发送一个图片文件,文件名为“kn.jpg”, 首先客户端链接 192.168.24.56 后, 应该发送如下http 请转载 2017-11-02 16:20:23 · 14823 阅读 · 0 评论 -
HTTP POST GET 本质区别详解
原文地址:http://www.cnblogs.com/frustrate2/archive/2012/11/07/2759013.html一 原理区别 一般在浏览器中输入网址访问资源都是通过GET方式;在FORM提交中,可以通过Method指定提交方式为GET或者POST,默认为GET提交Http定义了与服务器交互的不同方法,最基本的方法有4种,分别是GET,POS转载 2017-11-02 16:29:59 · 246 阅读 · 0 评论 -
gdi句柄表
看windows核心编程,让我明白了什么虚拟内存,以及 什么是内核对象。最近看了 windows图形编程 发现 gdi句柄 也是系统共享的 。(而且这本书的作者还 是中国人。) 画一个结构图吧 ,便于以后快速回忆。原创 2017-10-16 17:12:50 · 632 阅读 · 0 评论 -
浅谈 typeid
在 vs2010中的typeinfo.h 中 有一个叫 type_info的类 类的接口如下:class type_info {public: virtual __thiscall ~type_info(); int __thiscall operator==(_In_ const type_info& _Rhs) const; int __thisca原创 2016-10-20 11:06:39 · 1251 阅读 · 0 评论 -
WriteFile 同步(bug)
真是虐了狗了,windows10上运行好好的,windows7竟然挂点了。同事,还跟我说,要挂也window10上挂吧,怎么在windows7上挂了尼。卧槽,经过排查,发现是WriteFile的问题。函数原型:BOOL WINAPI WriteFile( HANDLE hFile,LPCVOID lpBuffer,DWORD nNumberOfBytesToWrite, LPDWORD原创 2017-11-17 19:37:01 · 1894 阅读 · 0 评论 -
udp
最近要使用udp通信,所以写了关于udp的类,方便使用。 common.h#pragma once#ifndef IS_NULLPTR#define IS_NULLPTR(ptr) (nullptr == (ptr))#endif#ifndef NOT_NULLPTR#define NOT_NULLPTR(ptr) (nullptr != (ptr))#endif#i原创 2017-11-28 22:49:51 · 237 阅读 · 0 评论 -
core audio 音频捕获
最近,接触了一个项目,这个项目捕获的音频,噪音很大,所以研究了core audio ,重写了音频捕获类。Common.h/** author: zyb* \brief Common Macro*/#pragma once#ifndef IS_NULLPTR#define IS_NULLPTR(ptr) (nullptr == (ptr))#endif#ifndef原创 2017-11-28 23:18:13 · 660 阅读 · 0 评论 -
char wchar_t ascii unicode 之旅
在window32开发中 ,char占用一个字节,wchar_t占用两个字节。ascii字符集 用char表示。unicode字符集用wchar_t表示。 我们是否经常听到这样一句话。用 string表示的占用内存比较少。wstring表示的占用内存比较多。起初我也是这么认为的,所以我经常使用string.虽然我知道win32内 部是用unicode表原创 2017-10-18 06:43:00 · 459 阅读 · 0 评论 -
获取系统CPU 使用率
废话不多说了,网上存在一种获取CPU使用率的方法是有bug的。也不知道有多少使用该方法的人没注意这个问题了,反正我是看到有人直接复制了这个代码。来看一下 FILETIME的结构:typedef struct _FILETIME { DWORD dwLowDateTime; DWORD dwHighDateTime;} FILETIME, *PFILETIME,原创 2017-12-05 18:55:49 · 1205 阅读 · 0 评论 -
模板 让代码更简洁
不多说了,看代码吧,我们不需要写两套关于wchar_t, char的函数,只需要定义一个模板。这是我想了一个星期创造出来的,应该还没有人这样写吧。strFuncTypeDef.h 字符串操作函数定义/** author: zyb* \brief: strFuncTypeDef for template function*/#pragma once#include/*原创 2017-12-05 21:50:54 · 350 阅读 · 0 评论 -
窗口置顶
HWND hForeWnd = NULL; HWND hWnd= FindWindow(NULL, "");DWORD dwForeID; DWORD dwCurID; hForeWnd = GetForegroundWindow(); dwCurID = GetCurrentThreadId(); dwForeID = GetWindowThreadProc转载 2017-12-24 17:07:09 · 1144 阅读 · 0 评论 -
虚拟键码
VC(VISUAL_C++)虚拟键VK值列表键盘VK键值列表/* Virtual Keys, Standard Set*/VK_LBUTTON 0x01VK_RBUTTON 0x02VK_CANCEL转载 2017-12-15 17:17:47 · 476 阅读 · 0 评论 -
Electron windows 入门链接
https://www.cnblogs.com/wangjian8888/p/7988439.html转载 2017-12-27 15:36:08 · 282 阅读 · 0 评论 -
window 硬件信息获取链接
https://msdn.microsoft.com/library/windows/hardware/aa394216原创 2018-02-01 19:34:16 · 254 阅读 · 0 评论 -
WTL
http://blog.sina.com.cn/s/blog_4e0987310101ijtd.html转载 2018-02-09 18:20:27 · 197 阅读 · 0 评论 -
WTL ie控件
如图:OK,运行程序,将会打开一个网页了,分析一下,是怎么实现的。Ok原创 2018-02-09 19:23:48 · 222 阅读 · 0 评论 -
打造自己的双内核浏览器
最近接触了,libcef外壳,ie外壳的开发。熟悉了浏览器开发的基本方法。因此。我决定了,在未来的岁月里,开发出一个属于自己的双内核浏览器。 虽然,msdn有关于mfcie的例子去开发ie的例子,但mfc太臃肿,所以我决定采用wtl来开发。 这是,在wtl探索下,参考wtlbrowser的例子,重新封装的类似于Chtml...原创 2018-02-12 13:48:42 · 2804 阅读 · 0 评论 -
安全开发链接
转:http://www.cnblogs.com/himessage/archive/2013/01/08/2850562.html转载 2018-06-14 11:41:04 · 193 阅读 · 0 评论 -
WM_KILLFOCUS Hook
#include <wtypes.h>HHOOK g_wndproc_hook = NULL;HWND* g_hWnds = NULL; //窗口数组ULONG g_nhwnd = 0; //窗口数量HMODULE GetCurrentModule(const void* pAddr = nullptr){ const void* cpAddr = pAddr; ME...原创 2018-06-23 19:32:48 · 651 阅读 · 0 评论 -
提权
DWORD SetPrivilege( LPCTSTR lpszPrivilege = SE_DEBUG_NAME, BOOL bEnablePrivilege = TRUE){ DWORD dwError = ERROR_SUCCESS; HANDLE hToken = NULL; if (IS_FALSE(::OpenProcessToken( ::GetCurrentPro...原创 2018-07-08 01:51:56 · 308 阅读 · 0 评论 -
添加另一个工程的.h .cpp
工程直接通过“添加”“现有项(Existing Item)”,添加.h .cpp原创 2018-07-08 17:05:53 · 416 阅读 · 0 评论 -
SERVICE_STATUS
https://www.cnblogs.com/ys0103/p/4253504.html在编写Windows服务的时候,需要调用API函数::SetServiceStatus()向服务控制管理器(SCM)提交更新当前服务的状态信息,其第2个参数为指向SERVICE_STATUS结构的指针,SERVICE_STATUS结构中包含了表示当前服务状态的信息,对其各成员一一分析:typedef stru...转载 2018-07-08 17:34:49 · 2993 阅读 · 0 评论 -
clamav
http://blog.sina.com.cn/s/blog_4c11fc6f010008k9.html转载 2018-07-12 23:57:57 · 600 阅读 · 0 评论