【学习报告】尝试改写Kinect V2 示例代码时的问题

       开发平台为Win10 + VS2015 + Kinect V2

        日前做的一个小尝试就是将Kinect SDK 2.0 示例CoordinateMappingBasics-D2D中使用D2D的部分给去除了,并且做了一定程度的修改,只是为了个人的方便而已,并不具备普遍意义,不过其中碰到了一些问题,

        我想这次修改中最大的改变就是,将如下代码

int APIENTRY wWinMain(    
	_In_ HINSTANCE hInstance, // _In_ declare a variable only be read and no NULL
    _In_opt_ HINSTANCE hPrevInstance, // _In_opt_ allows NULL value
    _In_ LPWSTR lpCmdLine,
    _In_ int nShowCmd
    )
{
    UNREFERENCED_PARAMETER(hPrevInstance);
    UNREFERENCED_PARAMETER(lpCmdLine);
	CKinect application;
    application.Run(hInstance, nShowCmd);
}

        修改为了一般使用的int main 或者 void main, 具体如下

void main(int argc, char* argv[])
{
	CKinect application;
	application.InitializeDefaultSensor();
	while (1)
	{
		application.Update();
	}
}

当然这只是为了个人方便而已,其中碰到的问题是 InitializeDefaultSensor() 和 Update() 两个函数本来是 CKinect 类的私有函数, 但是在删除了所有的D2D部分后,就提示我该函数前缀没有定义,但是当这两个函数放到公共之后,就能运行了。其中原因并不是太了解,不过重新看了遍代码后发现 InitializeDefaultSensor() 和 Update() 两个函数是在函数 Run()中的,所以,对象已经明确,所以将两个函数又放回了私有,重新编写代码为

void CKinect::Run()
{
	InitializeDefaultSensor();
	while (1)
	{
		Update();
	}
}
void main(int argc, char* argv[])
{
	CKinect application;
	application.Run();
}
就又通过编译了。

最后要记得将 项目 -> 属性 -> 链接器 -> 系统 -> 子系统 改为 Console(/SUBSYSTEM:CONSOLE)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值