一个应用程序对一个KINECT设备
,必
须要调用此函数一次,并且也只能调用一次。如果在这之后又调用一次初始化,势必会引起逻辑错误(即使是2个不同程序)。比如你运行一个SDK的例子,在没关闭它的前提下,再运行一个,那么后运行的就无法初始化成功,但不会影响之前的程序继续运行。如果你的程序想使用多台KINECT,那么请使用INuiInstance接口来初始化你的设备。
_tWinMain是应用程序的入口函数,这里是使用它的宏,定义在tchar.h头文件里,为什么要这样作宏定义的呢?由于Windows的应用程序要适应UNICODE和以前单字符的应用程序,由于Windows这两个API的定义是不一样的,如下:
UNICODE的定义:
#define _tWinMain wWinMain
单字符的定义:
#define _tWinMain WinMain
只要经过这样的宏定义后,就可以适应不同字符宽度的函数接口了。由于我是采用UNICODE编译的,所以这里使用wWinMain函数定义,下面再把它的定义找出来,如下:
int WINAPI wWinMain(
HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPWSTR lpCmdLine,
int nShowCmd
);
这里要详细地解释一下函数wWinMain的参数,它有四个参数。
hInstance
是当前应用程序的实例句柄,一般用来区分不同的资源使用。
hPrevInstance
是以前Win98使用的句柄,在Win2000以后的操作系统里都是空值NULL。
lpCmdLine
是命令行参数,比如你在Windows开始菜单里运行一个程序,并添加参数在后面,就会传递给应用程序,后面再详细讨论。
nShowCmd
是窗口的显示方式,比如最大化显示,最小化显示,还是正常显示。
cvNameWindow("examples",CV_WINDOW_AUTOSIZE)鼠标控制图像大
cvNameWindow("examples",CV_WINDOW_AUTOSIZE)
第二个参数为1时,鼠标不能控制图像大小;
第二个参数为0时,鼠标可以控制图像大小。