记录下比赛前20多天调试时遇到的问题、解决方法和体会
1:OpenNI驱动的安装
通常会按如下顺序进行安装:
1 OpenNI-Win32-1.3.2.1-Dev.msi
2 avin2-SensorKinect-0e5a176BinSensorKinect-Win-OpenSource32-5.0.3.3.msi
3 NITE-Win32-1.4.0.5-Dev.msi
4 Sensor-Win32-5.0.3.3-Redist.msi
安装完后一般通过打开C:Program FilesOpenNISamplesBinRelease下的demo进行测试安装是否正确,此时会遇到的一个问题是:
显示说明是关于OpenNI.dll的问题
解决方法:将C:Program FilesOpenNIBin下的OpenNI.dll复制到C:WindowsSystem32下即可
注意复制时会提醒要替换原先就在C:WindowsSystem32下的OpenNI.dll
2:System32相关
System32是系统文件装载的地方,相关的驱动,要加载的系统服务都是从system32中开始的,因此当用VS进行代码编写和调试,当遇到缺少某某文件时,只要把相关文件拷贝到该目录下即可。
3:dll
动态链接库英文为DLL,是Dynamic Link Library 的缩写形式,DLL是一个包含可由多个程序同时使用的代码和数据的库,DLL不是可执行文件。动态链接提供了一种方法,使进程可以调用不属于其可执行代码的函数。函数的可执行代码位于一个 DLL 中,该 DLL 包含一个或多个已被编译、链接并与使用它们的进程分开存储的函数。DLL 还有助于共享数据和资源。多个应用程序可同时访问内存中单个DLL 副本的内容。DLL 是一个包含可由多个程序同时使用的代码和数据的库。
4:lib
LIB有两种,一种是静态库,比如C-Runtime库,这种LIB中有函数的实现代码,一般用在静态连编上,它是将LIB中的代码加入目标模块(EXE或者DLL)文件中,所以链接好了之后,LIB文件就没有用了。一种LIB是和DLL配合使用的,里面没有代码,代码在DLL中,这种LIB是用在静态调用DLL上的,所以起的作用也是链接中用,链接完成了,LIB也没用了。至于动态调用DLL的话,根本用不上LIB文件。 目标模块(EXE或者DLL)文件生成之后,就用不着LIB文件了。
5:PATH路径
环境变量的变量值都是一些应用程序所在的目录,设置环境变量的目的是使这些程序可以在任何目录中被调用,这种方法在DOS这样的命令窗口中作用更明显。如path,当要求系统运行一个程序而没有告诉它程序所在的完整路径时,系统除了在当前目录下面寻找此程序外,还会到path中指定的路径去找。
StevenMeng
2013.8.24