标签: compact-framework

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万
查看次数

DI:处理IDisposable对象的生命

所以我正在研究我的DI/IoC容器OpenNETCF.IoC,我有一个(合理的)功能请求,为容器集合中的IDisposable项添加某种形式的生命周期管理.

我当前的想法是,因为我不能查询一个对象以查看它是否已被处理,并且我无法获得一个事件,因为它被处理掉了,我必须为开发人员想要的对象创建某种形式的包装器要管理的框架.

现在可以使用AddNew添加对象(为简单起见,我们假设只有一个重载,并且没有Add):

public TTypeToBuild AddNew<TTypeToBuild>() { ... }
Run Code Online (Sandbox Code Playgroud)

我正在考虑的是添加一种新方法(很好的一组,但你得到的图片):

public DisposableWrappedObject<IDisposable> AddNewDisposable<TTypeToBuild>()
    where TTypeToBuild : class, IDisposable
{
    ...
}
Run Code Online (Sandbox Code Playgroud)

DisposableWrappedObject的位置如下所示:

public class DisposableWrappedObject<T>
    where T : class, IDisposable
{
    public bool Disposed { get; private set; }
    public T Instance { get; private set; }

    internal event EventHandler<GenericEventArgs<IDisposable>> Disposing;

    internal DisposableWrappedObject(T disposableObject)
    {
        if (disposableObject == null) throw new ArgumentNullException();

        Instance = disposableObject;
    }

    ~DisposableWrappedObject()
    {
        Dispose(false);
    }

    public void Dispose()
    {
        Dispose(true);
    }

    protected virtual …
Run Code Online (Sandbox Code Playgroud)

c# dependency-injection compact-framework ioc-container opennetcf.ioc

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

在Compact Framework中删除只读

在Compact Framework中删除文件的readonly属性的首选方法是什么,因为我们没有File :: SetAttributes?

c# compact-framework

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

如何从Windows Mobile应用程序实现向导?

我对Windows Mobile(使用C#和紧凑框架)开发有点新,所以我有点不确定如何做到这一点.用户必须以类似向导的方式浏览多页信息.一开始就有一个登录窗口.

我将如何实现这一目标?我是否会为每个页面设置不同的用户控件并根据请求创建/显示和销毁/隐藏它们?或者我是否需要创建不同的表单并以某种方式显示这些?

编辑(来自与OP不同的用户)

由于我还没有找到一个很好的解决方案,一些答案的链接在Windows Mobile 6.5中无法使用我开始赏金

这看起来很有前景,但可以为移动6.5而构建

http://weblogs.asp.net/justin_rogers/articles/117859.aspx

http://www.codeproject.com/KB/dialog/WizardForm.aspx

http://www.codeproject.com/KB/miscctrl/DesignTimeWizard.aspx

http://winformswizard.codeplex.com/

http://www.differentpla.net/content/2005/02/implementing-wizard-c(与上述相同,但早期的工作)

.net c# compact-framework wizard windows-mobile

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

是否有任何程序混淆C#源代码?

我们的要求是能够将我们的DLL与ClickOnce集成.Dotfuscator很好地完成了混淆工作,但是无法在客户端使用ClickOnce部署混淆的DLL.在我们这边,我们可以完美地处理它.此外,混淆的程序集有时会崩溃我们的.NET CF应用程序.事实证明,这是一个创建临时源并在使用VS编译之前对其进行模糊处理的解决方案.这可确保已编译的程序集可与ClickOnce集成,并与.NET CF完全兼容.混淆C#SOURCE CODE(不是程序集)的最佳工具是什么?

.net c# compiler-construction obfuscation compact-framework

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

在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
查看次数

网络连接仅在通过电缆连接设备时有效

好吧,我尝试过最后几个小时而且我放弃了:我为移动设备开发(在Unitech HT660上赢得CE)并且发生了一件奇怪的事情:我尝试在我的PC上与服务进行通信而我正在使用TCPClient为了它.

除了一个大问题之外,这很好用:一旦我拔掉USB-Cable,我就用来在程序启动时从VS复制文件TCPClient抛出一个SocketException,因为目标机器主动拒绝它,所以不能建立套接字连接(不是这样,防火墙已关闭,未安装第三方且服务正在侦听)

并且它变得更奇怪:如果电缆插入并且我在程序连接后将其移除,一切工作都很好,我可以在没有电缆的情况下发送和接收数据,我可以在没有电缆的情况下连接.

顺便说一句:与MySQL .NET Connector的MySQLConnection相同.它适用于电缆,但如果在没有建立连接的情况下将其移除,则无法建立连接.

对此有什么想法吗?

提前致谢!

PS:有一件事我忘了提到:我使用无线连接到我的网络,IE以及使用服务和mysql数据库ping计算机就可以了.

c# mysql tcp compact-framework windows-ce

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

使用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万
查看次数