实验需要控制程序虚拟机,运用VIX,现在只是简单的开关机,程序按照sample完成后,没错,但是程序运行,对虚拟机没有做出任何反应。不知道哪里出问题,望高手解答:
代码如下:
#include
#include
#include "vix.h"
#pragma comment ( lib, "vix.lib" )
#define USE_WORKSTATION
#ifdef USE_WORKSTATION
#defineCONNTYPE
VIX_SERVICEPROVIDER_VMWARE_WORKSTATION
#defineHOSTNAME ""
#defineHOSTPORT 0
#defineUSERNAME ""
#definePASSWORD ""
#defineVMPOWEROPTIONS VIX_VMPOWEROP_LAUNCH_GUI
int main()
{
VixError err;
char *vmxPath="E:\\vm\\复件 复件 xp\\Windows XP Professional.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 = VIX_INVALID_HANDLE;
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;
}
已经解决,char *vmxPath="E:\\vm\\复件 复件 xp\\Windows XP Professional.vmx";
不能含有中文,嘿嘿,哦了 啊。谢谢
|