私のアプリケーションでは、複数のドキュメントを開いて、印刷ダイアログウィンドウでプロンプトが表示されたときに "Microsoft print to pdf"オプションを使用してすべてのドキュメントをPDFに印刷できます。コピー先のフォルダを選択します。さて、印刷のために選択された30のドキュメントがある場合、実行するたびに、不一致の量が目的のフォルダのpdfに正常に印刷されます。時にはすべてが成功し、それ以外の時はありません。私は、このようなpdfプロセスを含むコードファイルと同じディレクトリに作成されている、この "敥敥敥敥敥敥敥敥like"のようなUnicode文字名のファイルを見つけました。私はこれらのファイルを ".pdf"拡張子で名前を変更することができ、彼らはpdfドキュメントを操作しています。ここでGDI Print API StartDoc関数の結果が矛盾しています
は、関係するコードの一部です:
DOCINFO docInfo;
memset(&docInfo, 0, sizeof(docInfo));
docInfo.cbSize = sizeof(docInfo);
docInfo.lpszDocName = csPlanoName;
docInfo.lpszOutput = csOutputDir + csPlanoName + csExtension;
if(dc.StartDoc(&docInfo) > 0) {
//printing process continues
}
私は敥敥敥敥敥敥敥」コードのステップにより、StartDoc関数呼び出しが同じUnicode文字にdocInfo.lpszOutputを変更するだろうことがわかりました敥 "。これは常に起こるとは限らず、テスト時には特定のファイルでは発生しません。 1つのドキュメントがpdfに正常に印刷されることをテストし、同じドキュメントで別のテストが実行され、 "敥敥敥敥敥敥敥敥name"という名前のファイルが作成されます。
これについてのお手伝いがあれば幸いです。
よろしく、 クリス
https://msdn.microsoft.com/en-us/library/awkwbzyc.aspx#_core_using_cstring_as_a_c.2d.style_null.2d.terminated_string –
おかげで、私が働いて、それを持って前にこれを見ていました。 – Hawkzee