0x1 项目介绍
字母区写上一段字母 大小在50个以内, 可以自己定义,缓冲区每次只能有一个字母, 4个编辑框可以分别吃字母,最后4个吃货的所有字母加起来等于输入的字母和
0x2 难点
多种线程控制的结合使用, 缓冲区的控制, 吃货区的控制
0x3 项目展示
0x4 项目代码
// 20180102_01.cpp : Defines the entry point for the application.
//
#include "stdafx.h...
几天没写代码, 感觉就好久了,要测试一个小项目,总结一下前段时间的学习的多线程的控制
主要分四个
临界区: 解决简单的多线程公用问题, 多个同时使用,注意死锁的问题
互斥体: 解决多开的问题, 可以跨进程,进行多线程的操作
事件:可以跨进程, 同时解决了,进程先后执行的问题
信号量: 可以控制,同时是几个线程执行的情况!
简单的自己的总结, 今天把 一个详细的综合案例放上来!!
记录一下吧.
付完了首付 基本口袋里就空了!!
在襄樊买了房子
最近这里被炒的很火,但是相对上海, 还是 一般般...
7000一平米
不想写太多,, 希望早点还完贷款!!!
0x1 问题原因
笔记本放在宾馆, 出门的时候, 忘了关闭, 回来看看 电脑异常关闭了, 打开自己的vmware, 报错了
VMware Workstation 不可恢复错误: (vmx)
0x2 解决方法
*.vmss文件 有一个暂停的符号.
直接删除这个文件 就可以了, 删除暂停的状态, 启动系统即可!!!
// 20171228_01.cpp : Defines the entry point for the application.
//
#include "stdafx.h"
#include <windows.h>
#include <stdio.h>
#include "resource.h"
HWND hEdit1;
HWND hEdit2;
HWND hEdit3;
HWND hEdit4;
HANDLE hThread1;
HANDLE hThread2;
HANDLE hThread3;
HANDLE hThread4...
关键技术: 创建两个事件 CreateEvent, 创建一个事件 CreateEvent 是无法解决问题的
// 20171228_01.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <stdio.h>
#include <windows.h>
CRITICAL_SECTION cs;
DWORD g_Number = 0;
int g_Max = 10;
HAND...
CreateEvent 的官方定义如下:
HANDLE WINAPI CreateEvent(
_In_opt_ LPSECURITY_ATTRIBUTES lpEventAttributes, //安全属性
_In_ BOOL bManualReset, //设置信号复位方式为自动恢复为无信号状态(FALSE)还是手动恢复为无信号状态(TRUE)
_In_  ...
// 20171227_01.cpp : Defines the entry point for the application.
//
#include "stdafx.h"
#include "resource.h"
#include <stdio.h>
#include <windows.h>
HWND hEdit_hong;
HWND hEdit1;
HWND hEdit2;
HWND hEdit3;
int HongNum = 0;
HANDLE hThead_Main;
HANDLE hMutex;
DWOR...
// 20171227_01.cpp : Defines the entry point for the application.
//
#include "stdafx.h"
#include "resource.h"
#include <stdio.h>
#include <windows.h>
HWND hEdit_hong;
HWND hEdit1;
HWND hEdit2;
HWND hEdit3;
int HongNum = 0;
HANDLE hThead_Main;
CRITICAL_SECTION cs;
...
1 使用HWND
查找窗口:
HWND h_wnd = ::FindWindow(_T("MainForm"), NULL);
1
创建窗口:
HWND hwnd = WindowEx::Create(NULL, L"", WS_POPUP, WS_EX_TOOLWINDOW);
1
2 使用HANDLE
单例运行:
bool SingletonRun(const wchar_t *application)
{
assert(application);
if (applicati...
// 20171226_02.cpp : Defines the entry point for the application.
//
#include "stdafx.h"
#include "resource.h"
#include <stdio.h>
#include <windows.h>
HWND hEdit;
CRITICAL_SECTION cs1;
CRITICAL_SECTION cs2;
DWORD WINAPI ThreadProc1(
LPVOID lpParameter // thread data...
// 20171226_02.cpp : Defines the entry point for the application.
//
#include "stdafx.h"
#include "resource.h"
#include <stdio.h>
#include <windows.h>
HWND hEdit;
CRITICAL_SECTION cs;
DWORD WINAPI ThreadProc1(
LPVOID lpParameter // thread data
)
{
TCHAR numStr[10...
引言
初学者或者一些有经验的开发人员,并不总是对于系统底层有清楚的了解。比如,进程(或线程)调度是如何实现的?往往只停留于模糊的认识。了解这些问题的最好途径是亲自实践。然而开发一个真实系统的门槛很高,而通过学习一个已有系统来了解也非易事,因为错综复杂的代码和关系有时把人搞糊涂了。于是学习者往往写一些模拟程序来努力表达系统是怎样运作的。不过,这些程序往往过于简单。于是“看看能否写一个模拟进程调度的软件”,从这个想法出发我尝试写一个接近真实的调度程序,因为进程或线程调度是现代操作系统的核心部分。经过一段时间的摸索一个调度程序写成了,同时写了一个简单的内存管理。接下来实现了一个模拟文件系...
进程就是4GB 线程就是EIP
无意间看到的文章,还不会用,收藏下!
【标题】: 劫持正在运行进程的EIP注入代码的方法
【作者】: 火血狼(QQ:65845743)
【工具】: VC++2005, WINXP, WIN7
【声明】: 1.禁止用来做破坏;2.转载请告知作者.
-----------------------------------------------------------------------------
【灵感来源】
近日,在读<<Windows内核编程>>的时候,偶然发现,一个函数...
功能:
01:展示输出表信息
02: 展示输入表信息
03:资源表信息
04:重定位表信息
05:绑定导入表信息
难点:
01: 定义全局变量, 区别每个点击按钮, 使用一个对话框,分别对消息进行接收
02: 读取PE信息, 对每个表的信息进行展示
03: 字符串的使用方法 sprintf strcat 的用法
04 SendMessage
实例展示:
主要代码:
...