VS2008 開發的Wince程序 部署運行時出現UnmarshalStructInfoForm 錯誤


            前年用vs2008開發wince 追溯程序的時候,因為人家設備提供商給了技術支持,而且程序一路使用都比較順利,除了無線條碼打印開發遇到點困難之外。再有就是一開是用wince上的sql server存儲數據,但是后來發現這是一個嚴重的錯誤,因為設備是分布在各個工廠,而且wince 這個系統冷啟動之后什么都恢復了,這里說一下我開始用的設備是mc3090,所以后來考慮使用webservice來做這個數據 訪問和存儲的,這樣可以實施分布式同步。

          可是最近,公司成品倉庫也要使用移動設備出庫,所以也買了一個同樣的設備,當我幫助銷售組在設備上開發布置的時候,我考慮都沒有考慮就把程序布置上去了,可是一運行不行錯了。運行到myreader.Actions.Enable的時候,出現了UnmarshalStructInfoForm錯誤,但是網上找好久的,都沒有有解決答案,而且很多開發者因為自己解決了這個問題,很簡單的就講解一下。

          不過我也找到了根本原因那就是:我現在MC3100是MC3090的升級版,系統是wince6.0的而之前是5.0的。說要下載emdk,EMDK其實是SMDK的一個升級版,這里我就很納悶,你說軟件至少要有一個向前兼容吧,也許跟android一樣2.3到4.0的時候也會來個質的飛躍,但是android是性能上的提升啊。

          好吧速度去找emdk的下載地址,果然網上有很多,去摩托羅拉的官網吧,真是病急亂投醫下載了一個EMDK for .NET v2.1,悲劇了,按照網上的步驟,怎么也沒有解決,有點氣餒啊。

          終於在msdn上找到答案了:http://social.msdn.microsoft.com/Forums/zh-CN/windowsembeddedcezhchs/thread/fce5059a-7f59-4ae2-b58f-f1edca29df47,人家說要裝emdk,我一開始以為要裝到wince上,但是想想不對,java c#開發sdk都是裝在我們電腦上的,而且如果裝在設備上,冷啟動不是要重裝嗎。

              下載emdk:https://docs.symbol.com/KanisaPlatform/Publishing/465/13209_f.html?userId=37

然后裝電腦上,趕快運行看看吧。。

          

 1 using System;
 2 using System.Linq;
 3 using System.Collections.Generic;
 4 using System.ComponentModel;
 5 using System.Data;
 6 using System.Drawing;
 7 using System.Text;
 8 using System.Windows.Forms;
 9 
10 namespace test1
11 {
12     public partial class Form1 : Form
13     {
14         Symbol.Barcode.Reader myReader;
15         Symbol.Barcode.ReaderData myReaderData;
16         public Form1()
17         {
18             myReader = new Symbol.Barcode.Reader();
19             myReaderData = new Symbol.Barcode.ReaderData(
20                 Symbol.Barcode.ReaderDataTypes.Text,
21                 Symbol.Barcode.ReaderDataLengths.DefaultText);
22             myReader.Actions.Enable();
23             myReader.Actions.Read(myReaderData);
24             InitializeComponent();
25         }
26     }
27 }

好期待啊,應該完成了吧,可是,錯誤還是出現了,好氣餒啊。
搜索繼續找答案,找到了,我們還是要在設備上安裝一個組件symbol.all.arm.cab,找到我們emdk的安裝目錄:

D:\Program Files\Motorola EMDK for .NET\v2.5\Windows CE\MassDeployment\CE.NET,下面有我們需要安裝的組件。

把這個組件拷貝到我們wince設備上,然后在設備上安裝,如果是安裝emdk for .net 2.1的時候會提示與系統不兼容,安裝完之后,我們還要把兩個程序集拷貝到我們項目下面(這個一般在wince \windows目錄下面),Symbol.ddl,Symbol.Barcode.ddl。然后再運行上面這段程序,終於成功了(現在想想這種打補丁的方式開發系統還是真討厭,不過目前我們軟件開發好多都是打補丁式的升級)。最近老忙了,幸好周末有時間,記錄下來,希望對大家有幫助。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM