最近公司這邊需要生產一批設備,殼體需要根據每個設備的唯一標識號+相關信息,動態生成二維碼並利用激光打標機進行打印。他們給的控制軟件呢,雖然功能比較強大,但是對於我們動態生成二維碼信息的場景操作起來就比較操蛋了,需要人工修改二維碼字符串信息,即便再工人非常謹慎的操作下,也很容易出錯。後來我們通過程序自動控制二維碼內容的生產,然後再進行打標,這樣以來不但節約人工成本加快生產速度,也能防止人工操作出現的二維碼內容錯誤的現象。
說起來比較坑,之前買的激光打標機說板子不支持二次開發,需要加5000塊錢換成支持二次開發的板子纔行。
不知道是不是他們家的產品只支持在Windows XP系統運行,所以我們在設計程序的時候要選擇.NET Framework 4.0及其以下版本,因爲XP是不支持.NET Framework 4.0以上版本。
接下來我們就按照廠家給的MarkEzd.dll說明文檔開始實現。
MarkEzd.dll是非託管dll,所以我們在導入dll 的時候使用DllImport方式導入dll
剩下的就按照廠家給的文檔開始實現吧,下面我說幾個開發中遇到的幾個問題以及處理方法:
(1)試圖加載格式不正確的程序
處理方式:
目標平臺改成X86即可。
(2)調用dll時候返回MarkEzd.dll定義的通用錯誤碼
處理方式:
我這邊是將自己寫的程序直接放在他們原來程序的根目錄下,問題就全部解決了。
(3)無法找到加密狗!軟件將工作在演示模式
處理方式:
說實話這個是最讓人心煩的操作,這樣就預示着我們本地無法調試,只能將程序打包放在打標機的電腦上才能測試。
(4).ezd格式文件
由於激光打標機只支持加載.ezd格式文件,所以我們的程序需要依賴於他們的軟件,通過他們的軟件創建一個我們需要用到的模板,然後再修改模板內容進行我們的打印操作。
開發過程中有遇到問題的同學可以與私信我一起交流!