2016-07-24 6 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

Если сбой API Windows вы можете вызвать GetLastError, чтобы получить дополнительную информацию. –

ответ

0

Ваши приведения к широким символьным строкам, (LPWSTR), на самом деле не делают строки длинными строками символов. Ваши данные по-прежнему остаются ANSI, а приведения - просто средством лгать компилятору. Удалите эти отливки. Не лгите компилятору.

Тогда компилятор отклонит ваш код, потому что ваш текст ANSI, но функция ожидает текст Unicode. Потому что вы собираете таргетинг на Unicode. Это ошибка, которую подавляют ваши неправдивые отбрасывания. Вам нужно иметь дело с этим, исправляя неправильное совпадение типа. Поэтому либо переключитесь на wstring или позвоните по телефону AddPrintProcessorA. Я предлагаю первое.

Я также предлагаю не использовать TCHAR и родственные типы. Это было полезно, когда вы нацеливали Win98, который не поддерживал Unicode, но эти дни давно прошли.

 Смежные вопросы

  • Нет связанных вопросов^_^