2016-07-24 26 views
0

我嘗試在我的電腦中安裝我的printprocesssor,但它不起作用??!addprintprocessor不起作用?

的代碼在下面:

_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); 

的輸出是預先對任何回答0

感謝。

+0

如果Windows API失敗,可以調用GetLastError獲取更多信息。 –

回答

0

您將其轉換爲寬字符串(LPWSTR),實際上並不會使字符串變爲寬字符串。你的數據仍然是ANSI,而這些數據只是向編譯器撒謊的一種手段。刪除這些演員。不要對編譯器撒謊。

然後,編譯器會拒絕您的代碼,因爲您的文本是ANSI,但該函數需要Unicode文本。因爲你編譯的目標是Unicode。這是你不真實的演員壓制的錯誤。您需要通過糾正類型錯誤來正確處理它。所以要麼切換到wstring或撥打AddPrintProcessorA。我建議前者。

我也建議不要使用TCHAR及相關類型。當你針對不支持Unicode的Win98的時候這很有用,但那些日子早已不復存在。