标签: compact-framework

Compact Framework的Zip库选项?

我的要求:

  • 支持.NET Compact Framework 2.0和Windows Mobile 6.0设备.
  • 只需将内容解压缩到存储卡上的目录即可.不需要创建zip文件.
  • 必须能够在公司/商业软件中使用.
  • 可以是开源的,但没有GPL或其他病毒许可证.

我见过用于CF库的Xceed Zip.还有哪些其他选择?

zip components compact-framework windows-mobile

9
推荐指数
2
解决办法
6894
查看次数

如何提高垃圾收集性能?

可以使用哪种优化模式来提高垃圾收集器的性能?

我的理由是我使用Compact Framework做了很多嵌入式软件.在慢速设备上垃圾收集可能会成为一个问题,我想减少垃圾收集器启动的次数,当它发生时,我希望它能更快地完成.我还可以看到使用垃圾收集器而不是垃圾收集器可以帮助改进任何.NET或Java应用程序,尤其是重型Web应用程序.

以下是我的一些想法,但我没有做任何基准测试.

  • 重用临时类/数组(保持分配计数)
  • 将活动对象的数量保持在最低(更快的收集)
  • 尝试使用结构而不是类

.net embedded optimization garbage-collection compact-framework

9
推荐指数
1
解决办法
2762
查看次数

.NET Compact Framework的内存分析器

是否有一个工具可用于分析(内存).NET Compact framework 3.5应用程序(Windows Mobile)?

谢谢!

.net memory profiler profiling compact-framework

9
推荐指数
2
解决办法
5029
查看次数

HttpRequest/HttpResponse内存泄漏?CF.NET 3.5 WIN CE 6.0

RPM堆比较

我已经尽一切可能摆脱我认为在Win CE 6.0设备上运行的CF.NET 3.5中的HttpRequest或HttpResponse类的内存泄漏.我正在使用它们与IP摄像头进行通信.

以下是我正在使用的当前代码.代码在线程上的自定义控件中运行,其优先级设置为低于正常值,backgroundworker设置为true.在我的一个表单上有两个这样的控件对象.

