問題タブ [print-spooler-api]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - GETJob() Win32 Print spooler api 64bit パラメータが正しくありません。修正方法は?
getJob()を 64 ビットの printerspooler API から動作させようとしています。
私は次の定義を使用します(他の人がSOで使用しているように)
しかし、これはデバッグ中でなく、64ビットではない場合にのみ機能します。
64ビットでは、Windowsエラーが発生します:パラメーターが正しくありません。
これを修正するにはどうすればよいですか?
Int32 を IntPtr (64 ビットで 4=>8 バイト) に変更し、逆の IntPtr => Int32 に変更してみました。無駄に..
ドキュメントはこちら: https://docs.microsoft.com/en-us/windows/desktop/printdocs/getjob :
また、ref を out に変更し、ref/out を lpJob パラメータに入れてみましたが、これでもうまくいかないようです。
次に何を試すことができますか?
編集
うまくいくように見えるのは次のとおりです。
次のように使用します。
編集2
動作しないようですが、動作するように見えることもありますが、単体テストでは csproj ファイルの変更に気付かなかったので、最終的に 32 ビットに対してテストを続けていました。
csproj に次の行を追加すると機能します (32 ビットで実行し、64 ビットにすると失敗します)。