CF2.0を介してWindowsMobile6.5(プリンター付き)を搭載したデバイスで画像を印刷する必要があり、c ++ヘッダーファイルがあり、アンマネージコードを呼び出すクラスもラップしています:問題:これを読んでも画像を印刷する方法がわかりませんドキュメントドキュメント内
- PRNAPI UINT WINAPI PrinterLoadImageFile(LPCTSTR pszFile); 説明:画像ファイルを読み取ります。戻り値:PRINTER_OK:成功PRINTER_ERROR:エラー引数:LPCTSTR pszFile:[in]ファイルを読み取ります
- PRNAPI UINT WINAPI PrinterImage(int nMode); 説明:画像を印刷します。戻り値:PRINTER_OK:成功PRINTER_ERROR:エラー引数:int nMode:[in]画像の印刷モードを設定します。PRINTER_IMAGE_NORMAL:200 * 200 dpiデフォルトPRINTER_IMAGE_DOUBLEWIDTH:100 * 200 dpi PRINTER_IMAGE_DOUBLEHEIGHT:200 * 100 dpi PRINTER_IMAGE_QUADRUPLE:100 * 100 dpi
- PRNAPI UINT WINAPI PrinterCloseImageFile(); 説明:読み取り画像を削除します。戻り値:PRINTER_OK:成功PRINTER_ERROR:エラー
- PRNAPI LPCTSTR WINAPI PrinterGetImageName(); 説明:読み取られた画像の名前を取得します。戻り値:LPCTSTR:[out]ファイルの名前
そして私はこのラッパー.netコードが付属していました
[DllImport(@"PRN_DLL.dll")]
public static extern uint PrinterCloseImageFile();
[DllImport(@"PRN_DLL.dll")]
public static extern uint PrinterLoadImageFile(string pszFile);
[DllImport(@"PRN_DLL.dll")]
public static extern uint PrinterImage(int nMode);
[DllImport(@"PRN_DLL.dll")]
public static extern char[] PrinterGetImageName();
hファイルの一部:
//Close Image File
_DLL_EXPORT_ UINT WINAPI PrinterCloseImageFile();
//Load Image File
_DLL_EXPORT_ UINT WINAPI PrinterLoadImageFile(TCHAR* pszFile);
_DLL_EXPORT_ void WINAPI PrinterSetImageLeft(UINT nImageLeft);//ÇöÀç ´Ü»öºñÆ®¸Ê¸¸ Áö¿ø °¡´ÉÇÔ(2008³â11¿ù)
//Print Image
_DLL_EXPORT_ UINT WINAPI PrinterImage(int nMode);
//Get Image Name
_DLL_EXPORT_ TCHAR* PrinterGetImageName();
このコードを呼び出すと
String path = PathInfo.GetStartupPath() + "\\logo.png";//Path to image
NativPrinter.PrinterGetImageName();
MessageBox.Show(NativPrinter.PrinterLoadImageFile(path).ToString());
NativPrinter.PrinterImage(NativPrinter.PRINTER_IMAGE_NORMAL);
NativPrinter.PrinterCloseImageFile();
PrinterLoadImageFileでエラーが発生します(印刷エラーを意味するエラーコード1000)。ですから、私の間違いがどこにあるのか、誰にでも手がかりを与えることができます。私の英語でごめんなさい。