2013-03-02 42 views
2

我有一臺染料子打印機,我試圖發送圖像以編程方式打印。
我在Windows 7 64b上使用PrintDocument和C#4.0打印頁面。
打印失敗,和Windows給出了這樣的錯誤:使用PrintDocument時出錯

The print spooler failed to load a plug-in module 
C:\Windows\system32\spool\DRIVERS\x64\3\S6145UI.DLL, error code 0xc1 

打印機工作正常窗口的默認打印對話框。
使用普通激光打印機打印時,該代碼可以正常工作。
我完全難住了。

+0

只是出於好奇,以「謝謝」結尾帖子出了什麼問題? – 2013-03-02 01:25:27

+0

不要太個人化,這只是一個事情......它已被[前討論](http://meta.ux.stackexchange.com/questions/1182/including-thanks-in-your-questions )如果你願意閱讀它。 – 2013-03-02 01:39:51

回答

1

error code 0xc1

這就是ERROR_BAD_EXE_FORMAT。在64位版本的Windows上不是一個不常見的錯誤,而是一個打印機驅動程序的主要失敗鯨魚。當64位進程嘗試加載32位DLL時,會出現此錯誤。或者相反。

顯然,驅動程序在這裏是錯誤的,你應該尋找更新。一種可能的解決方法是強制程序以另一種模式運行,對於託管程序很容易。用鼠標右鍵單擊您的EXE項目,屬性,生成選項卡。更改Platform目標設置,在AnyCPU和x86之間翻轉。在VS2012上切換首選32位模式複選框。實際上並不確定這會起作用,假脫機程序是它自己的子系統。我認爲有一種方法可以強制假脫機程序以32位模式運行舊版打印機驅動程序,請通過superuser.com詢問它。