我可以使用C#预处理器跳过Kinect v2.0代码吗?

有线斩

快速问题,我正在开发一个小程序,希望与Kinect版本1和2一起使用。是否可以使用预处理程序命令,以便C#编译器在没有的情况下跳过我的Kinect v2.0代码安装Kinect 2.0 SDK?(例如,当我在Windows 7上工作时)。

克里斯汀·K

基本上是这样的:

#if KINECT1
   // ... kinect1 specifict code
#endif

#if KINECT2
   // ... kinect2 specific code
#endif

当然,您将必须手动定义这些符号,编译器或框架中没有内置功能来检测可用的版本(如果有的话)。

您可能可以使用MSBuild检测任何已安装的Kinect SDK(版本)。例如,查找特定的注册表项,本地驱动器上的路径和/或设置环境变量,然后从项目文件内部设置这些符号。

例如,在.csproj文件顶部包含以下片段(或将其放入您自己的单独文件中<Import>)。

 <PropertyGroup Condition="Exists('C:\Program Files\...\Whatever\v1.0')">
     <DefineConstants>KINECT1;$(DefineConstants)</DefineConstants>
 </PropertyGroup>
 <PropertyGroup Condition="Exists('C:\Program Files\...\Whatever\v2.0')">
     <DefineConstants>KINECT2;$(DefineConstants)</DefineConstants>
 </PropertyGroup>

(请记住,以上虽然仅是示例,但不知道检测kinect版本是什么“触发”)。

更新

@斯科特·张伯伦的评论有所帮助。实际上,Kinect 1.0 SDK设置了KINECTSDK10_DIR环境变量,而2.0 SDK设置了KINECTSDK20_DIR环境变量。

因此,您可以执行以下操作(也可能会有所帮助):

 <PropertyGroup Condition="'$(KINECTSDK10_DIR)' != '' and Exists('$(KINECTSDK10_DIR)')">
     <DefineConstants>KINECT1;$(DefineConstants)</DefineConstants>
 </PropertyGroup>
 <PropertyGroup Condition="'$(KINECTSDK20_DIR)' != '' and Exists('$(KINECTSDK20_DIR)')">
     <DefineConstants>KINECT2;$(DefineConstants)</DefineConstants>
 </PropertyGroup>

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

AVX计算问题:我可以运行avx2代码吗?

可以在roxygen2代码块内使用换行符吗?

我可以使用C预处理器有条件地检查宏的值吗?

C# 预处理器指令可以嵌套吗?

我可以使用Dropbox V2 API中的文件ID搜索/获取文件吗?

我可以使用PowerShell v2修改JSON请求吗?

我可以在 C 的预处理器连接中使用“(”吗?

预处理器跳过 C 中的部分代码

我可以使用预处理器使这个更清晰吗?

可以使用预处理器完成此for循环吗?

对话框流v2代码未运行

我可以使用Eclipse Kepler部署到Glassfish v2并在其上调试吗?

我可以测试预处理器指令的值吗?

使用JSF 2输出HTML5代码

您可以为 C# 版本添加预处理器指令吗?

无法使用更新代码在 tensorflow V2 中加载 Tensorflow v1 模型?

GCC 预处理器输出和一次编译,v2

有人可以使用C#统一代码在我的测验游戏中为我提供帮助吗

我可以为python获取完整的简单DialogFlow示例(当前版本v2)吗?

使用Kinect V2处理深度处理

可以在Gradle 5中使用apollo-android v2吗?

可以使用 PHP 从 Dropbox API V2 流式传输 mp3/mp4 吗?

我应该将Webhooks与PayPal的V2 API一起使用吗?

Hadoop 2:在Eclipse中设置Hadoop 2代码以修改源代码并运行/测试吗?

我可以单独使用VS2013单步执行VB6代码吗?

使用C预处理器生成样板代码

使用预处理器指令从C代码进行AST

我可以在create-react-app v2中使用CSS模块覆盖Material-UI吗?

我们可以在Azure函数v2中的Entry函数Run中使用HttpRequestMessage代替HttpRequest类吗?