添加打印处理器不起作用?
addprintprocessor doesn't work?
我尝试在我的计算机上安装我的打印处理器,但它不起作用??!!
代码如下:
_In_ LPTSTR pPathName;
_In_ LPTSTR pPrintProcessorName;
string strPathName = "HP1100PP.dll";
string strPrintProcessorName = "HP1100PP";
pPathName = (LPWSTR)strPathName.c_str();
pPrintProcessorName = (LPWSTR)strPrintProcessorName.c_str();
int a = AddPrintProcessor(NULL , NULL ,pPathName , pPrintProcessorName);
a的输出为0。
提前感谢您的回答。
您对宽字符字符串的转换,(LPWSTR)
,实际上并没有使字符串成为宽字符字符串。您的数据仍然是 ANSI,而强制转换只是欺骗编译器的一种手段。删除那些演员表。不要对编译器撒谎。
然后编译器将拒绝您的代码,因为您的文本是 ANSI 但函数需要 Unicode 文本。因为你编译目标是 Unicode。这是您不真实的演员表压制的错误。您需要通过更正类型不匹配来正确处理它。因此,要么切换到 wstring
,要么调用 AddPrintProcessorA
。我建议前者。
我还建议不要使用 TCHAR
和相关类型。当您以不支持 Unicode 的 Win98 为目标时,这很有用,但那些日子早已一去不复返了。
我尝试在我的计算机上安装我的打印处理器,但它不起作用??!!
代码如下:
_In_ LPTSTR pPathName;
_In_ LPTSTR pPrintProcessorName;
string strPathName = "HP1100PP.dll";
string strPrintProcessorName = "HP1100PP";
pPathName = (LPWSTR)strPathName.c_str();
pPrintProcessorName = (LPWSTR)strPrintProcessorName.c_str();
int a = AddPrintProcessor(NULL , NULL ,pPathName , pPrintProcessorName);
a的输出为0。
提前感谢您的回答。
您对宽字符字符串的转换,(LPWSTR)
,实际上并没有使字符串成为宽字符字符串。您的数据仍然是 ANSI,而强制转换只是欺骗编译器的一种手段。删除那些演员表。不要对编译器撒谎。
然后编译器将拒绝您的代码,因为您的文本是 ANSI 但函数需要 Unicode 文本。因为你编译目标是 Unicode。这是您不真实的演员表压制的错误。您需要通过更正类型不匹配来正确处理它。因此,要么切换到 wstring
,要么调用 AddPrintProcessorA
。我建议前者。
我还建议不要使用 TCHAR
和相关类型。当您以不支持 Unicode 的 Win98 为目标时,这很有用,但那些日子早已一去不复返了。