VirtualBox成功编译出来后,在生成的out文件夹中会发现有SDK文件夹(当然也可以直接从官网下SDK),里面有例子,但是直接用Visual Studio编译的话会出一大堆错误,本文就是讲解如何使之编译通过。
如果使用Visual Studio直接建立工程,把例子CPP(\VirtualBox-4.2.8\out\win.x86\release\bin\sdk\bindings\mscom\samples\tstVBoxAPIWin.cpp)导入工程中,build时会出现以下错误:
1>Linking... 1>main.obj : error LNK2001: unresolved external symbol _CLSID_Session 1>main.obj : error LNK2001: unresolved external symbol _IID_ISession 1>main.obj : error LNK2001: unresolved external symbol _CLSID_VirtualBox 1>main.obj : error LNK2001: unresolved external symbol _IID_IVirtualBox
这时只需要include它lib下的tlb文件(这一步并不是必须的,但是为了将来使用VirtualBox SDK方便,建议先加上):
#import "C:\VirtualBox\VirtualBox-4.2.8\out\win.x86\release\bin\sdk\bindings\mscom\lib\VirtualBox.tlb" rename_namespace("NBVirtualBox")
并把lib文件夹下的“VirtualBox_i.c”添加到工程中参与build,就可以成功编译了,例子程序的输出:
Name: WinXP Successfully retrieved error description: Could not find a registered machine named 'Foobar'