我是新手..不好意思
下面是输出一个1,请问,我想不用全局变量定义i,请问如何做...谢谢#include <Windows.h>
#include <iostream>
#include <process.h>unsigned __stdcall RunWow(void * pParam);int i = 100;void main(){

HANDLE h1;
h1 = (HANDLE)_beginthreadex(NULL,0,RunWow,0,0,NULL);
CloseHandle(h1);
Sleep(500);
printf("%d",i);
}unsigned __stdcall RunWow(void * pParam){
i = 1;
return 0;
}

解决方案 »

  1.   

    不好意思,我只是想int i = 100; 写入main()里面,不是想定义一个全局变量 最终还能输出1而不是100
      

  2.   

    同上。
    #include <Windows.h>
    #include <iostream>
    #include <process.h>unsigned __stdcall RunWow(void * pParam);void main(){
        HANDLE h1;
        int i = 100;
        h1 = (HANDLE)_beginthreadex(NULL,0,RunWow,&i,0,NULL);
        CloseHandle(h1);
        Sleep(500);
        printf("%d",i);
    }unsigned __stdcall RunWow(void * pParam){
        *(int*)pParam = 1;
        return 0;
    }
      

  3.   

    include <Windows.h>
    #include <iostream>
    #include <process.h>unsigned __stdcall RunWow(void * pParam);// int i = 100; 去掉;void main(){
        
        HANDLE h1;
        int i=0; //局部变量;
        //h1 = (HANDLE)_beginthreadex(NULL,0,RunWow,0,0,NULL); 改为:
           h1 = (HANDLE)_beginthreadex(NULL,0,RunWow,&i,0,NULL); 
        CloseHandle(h1);
        //Sleep(500);       改为:
        WaitForSingleObject(h1,INFINITE);
        printf("%d",i);
    }unsigned __stdcall RunWow(void * pParam){
        
        //i = 1;
        *(int *)pParam=1;
        return 0;
    }