zoukankan      html  css  js  c++  java
  • C语言调用VIX_API开关虚拟机

    #include <stdio.h>
    #include <stdlib.h>
    
    #include "vix.h"
    
    #define USE_WORKSTATION
    
    #ifdef USE_WORKSTATION
    
    #define  CONNTYPE    VIX_SERVICEPROVIDER_VMWARE_WORKSTATION
    
    #define  HOSTNAME ""
    #define  HOSTPORT 0
    #define  USERNAME ""
    #define  PASSWORD ""
    
    #define  VMPOWEROPTIONS   VIX_VMPOWEROP_LAUNCH_GUI
    #endif    // USE_WORKSTATION
    
    int
    main()
    {
        VixError err;
        char *vmxPath= "E:\win7\Windows 7 x64.vmx";//此处路径自行修改,不要出现中文
        VixHandle hostHandle = VIX_INVALID_HANDLE;
        VixHandle jobHandle = VIX_INVALID_HANDLE;
        VixHandle vmHandle = VIX_INVALID_HANDLE;
    
        jobHandle = VixHost_Connect(VIX_API_VERSION,
                                    CONNTYPE,
                                    HOSTNAME, // *hostName,
                                    HOSTPORT, // hostPort,
                                    USERNAME, // *userName,
                                    PASSWORD, // *password,
                                    0, // options,
                                    VIX_INVALID_HANDLE, // propertyListHandle,
                                    NULL, // *callbackProc,
                                    NULL); // *clientData);
        err = VixJob_Wait(jobHandle,
                          VIX_PROPERTY_JOB_RESULT_HANDLE,
                          &hostHandle,
                          VIX_PROPERTY_NONE);
        if (VIX_FAILED(err)) {
            goto abort;
        }
    
        Vix_ReleaseHandle(jobHandle);
        jobHandle = VixVM_Open(hostHandle,
                               vmxPath,
                               NULL, // VixEventProc *callbackProc,
                               NULL); // void *clientData);
        err = VixJob_Wait(jobHandle,
                          VIX_PROPERTY_JOB_RESULT_HANDLE,
                          &vmHandle,
                          VIX_PROPERTY_NONE);
        if (VIX_FAILED(err)) {
            goto abort;
        }
    
        Vix_ReleaseHandle(jobHandle);
        jobHandle = VixVM_PowerOn(vmHandle,
                                  VMPOWEROPTIONS,
                                  VIX_INVALID_HANDLE,
                                  NULL, // *callbackProc,
                                  NULL); // *clientData);
        err = VixJob_Wait(jobHandle, VIX_PROPERTY_NONE);
        if (VIX_FAILED(err)) {
            goto abort;
        }
    
        Vix_ReleaseHandle(jobHandle);
        jobHandle = VixVM_PowerOff(vmHandle,
                                   VIX_VMPOWEROP_NORMAL,
                                   NULL, // *callbackProc,
                                   NULL); // *clientData);
        err = VixJob_Wait(jobHandle, VIX_PROPERTY_NONE);
        if (VIX_FAILED(err)) {
            goto abort;
        }
    
    abort:
        Vix_ReleaseHandle(jobHandle);
        Vix_ReleaseHandle(vmHandle);
    
        VixHost_Disconnect(hostHandle);
    
        return 0;
    }

    这是一个在CodeBlocks上写的c程序,安装了虚拟机的,具体源码请在“C:Program Files (x86)VMwareVMware VIXSamplespowerOn.c”里查看,
    注:

    1、在project->Properties->C/C++->添加头文件所在文件夹(把头文件放程序文件夹里)
    2、添加头文件vix.h与vm_basic_types.h
    3、在project->Properties->Project Setting->Project build options->linker settings->添加动态链接库VixAllProductsDyn.lib
    4、在debug下添加VixAllProductsDyn.dll

  • 相关阅读:
    蓝桥杯基础 算法训练 图形显示 (简单模拟,坑)
    越喜欢村上春树,就越懂得生活
    HTML 基础 之 列表标签 () 学习笔记
    HTML 基础 之 段落标签() 学习笔记
    《Norwegain Wood》—— The Beatles
    蓝桥杯基础 算法训练 前缀表达式 (基础语法)
    Python3 使用 urllib 包访问Web网站
    蓝桥杯 算法提高 队列操作 (STL基本操作)
    蓝桥杯 算法提高 11-1 实现strcmp函数 (C语言实现,指针实现)
    蓝桥杯基础 算法训练 矩阵乘法 (模板题)
  • 原文地址:https://www.cnblogs.com/lossingdawn/p/4075922.html
Copyright © 2011-2022 走看看