2016-07-11 11 views
0

Windows 10マシンでアプリケーションを実行しているときに、winspool.drvのSetPrinterメソッドでこのエラーが発生します。この問題は、4.6.1 .netフレームワークにアップグレードした後に検出されました。Windows 10エラー - 保護されたメモリを読み書きしようとしました。これは、多くの場合、他のメモリが壊れていることを示します。

Public Declare Function SetPrinter Lib "winspool.drv" Alias "SetPrinterA" _ 
    (ByVal hPrinter As IntPtr, _ 
    ByVal Level As Integer, _ 
    ByVal pPrinter As IntPtr, _ 
    ByVal Command As Integer) _ 
    As Long 

これはWindows 7マシンで正常に動作します。サポート

ため

+1

その宣言だけでは、そのエラーは発生しません。実際に関数を呼び出す場所にコードを含めるには[編集]してください。 –

+0

宣言が間違っています。戻り値の型はBooleanです。間違った使い方がたくさんありますが、使用されているとは見えません。 Win10と互換性のないオーナリープリンタドライバには特に制限はありません。 –

+0

すべてのinterop-codeを完全に削除し、これらの関数をネイティブに呼び出す独自のC++/CLRライブラリを作成することを検討する必要があります。UnicodeとANSI *(functionA <--> functionW)*との間の自動変換があり、 VB.NET内のC++/CLR-libsを使用すると、魅力的に機能し、VBアプリケーションと一緒に自動的にコンパイルすることもできます - 実際のやり方は不安定で、OSバージョンに依存しますそうでなければMSDNのdocのいくつかの部分はそう言います....すべてのマイクロソフトの従業員がこれらのことの専門家ではない... – specializt

答えて

0

おかげで私は、x86のように、ターゲットCPUを変更することで解決し、この問題を得ました。

関連する問題