zoukankan      html  css  js  c++  java
  • GetThreadContext和SetThreadContext

    #include "stdafx.h" 
    #include <iostream>
    #include <windows.h>
    
    using namespace std;
    
    DWORD WINAPI ThreadProc(LPVOID lpParamter)
    {
        for (int i = 0;i<10;i++)
        {
            Sleep(1000);
            printf("ThreadProc1********* %d\n",i);
        }
        return 0;
    }
    
    DWORD WINAPI ThreadProc1(LPVOID lpParamter)
    {
        for (int i = 0;i<50;i++)
        {
            Sleep(100);
            printf("ThreadProc1********* %d\n",i);
        }
        return 0;
    }
    
    DWORD WINAPI ThreadProc2(LPVOID lpParamter)
    {
        for (int j = 0;j<50;j++)
        {
            Sleep(50);
            printf("ThreadProc2********* %d\n",j);
        }
        return 5;
    }
    
    int main()
    {
        //unsigned long ulThreadId = 0;
        HANDLE hThread[2];
        DWORD dwr1;
        DWORD dwr2;
    
    
        hThread[0] = CreateThread(NULL, 0, ThreadProc1, NULL, 0, NULL);
        //hThread[1] = CreateThread(NULL, 0, ThreadProc2, NULL, 0, NULL);
    
        //Sleep(2000);
        SuspendThread(hThread[0]);
    
        CONTEXT context;
        context.ContextFlags = CONTEXT_INTEGER;

      //从线程获取寄存器的值存入context GetThreadContext(hThread[
    0],&context); printf("%x -- %x\n",context.Eax,context.Ecx); context.Eax = 1; context.Ecx = 2;

      //把修改好的context传入thread SetThreadContext(hThread[
    0],&context); printf("%x -- %x\n",context.Eax,context.Ecx); GetThreadContext(hThread[0],&context); printf("%x -- %x\n",context.Eax,context.Ecx); ResumeThread(hThread[0]); // WaitForMultipleObjects(2,hThread,TRUE,INFINITE); // GetExitCodeThread(hThread[0],&dwr1); // GetExitCodeThread(hThread[1],&dwr2); cout << "线程结束了!" <<endl; getchar(); CloseHandle(hThread[0]); CloseHandle(hThread[1]); //system("pause"); return 0; }
  • 相关阅读:
    模板【洛谷P3368】 【模板】树状数组 2
    模板【洛谷P3812】 【模板】线性基
    Java面向对象-多态
    Java常用工具类
    Java常用工具类
    Java static关键字
    MyBatis对象关联查询demo (一对多,多对一)
    将Cmder添加到系统右键菜单中
    IDEA 创建JavaWeb应用打包并发布
    IDEA 调试与打包
  • 原文地址:https://www.cnblogs.com/ganxiang/p/13140624.html
Copyright © 2011-2022 走看看