我需要自动检测设备分辨率,现在我有一个全局var&hardwire分辨率:
Public gDeviceRes As String = "640"
'Public gDeviceRes As String = "320"
Run Code Online (Sandbox Code Playgroud)
然后重新编译每个设备,有没有人有一个快速snippit的代码?
我的目标是使用可在Windows Mobile和"普通"桌面Windows上运行的UI构建应用程序.优先考虑的是它在Windows Mobile下"看起来很好",而对于桌面Windows,如果它失真则可以.在我投入几天尝试之前,我想听听是否可以开始.这个问题有几个部分:
.NET Compact Framework是"正常"(请编辑).NET Framework的子集吗?如果没有,MSDN在.NET Compact Framework中的类上是否有任何信息,但在"普通"(再次,请,编辑)框架中没有?
两个框架中共享类的行为是否相同?
是否可以为两个平台提供单个Visual Studio 2005解决方案/项目?如果是,请如何设置?
还有其他意见和建议吗?任何相关链接?
我想做以下事情:
[StructLayout(LayoutKind.Sequential, Pack = 1)]
public struct SomeStruct
{
public byte SomeByte;
public int SomeInt;
public short SomeShort;
public byte SomeByte2;
}
Run Code Online (Sandbox Code Playgroud)
是否有替代方案,因为紧凑框架不支持Pack?
更新:显式设置结构并为每个提供FieldOffset都不起作用,因为它不会影响结构的打包方式
Update2:如果您尝试以下操作,CF程序甚至不会运行,因为结构的打包方式如下:
[StructLayout(LayoutKind.Explicit, Size=8)]
public struct SomeStruct
{
[FieldOffset(0)]
public byte SomeByte;
[FieldOffset(1)]
public int SomeInt;
[FieldOffset(5)]
public short SomeShort;
[FieldOffset(7)]
public byte SomeByte2;
}
Run Code Online (Sandbox Code Playgroud)
我知道这似乎很难相信,但如果你尝试它,你会看到.将它添加到CF项目并尝试运行它,您将获得TypeLoadException.将偏移分别更改为0,4,8,10并且它将起作用(但是大小最终为12).
我希望也许某人有一个使用反射的解决方案可能单独编组每个字段类型的大小(涉及递归以处理结构或类型数组中的结构).
如何获取Font特定设备使用的默认系统字体的对象?我注意到不同的设备有不同的分辨率和DPI,但我的一些控件有明确定义的字体.我希望能够在运行时获取默认的系统字体(好像我从未更改Font控件上的属性).
我希望它像引用我现有的库一样简单,以便在WP7中使用它们.但是,当我实际使用它时,它抱怨因为.Net CF而无法加载它们.
我是否需要将它们重新编译为.NET CF或其他什么?
我认为WP7的最大优点是:利用现有的代码库......?如果我需要从中删除所有内容并维护多个版本,我如何利用现有的代码库?
我有机会将目前使用.net 1.1的传统应用程序套件升级到最新的.net框架.
它使用OpenNETCF 1.4与移动设备通信.
是否值得从opennetCF ver 1.4升级到ver 2.3?
在这样做的时候,我是否应该期待重大的障碍/问题
要么
如果有人已经完成了升级,它是否无痛且有益?
该应用程序使用OpenNETCF.Desktop.Communication中的Rapi
PDA应用程序在Dell X51和HP IPaQ系列上运行
有没有人知道如何在SQL Server CE数据库中存储图像?
该列应该是什么数据类型?(我猜二进制.)
我使用Linq-To-Datasets.有可能使用它将图像放入数据库并在以后再次将其拉出来吗?
谢谢你的建议.
我是这样做的:
MemoryStream stream = new MemoryStream();
myBitmapImage.Save(stream, ImageFormat.Png);
myInsertLinqToDataSetRow.IMAGE_COLUMN = stream.ToArray();
Run Code Online (Sandbox Code Playgroud)
要重新加载它我做了这个:
MemoryStream stream = new MemoryStream(myLinqToDataSetRow.IMAGE_COLUMN);
myBitmapImage.SignatureImage = new Bitmap(stream);
Run Code Online (Sandbox Code Playgroud)
我在MSDN上找到一个页面,表示Image列类型正在消失,你应该使用varbinary(MAX).SQL Server CE不支持Max,所以我做了varbinary(8000).
稍后注意:虽然SQL Server CE不支持varbinary(max).Varbinary(8000)对于许多图像来说都不够大.我确实最终使用了Image类型,即使它计划被弃用.一旦ms在移动平台上提供合理的交替,我将考虑切换.
c# compact-framework windows-mobile linq-to-dataset sql-server-ce
我有一个场景,我需要在.NET应用程序中运行Javascript解释器.这将在Windows Phone 7上运行,因此它需要符合Compact Framework标准,因为它可能不会预先打包为Windows Phone源提供帮助.
许可证也是一个问题.我们查看了使用MIT许可证下的Jint,但它使用的是Antlr,它是BSD许可证(据我所知,Jint因不重新分发Antlr版权和条件而处于违规状态).还有其他选择吗?
我很难在没有命名的情况下弄清楚互斥锁的优点.具体来说,我想让我的Windows Mobile 6.5应用程序单实例.
关于如何做到这一点,这个网站上有一些问题和答案 - 最好的问题和答案似乎使用了命名的互斥体.
不幸的是,紧凑框架中的互斥体的CTORS不需要字符串 - 只能创建一个互斥锁.
现在,如果没有关联的ID,互斥量有什么用呢?
我错过了什么吗?
如果我不能命名它们,如何使用互斥锁来保护多个应用程序中的资源?
我在Windows Mobile 6中工作,并希望在与Apache Web服务器通信时进行客户端身份验证.我在我的本地证书商店有证书,它应该是相当简单的:
X509Store myStore = new X509Store("MY", StoreLocation.CurrentUser);
myStore.Open(OpenFlags.ReadOnly);
X509Certificate2Collection certificates = myStore.Certificates;
X509Certificate2 clientcertificate;
foreach (X509Certificate 2certificate in certificates) {
clientcertificate = certificate; //omitted code to validate certificate
}
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(webPage);
req.AllowWriteStreamBuffering = true;
req.AllowAutoRedirect = false;
req.Method = "POST";
req.ContentType = "text/xml";
req.Accept = "text/xml";
req.ClientCertificates.Add(clientcertificate);
Stream stream = req.GetRequestStream();
stream.Write(buffer, 0, buffer.Length);
stream.Close();
Run Code Online (Sandbox Code Playgroud)
只要我删除"req.ClientCertificates.Add(clientcertificate)"行,此代码段就可以正常工作.
插入后,我会收到"无法为SSL/TLS建立安全通道".非常疯狂,当我在常规.Net Framework中使用这个确切的代码时,它会完美地传输证书.
有没有人知道Compact Framework中是否可行?如果我无法提供X509Certificate进行客户端身份验证,我应该采取哪些其他方法来确保身份验证正确(我应该可以访问CAPI或其他Microsoft加密模块)
谢谢.
c# ×7
.net ×4
javascript ×1
mutex ×1
opennetcf ×1
ssl ×1
struct ×1
structlayout ×1
system-font ×1
winapi ×1
x509 ×1