2010-04-16 73 views

回答

11

您在问题中存在不连续性。你在问一个编译符号,所以只有在设计时才存在,并且在运行时检测一个条件。所以你的问题是你究竟在追求哪一个?

如果您想在运行时知道您是否在CF下,请检查Environment.OSVersion.Platform属性以查看它是否为WinCE。

if(Environment.OSVersion.Platform == PlatformID.WinCE) 
{ 
    // this is CF 
} 

在编译时它并不那么直截了当。默认的项目向导添加编译符号“无忧”为PPC/WinMo的项目,“WindowsCE的”为WinCE的项目和“WINDOWS_PHONE”为Phone7的项目,所以你可以做这样的事情:

#if WindowsCE || PocketPC || WINDOWS_PHONE 
// this is CF 
#endif 

但还有什么可说的开发人员不能删除该符号(或将其添加到桌面项目中)。

0

或者用简单的话:

的基本思想是用#如果编译器指令每个框架的版本来装点你的代码?

#if CFNET 
// .net CF code 
#else 
// .net code 
#endif 

线程here回答你的问题。

相关问题