我是一名 Javascript 开发人员,所以请放轻松!我正在尝试只编写一个 C++ 补丁来启用在框架上的打印。我正在使用 Unicode 进行编译,根据我的研究,这让我很困惑。
我认为这是一个相对简单的事情,我过于复杂了。该应用程序有一个std::string
包含当前打印机名称的名称。该脚本首先检查它是否未设置(如果它使用GetDefaultPrinter
了哪个输出 a LPTSTR
)。最后,脚本采用 thanstd::string
或 theLPTSTR
并将其转换为LPCTSTR
for CreateDC
。
这是我的代码:
std::string PrinterName = window->getPrinter();
LPDWORD lPrinterNameLength;
LPWSTR szPrinterName;
LPCTSTR PrinterHandle;
if (PrinterName == "unset") {
GetDefaultPrinter( szPrinterName, &lPrinterNameLength );
PrinterHandle = szPrinterName; //Note sure the best way to convert here
} else {
PrinterHandle = PrinterName.c_str();
}
HDC hdc = CreateDC( L"WINSPOOL\0", PrinterHandle, NULL, NULL);
编译时,我只会收到转换错误。如
无法将参数 2 从 LPDWORD * 转换为 LPDWORD (GetDefaultPrinter)
和
无法从“const char *”转换为“LPCTSTR”(在 PrinterHandle = PrinterName.c_str() 行)
我对此进行了相当多的 SO 研究,但还没有提出具体的解决方案。
任何帮助是极大的赞赏!