WinXp +VC6 编译竟然说找不到CreateJobObject()函数以及相关变量!头文件包含了应该没问题,难道说是WinXP不支持这个函数了???还是需要下某个扩展SDK???

解决方案 »

  1.   

    参看csdn。看看这个函数需要的版本是多少。再看看自己的vc工程里环境变量(_WIN32_WINNT 和 WINVER)是多少.比较函数需要的版本号!自己定义_WIN32_WINNT 和 WINVER值
      

  2.   

    Windows NT/2000: Requires Windows 2000.
    Windows 95/98: Unsupported.一般情况下,如果你的vc工程都是缺省设置的话,那么编译时CreateJobObject不会参与编译,所以找不到!
    在stdafx.h中定义#define _WIN32_WINNT 0x0500
      

  3.   

    恩现在我通过编译了
    不过SetInformationJobObject()函数运行时总是不对返回错误代码是24
    HANDLE hjob=CreateJobObject(NULL,NULL);
    if(hjob==NULL)
    {
    char* errorInfo=new char[10];
    errorInfo=_itoa((int)GetLastError(),errorInfo,10);
    ::MessageBox(NULL,errorInfo,"CreateJobObject",MB_OK);
    delete errorInfo;
    } JOBOBJECT_BASIC_LIMIT_INFORMATION jobli = {0}; jobli.PriorityClass=IDLE_PRIORITY_CLASS;
    jobli.PerJobUserTimeLimit.QuadPart = 1000;
    jobli.LimitFlags=JOB_OBJECT_LIMIT_PROCESS_TIME;
    if(!SetInformationJobObject(hjob,JobObjectBasicLimitInformation,&jobli,sizeof(jobli)))
    {
    char* errorInfo=new char[10];
    errorInfo=_itoa((int)GetLastError(),errorInfo,10);
    ::MessageBox(NULL,errorInfo,"ERROR",MB_OK);
    delete errorInfo;
    }
    STARTUPINFO si={sizeof(si)};
    PROCESS_INFORMATION pi;
    CreateProcess(NULL,"3DApp",NULL,NULL,FALSE,CREATE_SUSPENDED,NULL,NULL,&si,&pi);
    AssignProcessToJobObject(hjob,pi.hProcess); ResumeThread(pi.hThread);
    CloseHandle(pi.hThread);
      

  4.   

    大哥,不要什么问题都问,这样对你没有什么好处!To get extended error information, call GetLastError().
    上面这段话msdn上有,你有没有试过?
      

  5.   

    看过啊
    但是错误原因我不知道所以才问啊!The program issued a command but the command length is incorrect.???????????