标签: compact-framework

Environment.NewLine等效于紧凑框架2.0

在.NET Compact Framework 2.0 SP2中将换行符插入字符串的最佳做法是什么?

c# compact-framework

3
推荐指数
1
解决办法
2403
查看次数

如何为.NET Compact Framework设置useUnsafeHeaderParsing

在我的Windows CE 6.0应用程序中,我正在与一个返回错误标头信息的专有Web服务器设备进行通信(更具体地说,它返回NO标头信息).

我相信缺少标头信息是我的HttpWebRequest方法无法正常工作的原因.

我记得.NET"常规"框架允许我们以编程方式配置System.Net.Configuration程序集以允许无效的标头(useUnsafeHeaderParsing).

不幸的是,对我来说,System.Net.Configuration程序集不包含在Compact Framework中.

CF中是否有类似的配置,允许我们以编程方式允许无效的标头?

compact-framework httpwebrequest windows-ce

3
推荐指数
1
解决办法
3144
查看次数

设计器无法加载引用“Microsoft.WindowsCE.Forms”

我有 2 种形式:B 继承了 A。

如果我在 B 上添加 InputPanel 控件,我没有问题。如果我在 A 和 B 上添加 InputPanel 控件,我没有问题。但是如果我只在 A 上添加 InputPanel 控件,我将无法打开表单 B 的设计器。

错误是:

无法加载文件或程序集“Microsoft.WindowsCE.Forms, Version=3.5.0.0, Culture=neutral, PublicKeyToken=969db8053d3322ac”或其依赖项之一。定位的程序集的清单定义与程序集引用不匹配。(来自 HRESULT 的异常:0x80131040)

我读了很多关于这个的东西,但没有找到解决这个问题的方法。似乎Microsoft.WindowsCE.Forms.dll只有当输入面板处于基本形式时,设计器才能加载 dll 。

我试过 :

  • 在GAC中添加dll。
  • 创建一个新表单(例如:C 继承 A)
  • 创建一个空项目

编译我的项目没有任何问题。

谢谢你的时间

编辑:重新启动修复它。我不知道是我做了什么然后重新启动..还是只是重新启动。现在我可以在设计器中打开任何表单。

vb.net compact-framework designer reference

3
推荐指数
1
解决办法
3960
查看次数

.NET Compact Framework 中的 RSA RSACryptoServiceProvider 使用完整 .NET Framework 中的公钥

在我的工作中,我们通过加密来保护数据,并且该数据由 .NET Compact Framework 加密,并且必须由服务器上的常规 .NET 框架读取。我们遇到了一个问题,即紧凑框架无法使用已知公钥的 RSA 进行加密(引发异常)。服务器将公钥传递给紧凑框架设备。下面是为紧凑框架编写的测试应用程序以显示问题。

string mod = 
    "rgTcL0/ZK3j5Rt6CigEsfyLDiERh2PuVzmZVdHbb/2jQOG5JEcAqqBoscDZ4PwJR8aO19xNVTce7"
  + "vzbEued32z2PLAvCcHFKGtOgNEeZ+ZcD6uHobsKws76BdjBrI7Pigk2HSkak21n2WoVcBVHoRmcn"
  + "eX7DPaB4atamhkbLoRBF1VlautDfhX9lnOFA2zyZUCB5CproavKF6wl19pZne2Q4U1vMtBAA2Q9N"
  + "aZFsrj/KjE3UtYKvjd4Oy55Hmtpb5P3CZAVpiyCTKq3gTxDJn69giyctu428DgkKacmZ4yTvkLWB"
  + "Ym/zWtAf9o8pI+3MwgF7wzuK5ypGack3l4/Skw==";

string exp = "AQAB";

RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(2048);

RSAParameters p = new RSAParameters();
p.Modulus = Convert.FromBase64String(mod);
p.Exponent = Convert.FromBase64String(exp);

rsa.ImportParameters(p);

var bytes = rsa.Encrypt(System.Text.Encoding.ASCII.GetBytes("MIKE"), true);
Run Code Online (Sandbox Code Playgroud)

当调用“Encrypt”方法时,此代码会产生以下异常:

Framework: 3.5.7283.0
Exception: fOAEP 
InnerException: Could not evaluate expression

Stack Trace:
   at System.Security.Cryptography.RSACryptoServiceProvider.Encrypt
    (Byte[] rgb, Boolean fOAEP)
Run Code Online (Sandbox Code Playgroud)

有谁知道我还应该尝试/做些什么?我已经用常规 .NET 编写了这段代码,并且运行得很好。我可以使用不同的实例进行加密和解密。任何帮助,将不胜感激。

谢谢!

c# encryption compact-framework handheld

3
推荐指数
1
解决办法
2849
查看次数

在 Windows Mobile / Windows CE 6.0 上逐渐增加系统音量

我正在尝试使用 coredll.dll 中的 waveOutSetVolume 逐渐将音频音量从静音(或接近静音)增加到最大。

我发现的大多数代码示例都显示了一些预定义的关闭、低、正常、中、高和非常高的设置点,如下所示:

Public Enum Volumes As Integer
    OFF = 0
    LOW = 858993459
    NORMAL = 1717986918
    MEDIUM = -1717986919
    HIGH = -858993460
    VERY_HIGH = -1