我说当前是因为我尝试了异步请求和下面代码的其他排列而没有减少内存消耗:

    protected void CamRefreshThread()
    {
        while (true)
        {
            if (false != CamEnabled)
            {
                HttpWebRequest  HttpReq = null;

                try
                {
                    lock (LockObject)
                    {
                        // create request
                        HttpReq = (HttpWebRequest)WebRequest.Create("http://" + this.Ipv4Address + "/axis-cgi/jpg/image.cgi");
                        HttpReq.Timeout = 5000;
                        HttpReq.ReadWriteTimeout = 5000;
                        HttpReq.Credentials = new NetworkCredential(this.CamUserName, this.CamPassword);
                    }

                    /* indicate waiting for reponse */
                    ResponseRxed = false;
                    // get response
                    using (HttpWebResponse HttpResp = (HttpWebResponse)HttpReq.GetResponse())
                    {
                        // get response streamImageFromStream
                        using (Stream ImgStream = HttpResp.GetResponseStream())
                        {
                            // get bitmap …
Run Code Online (Sandbox Code Playgroud)

c# compact-framework httpresponse httprequest windows-ce

9
推荐指数
1
解决办法
2612
查看次数

版本信息在Visual Studio 2008中无法使用 - Compact framework/Win Mobile 6

我很难在程序集/ exe中获取版本信息.关于这一点似乎有很多问题,但没有一个能帮助我解决这个问题.

在我的exe中包含版本信息似乎是基本和简单的,但是当我从资源管理器查看上下文菜单时它没有显示(右键单击 - >属性 - >详细信息)

如何在我的C#compact framework/WinMobile 6.0项目中添加版本信息(不使用插件)?

这是默认的assemblyinfo.cs

using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;

// General Information about an assembly is controlled through the following 
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("TestingVerInfo")]
[assembly: AssemblyDescription("hello")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("world")]
[assembly: AssemblyProduct("TestingVerInfo")]
[assembly: AssemblyCopyright("Copyright ©  2011")]
[assembly: AssemblyTrademark("gggg")]
[assembly: AssemblyCulture("")]

// Setting ComVisible to false makes the types in this assembly not visible 
// to COM components. …
Run Code Online (Sandbox Code Playgroud)

compact-framework visual-studio-2008 windows-mobile-6

9
推荐指数
1
解决办法
1506
查看次数

Windows Mobile:使用C#的手机摄像头

我想在WinForm中显示手机摄像头拍摄控件的图像.我的想法是我的应用程序像摄像机程序一样工作.我想要显示图像,如果用户要拍照.

我怎样才能做到这一点?我能这样做吗?

如果您需要更多细节,请问我.

谢谢!

c# camera compact-framework windows-mobile

8
推荐指数
1
解决办法
1万
查看次数

XML与序列化/反序列化的二进制性能

我正在开发一个紧凑的框架应用程序,需要提高性能.该应用程序当前通过将对象序列化为XML并将其存储在数据库中而脱机工作.使用分析工具,我可以看到这是一个相当大的开销,减慢了应用程序.我想如果我切换到二进制序列化,性能会增加,但因为在紧凑的框架中不支持,我看了protobuf-net.序列化似乎更快,但反序列化要慢得多,并且应用程序比串行化更多地反序列化.

二进制序列化应该更快,如果是这样,我可以做些什么来加快性能?这是我如何使用XML和二进制文件的片段:

XML序列化:

public string Serialize(T obj)
{
  UTF8Encoding encoding = new UTF8Encoding();
  XmlSerializer serializer = new XmlSerializer(typeof(T));
  MemoryStream stream = new MemoryStream();
  XmlTextWriter writer = new XmlTextWriter(stream, Encoding.UTF8);
  serializer.Serialize(stream, obj);
  stream = (MemoryStream)writer.BaseStream;
  return encoding.GetString(stream.ToArray(), 0, Convert.ToInt32(stream.Length));
}
public T Deserialize(string xml)
{
  UTF8Encoding encoding = new UTF8Encoding();
  XmlSerializer serializer = new XmlSerializer(typeof(T));
  MemoryStream stream = new MemoryStream(encoding.GetBytes(xml));            
  return (T)serializer.Deserialize(stream);
}
Run Code Online (Sandbox Code Playgroud)

Protobuf-net二进制序列化:

public byte[] Serialize(T obj)
{
  byte[] raw;
  using (MemoryStream memoryStream = new MemoryStream())
  {
    Serializer.Serialize(memoryStream, obj);
    raw …
Run Code Online (Sandbox Code Playgroud)

.net c# serialization compact-framework protobuf-net

8
推荐指数
2
解决办法
2万
查看次数

在Windows Mobile中将C#字符串传递给非托管C DLL

我有一个非托管的c ++ DLL,我需要从Windows Mobile C#应用程序调用.

我有C#包装器,它在桌面上很好用.我可以从C#桌面程序调用DLL函数并传递字符串没有问题.

但是,当我编译lib和移动平台的包装器时,我在DllImport行中收到错误,指出CharSet.ANSI无法识别.我允许写的唯一选项是CharSet.Auto和CharSet.Unicode.

问题在于,无论此设置如何,在c ++函数中接收的字符串都是宽字符串,而不是它们所期望的普通char*字符串.

我们可以使用wcstombs()来翻译每个c ++函数开头的所有字符串,但我宁愿不修改lib到这样的程度......

有没有办法修复与.NET Compact Framework一起使用的C#和C之间的编组?

c# c++ interop compact-framework windows-mobile

8
推荐指数
1
解决办法
3313
查看次数

在Compact Framework中的DataGrid中选择整行而不是单元格

如何在用户单击DataGrid中的单元格时,选择整个行而不是仅选择单元格.

select datagrid compact-framework row cell

8
推荐指数
1
解决办法
4597
查看次数

使用Compact Framework在数据网格中设置列宽

我正在尝试设置数据网格中列的宽度.我使用Compact Framework 2.0和C#

我试过这个,但它给了我一个"out of bonds"错误信息:

foreach (DataGridColumnStyle vColumnStyle in dataGrid1.TableStyles[0].GridColumnStyles)
{
    vColumnStyle.Width = 100;
}
Run Code Online (Sandbox Code Playgroud)

以下是使用数据表填充数据网格的代码(仅在我尝试设置列宽时失败):

void FillData()
{
    // 1
    // Open connection
    string conString = "Data Source=\\Program Files\\smartdeviceproject2\\repartocrack.sdf";
    using (SqlCeConnection c = new SqlCeConnection(conString))
    {
        c.Open();
        // 2
        // Create new DataAdapter
        using (SqlCeDataAdapter a = new SqlCeDataAdapter(
        "SELECT codbultocomp, nombre, estado FROM envios INNER JOIN tiendas ON envios.codigodestino = tiendas.codigodestino", c))
        {
            // 3
            // Use DataAdapter to fill DataTable
            DataTable t = new DataTable();
            a.Fill(t); …
Run Code Online (Sandbox Code Playgroud)

c# datatable datagrid compact-framework visual-studio-2008

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