(.NET Framework 3.5 的)某些类包含 .NET Compact Framework 支持的一些方法,以及一些不支持的方法。还有一些 .NET Compact Framework 不存在的类。
例如 System.IO.File
类中,.NET Compact Framework 支持 File.Create
函数,但 File.Encrypt
函数不支持。
另一个示例:.NET Compact Framework 支持 System.IO.File
类,但 System.Diagnostic.StackTrace
不支持。
我需要告诉编译器这样的事情:
#ifdef COMPACT_FRAMEWORK // I'm compiling this from a smart device project
MyEncryptMethod("filename");
#else // I'm compiling this from a desktop project
File.Encrypt("filename");
#endif
我该怎么办?
(具体版本为Windows Mobile 6.1 Professional)。
最佳答案
补充一下,由于您显示的是 windows-mobile 和 windows-mobile-6,因此您应该将 #define
约束更改为PocketPC
而不是 COMPACT_FRAMEWORK
。
#ifdef PocketPC // PocketPC is what the WM SDK uses
MyEncryptMethod("filename");
#else // I'm compiling this from a desktop project
File.Encrypt("filename");
#endif
更新:
尼克:yms 说的。 :) 使用智能设备项目之一构建项目时,Visual Studio 会自动将条件编译符号 PocketPC
添加到项目中。
在 VS2008 的主菜单中,单击“项目”并在底部选择项目的“属性”。
在项目的“属性”页面上,转到“构建”选项卡,您将在其中看到已为您定义 PocketPC
的位置。
关于c# - 我如何知道 Windows Mobile 是否支持此方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13251177/