请参阅主题,请注意,此问题仅适用于.NET compact框架.这种情况发生在Windows Mobile 6 Professional SDK附带的模拟器以及我的英文HTC Touch Pro(所有.NET CF 3.5)上.iso-8859-1代表西欧(ISO),它可能是除了us-ascii之外最重要的编码(至少当一个用户网帖的数量).
我很难理解为什么不支持这种编码,而支持以下版本(同样在模拟器和我的HTC上):
那么,支持希腊语比支持德语,法语和西班牙语更重要吗?任何人都可以对此有所了解吗?
谢谢!
安德烈亚斯
我正在从串口读取数据.数据来自规模.我现在正在使用Readline()并在删除后删除数据DiscardInBuffer().从串口读取数据的正确方法是什么?网上的例子很少,我觉得这就像是一些没有人想到的圣杯.
有什么帮助吗?
好像串口是一个反复无常的孩子.
C#,WinCE 5.0,HP瘦客户端,Compact framework 2.0
private void WeighSample()
{
this._processingDone = false;
this._workerThread = new Thread(CaptureWeight);
this._workerThread.IsBackground = true;
this._workerThread.Start();
} //end of WeighSample()
private void CaptureWeight()
{
globalCounter++;
string value = "";
while (!this._processingDone)
{
try
{
value = this._sp.ReadLine();
if (value != "")
{
if (value == "ES")
{
_sp.DiscardInBuffer();
value = "";
}
else
{
this.Invoke(this.OnDataAcquiredEvent, new object[] { value });
}
}
}
catch (TimeoutException)
{
//catch it but do …Run Code Online (Sandbox Code Playgroud) 由于各种原因,我经常发现编写与.NET framework 2.0或3.5兼容或与.NET Compact Framework兼容的代码是可取的,但是新的.NET框架中有许多"小"特性是一个问题.在旧框架或Compact Framework中不可用.
例如,我发现扩展方法确实很有用,但编译器依赖System.Runtime.CompilerServices.ExtensionAttribute于此.您可以自己轻松定义此属性,然后在.NET Framework 2.0中使用扩展方法(在C#3.0+下).同样的,这是不是太硬手动定义小.NET 4种类型,如Tuple<T1,T2>和Lazy<T>.顺便说一句,如果你想在.NET 2.0中使用LINQ,你可以使用LinqBridge.
现在假设你ExtensionAttribute公开,以便你编写的其他程序集可以使用它.一开始就没问题,但是如果你想使用也有同样想法的第三方库呢?您添加对该库的引用,现在您有名称冲突.哎呀.
我还注意到一些新的库只适用于.NET 4.0或3.5,即使它们只有很小的依赖关系,可以使用兼容包或LinqBridge来解决.
如果旧的.NET版本的"兼容包"在一个小DLL中定义了这些小功能,你可以证明包括在任何规模的项目中,这肯定会很好.这样的事情存在吗?
更新:从沉默来判断,我想没有这样的事情.如果有兴趣,我可能会自己创建这样一个OSS库.所以我的新问题是,如果你在为.NET 2,.NET 3.5,.NETCF或Silverlight编写,你会想念.NET 4的哪些小功能(而不是像WCF/WPF这样的怪物)?我将开始列表......
ExtensionAttribute (不是在.NET 2中)Func<...>和Action<...>代表(不在.NET 2中)Tuple<...> (不是在.NET 3.5中)Lazy<T>和Lazy<T,TMetadata>(不是在.NET 3.5中)Reflection.Emit (缺少.NETCF;不是一个小功能,但我非常想念它)在移动设备上运行的应用程序具有特殊的用户界面要求 我认为Apple在iPhone/iPod touch平台上引入创新控件方面做得很好.
现在,我必须使用.NET Compact Framework(Visual Studio 2008)为Windows Mobile平台设计应用程序.我想知道是否有一些类似于iPhone/iPod touch UI元素的商业或开源UI控件集:
我找不到任何有用的产品/代码.也许有人在那里有更多经验可以提供帮助.
对于.net开发人员来说,进入移动开发的学习曲线是什么?
有多少不同的操作系统运行.net?
Windows mobile是否与windows ce相同?
我正在尝试创建以下结构:
[StructLayout(LayoutKind.Explicit, Size=14)]
public struct Message
{
[FieldOffset(0)]
public ushort X;
[FieldOffset(2)]
[MarshalAs(UnmanagedType.ByValArray, SizeConst=5)]
private ushort[] Y;
[FieldOffset(12)]
public ushort Z;
}
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
无法从程序集中加载"消息"类型,因为它包含偏移4处的对象字段,该字段未正确对齐或由非对象字段重叠.
有谁知道为什么这会导致错误?
注意:我不能使用Pack因为我正在使用紧凑的框架.谢谢.
我希望在Windows Mobile项目上有日志时间戳.精度必须至少在100毫秒的范围内.
但是我的调用DateTime.Now返回一个属性设置为零的DateTime对象Millisecond.该Ticks物业也相应地四舍五入.
如何获得更好的时间准确度?
请记住,我的代码在Compact Framework 3.5版上运行.我使用的是HTC touch Pro 2设备.
基于MusiGenesis的答案,我创建了以下类来解决这个问题:
/// <summary>
/// A more precisely implementation of some DateTime properties on mobile devices.
/// </summary>
/// <devdoc>Tested on a HTC Touch Pro2.</devdoc>
public static class DateTimePrecisely
{
/// <summary>
/// Remembers the start time when this model was created.
/// </summary>
private static DateTime _start = DateTime.Now;
/// <summary>
/// Remembers the system uptime ticks when …Run Code Online (Sandbox Code Playgroud) 我已经尝试使用Readline()并且数据被删除,我尝试使用Read()但我不知道如何使用它的错误验证方法,因为我可能会一个接一个地获得几个数据包而我无法知道将会有另一个数据包进入.在数据包BytesToRead之间是0,所以我不能使用它.当读取数据到缓冲区时你有一个定时器或让线程进入休眠状态以允许所有数据包到达?
我搞不清楚了.不知道下一步该尝试什么.
我应该提一下,我不能保证串口的字符串将以\n或\ r或\ r \n结束.当用户按下PRINT时,我只需要一种简单的方法来读取将来自秤的所有数据包.
有人在这里回答了我喜欢的想法 - 等待所有数据包的一定时间,但他们删除了他们的答案.你有可能重新发布它吗?
我正在尝试使用带有CF的WinForm上的应用程序使用SQLite保存和加载图像.我找到了一种方法将图像保存到数据库中,但我不知道它是否正确,因为我找不到加载存储在数据库中的图像的方法.
我有一个代码将我的图像转换为Base64:
public void ImageToBase64(Image image, System.Drawing.Imaging.ImageFormat format){
using (MemoryStream ms = new MemoryStream()){
// Convert Image to byte[]
image.Save(ms, format);
byte[] imageBytes = ms.ToArray();
// Convert byte[] to Base64 String
string base64String = Convert.ToBase64String(imageBytes);
SaveImage(base64String);
}
}
Run Code Online (Sandbox Code Playgroud)
这是我将图像保存到db中的代码:
void SaveImage(string pic){
string query = "insert into Table (Photo) values (@pic);";
string conString = @" Data Source = \Program Files\Users.s3db ";
SQLiteConnection con = new SQLiteConnection(conString);
SQLiteCommand cmd = new SQLiteCommand(query, con);
cmd.Parameters.Add("@pic",DbType.String);
con.Open();
try{
cmd.ExecuteNonQuery();
}
catch (Exception exc1){ …Run Code Online (Sandbox Code Playgroud)