2016-07-11 2 views
0

Windows 응용 프로그램을 실행하는 동안 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

선언이 잘못되었습니다. 반환 유형은 부울입니다. 잘못 사용하는 많은 다른 방법들, 우리는 그것이 사용되는 것을 볼 수 없습니다. Win10과 호환되지 않는 ornery 프린터 드라이버로 제한되지 않습니다. –

+0

당신은 interop-code를 모두 제거하고 이러한 함수를 기본적으로 호출하는 사용자 고유의 C++/CLR 라이브러리를 작성해야합니다. 유니 코드와 ANSI * (functionA <--> functionW) * 간의 자동 변환이 있으며이 코드는 완벽하게 VB.NET 내에서 C++/CLR-libs를 사용하면 매력처럼 작동하고 VB 응용 프로그램과 함께 자동으로 컴파일 될 수도 있습니다. * 실제 * 사용 방법은 불안정하고 OS 버전에 따라 다릅니다. 비록 MSDN doc의 일부분은 다르게 말하지만 .... 모든 Microsoft 직원이 이러한 것들을위한 전문가는 아닙니다 ... – specializt

답변

0

덕분에 나는 86로 대상 CPU를 변경하여 해결이 문제를 얻었다.

관련 문제

 관련 문제