C语言调用VIX_API开关虚拟机

简介: #include #include #include "vix.h" #define USE_WORKSTATION #ifdef USE_WORKSTATION #define CONNTYPE VIX_SERVICEPROVIDER_VMWARE_WOR...
#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)\VMware\VMware VIX\Samples\powerOn.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

遗失的拂晓
目录
相关文章
|
29天前
|
API 数据库 C语言
【C/C++ 数据库 sqlite3】SQLite C语言API返回值深入解析
【C/C++ 数据库 sqlite3】SQLite C语言API返回值深入解析
169 0
|
9月前
|
XML JSON 缓存
C语言封装根据商品ID获取1688商品详情数据API方法
C语言封装根据商品ID获取1688商品详情数据API方法
57 0
|
8月前
|
JSON API 定位技术
C语言调用高德地图API
C语言调用高德地图API
119 0
|
缓存 API C语言
【数据结构】双向链表的API及C语言实现(二)
【数据结构】双向链表的API及C语言实现
103 0
【数据结构】双向链表的API及C语言实现(二)
|
API C语言
【数据结构】双向链表的API及C语言实现(一)
【数据结构】双向链表的API及C语言实现
82 0
【数据结构】双向链表的API及C语言实现(一)
|
SQL 网络协议 安全
C语言常用MySQL API函数
C语言常用MySQL API函数
188 0
|
算法 API C语言
[解题报告]《算法零基础100讲》(第41讲) C语言 排序 API
[解题报告]《算法零基础100讲》(第41讲) C语言 排序 API
|
API C# 数据格式
|
关系型数据库 MySQL API
|
并行计算 API C语言
《CUDA高性能并行计算》----2.2 需要知道的CUDA API和C语言拓展
CUDA并行所需要的基本任务包含以下几点: 使用特定的网格维度加载核函数(线程块和线程的数目)。 明确哪些函数编译后运行在设备(GPU)上、主机(CPU)上,或者两者之上。 访问和运用线程块和线程的计算索引值。 分配内存和传输数据。
1756 0