2010-11-30 2 views

답변

9

그것은 CInt 인수가 0x7FFFFFFF 에 Integer, -0x80000000의 범위를 벗어났다는 것을 의미한다 그리고 오류를 반환 NetApiBufferFree 때 발생합니다 오류 코드 0x80000000에보다 큰.

부호없는 int32 유형이 없으므로 CInt 대신 CLng을 사용하십시오.


오류의 근원 정보. 오류 코드를 찾아야합니다 : MsgBox를 호출하거나 파일에 기록하거나 중단 점을 사용하십시오. 다음은 설명을 찾습니다. 그것이 도움이되지 않으면 (예를 들어, 오류는 E_FAIL이 될 것입니다), pBuffer 값이 유효한지 확인하십시오 - 무언가에 의해 수정되지 않았고 이미 해제되지 않았 음을 확인하는 코드를 추가하십시오. NetApiBuffer* 호출에 대한 로깅을 추가하십시오.

+0

+1. 또한'Result'가 실제로'Long'으로 선언되었는지 확인하십시오. 또한'Option Strict'를 켜서 이런 종류의 일에 취약 할 때 컴파일러가 경고합니다. – MarkJ

+0

친애하는 Abyx는 정확한 답변을 해주셔서 대단히 감사합니다.하지만 제 문제의 근원을 알려주지 않으므로이 오류를 처리하기 위해해야 ​​할 일이 무엇입니까? 잠시 동안 나는 그것을 처리하는 방법을 알기 전까지 Buffer Free에 대한 지시를 중지했다. 이 일을 도와 줄 수 있어요? –

+0

처리하지 마십시오 - 해결하십시오! –

1

우수 답변은 .. 'INT16/INT32/INT64'

몇 번 파일 변환이 거대한 수를 소요 대신에 '더블'대체 최대 범위가 결코 두 배입니다.