私は Javascript 開発者なので、気楽にやってください! フレームワークでの印刷を可能にする C++ のパッチだけを作成しようとしています。私は Unicode でコンパイルしていますが、私の調査によると、それが私を台無しにしています。
これは、私が複雑にしすぎている比較的単純なことだと思います。アプリケーションにはstd::string
、現在のプリンター名を含む があります。スクリプトは最初にそれが設定されていないかどうかをチェックします(設定されている場合は、GetDefaultPrinter
どの出力を利用しますかLPTSTR
)。最後に、スクリプトは thanstd::string
または のいずれかを受け取り、 for にLPTSTR
変換します。LPCTSTR
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 調査を行いましたが、具体的な解決策は思いつきませんでした。
どんな助けでも大歓迎です!