End Enum
Run Code Online (Sandbox Code Playgroud)

在我的尝试中,我尝试使用 1200 作为我的增量从 0 逐步提高音量。这只会增加右声道的音量。在 66000 左右的某个地方,所有音频都恢复静音并再次开始增加,但仅在正确的通道上。

正如我所希望或预期的那样,上面列出的常量确实会影响两个通道。但是我不清楚如何逐渐从 0 过渡到 858993459,然后再逐渐从 858993459 过渡到 1717986918,等等。

我怀疑从根本上我不明白这是如何工作的。

我在 Visual Studio 2008 中使用 VB.Net 和 .Net Compact Framework 3.5。如果你有 C# 的解决方案,我没问题。

编辑:
根据我现在阅读的内容,上面列出的枚举值基于十六进制,其中 00000000 是可能的最低音量,FFFFFFFF 是可能的最高音量。这仍然对我没有多大帮助,因为我不确定如何在 VB.Net 中逐渐增加十六进制并同时将其转换为整数。我也不清楚仅在此处增加 Hex 是否会导致所有/两个通道的音量同时增加,或者我是否仍然存在立体声问题。

我正在使用这个类:

Public Class VolumeControl
    <DllImport("coredll.dll", SetLastError:=True)> _
    Friend Shared Function waveOutSetVolume(ByVal device …
Run Code Online (Sandbox Code Playgroud)

c# vb.net compact-framework windows-ce

3
推荐指数
1
解决办法
1726
查看次数

我有什么理由在使用.NET Compact Framework时调用Dispose()

我最近接管了使用.NET紧凑框架为移动设备编写的代码库的责任,我看到代码Dispose()遍布整个地方.

这似乎是在

  • ADO.NET db命令
  • Windows窗体

我以为垃圾收集器会处理内存管理.我知道他们可能会在没有内存的情况下暂停一下Dispose(),但这些电话有多大优势或好处?它似乎污染了代码的整洁.

.net dispose compact-framework

3
推荐指数
1
解决办法
538
查看次数

将项目从紧凑框架 .NET 转换为完整框架 .Net

所以我有一个包含 120 个项目的大型 c# 解决方案。该解决方案不包含用户界面,并且经过编译以支持紧凑框架和完整框架。该解决方案采用 Visual Studio 2005 格式。

我想删除对 Windows CE 的支持并将其全部转换为面向完整框架并在 Visual Studio 2010 中打开它。

我想要做的是从整个解决方案中删除对紧凑框架的支持。

我应该如何进行?是否可以将项目转换为完整的框架?

谢谢你。

.net c# compact-framework visual-studio-2010 visual-studio

3
推荐指数
1
解决办法
1912
查看次数

.NET Compact Framework PowerToys

我正在尝试对我们的旧版 .NET Compact Framework 3.5 应用程序(在 Windows CE/Windows 移动设备上运行的仓库应用程序)进行一些开发。

在 Visual Studio 2008 中打开项目时,出现此错误:

未找到导入的项目“C:\Windows\Microsoft.NET\Framework\v3.5\Microsoft.CompactFramework.CSharp.targets”。确认声明中的路径正确,并且该文件存在于磁盘上。

我认为这是由于缺少“Power Toys for .NET Compact Framework 3.5”造成的,这可能是最近升级到 Windows 2004 时删除的。

此软件包可在以下 URL 获得:https : //www.microsoft.com/en-us/download/details.aspx?id=13442

不过微软好像已经删除了,网上也找不到镜像。

有没有人有这个包的副本,可以下载?

.net compact-framework

3
推荐指数
1
解决办法
2842
查看次数

StreamReader返回另一个char

我正在尝试使用StreamReader读取文件的内容,StreamReader接收FileStream.该文件中有一些空格(char 32),StreamReader将它们读为0(char 48).屏幕截图显示了FileStream缓冲区和StreamReader缓冲区.两者都有值32,但是当我调用Read()时,它返回48.我错过了什么吗?顺便说一句,代码在.NET Compact Framework下运行.

alt text http://www.freeimagehosting.net/uploads/9f72b61bbe.png

读取数据的代码:

public void Read() {
 using (StreamReader reader = new StreamReader(InputStream, Encoding.UTF8)) {
  foreach (var property in DataObject.EnumerateProperties()) {
   OffsetInfo offset = property.GetTextOffset();
   reader.BaseStream.Position = offset.Start - 1;
   StringBuilder builder = new StringBuilder(offset.Size);
   int count = 0;
   while (reader.Peek() >= 0 && count < offset.Size) {
    char c = (char)reader.Read();
    if ((int)c != 32 && c != '\r' && c != '\n')  {
     builder.Append(c);
     count++;
    } else {
     reader.BaseStream.Position++;
    }
   }
   property.SetValue(DataObject, …
Run Code Online (Sandbox Code Playgroud)

.net c# compact-framework stream streamreader

2
推荐指数
1
解决办法
1059
查看次数

怎么做:我在文本框上按"G",我会看到'A'?

这该怎么做:

当我按下'G'我的表格中的文本框时,我会看到'A'

在C#代码中(windows-CE或Windows-mobile)

提前致谢

c# compact-framework windows-mobile windows-ce

2
推荐指数
1
解决办法
195
查看次数