PROFI에서 SUPERPROFI에 대한 모든 질문 - 1. - 페이지 28 1...212223242526272829303132333435...45 새 코멘트 Vadim Zhunko 2011.09.09 17:40 #271 // 2.2.6. Метод меняет размер отведённой памяти для файлового отображения. Метод в случае успешного завершения возращает TRUE или FALSE в случае ошибки. bool Resize( const DWORD64 dw64BytesMapping) // Количество резервируемой памяти для файлового отбражения. { DWORD dwErrorCode = 0 ; // Последняя ошибка. tstringstream ssExclusion; // Строка с сообщением об ошибке. dw64Bytes = dw64BytesMapping; ::SetLastError( 0 ); // Сбрасываем последнюю ошибку. // Контроллируем на наличие дескриптора файла и имени файлового отображения. if (hFile == NULL && sName == _T( "" )) { if (DEBUGGING || DEBUGGING_EXCLUSION) { ssExclusion << std :: endl << _T( "Ошибка в методе \"Utils::MappingSTL::Resize()\"." ) << std :: endl << _T( "Отсутствуют дескриптор пользовательского" ) << std :: endl << _T( "файла и имя файлового отображения." ) << std :: endl ; if (DEBUGGING) tcout << ssExclusion.str(); if (DEBUGGING_EXCLUSION) throw (ssExclusion.str()); } return ( false ); } // Создаем или открываем уже существующее отображение файла по дескриптору пользовательского файла. vhMapping.push_back(::CreateFileMapping(hFile, NULL, PAGE_READWRITE, Utils::FILESIZE64(dw64Bytes).dwSizeHigh, Utils::FILESIZE64(dw64Bytes).dwSizeLow, sName.c_str())); // Если получен не верный указатель на файловое отображение. if (vhMapping.back() == NULL) { if (DEBUGGING || DEBUGGING_EXCLUSION) { dwErrorCode = ::GetLastError(); // Получаем последнюю ошибку. ssExclusion << std :: endl << _T( "Ошибка в методе \"Utils::MappingSTL::Resize()\"." ) << std :: endl << _T( "Размер памяти файлового отображения \"" ) << sName << _T( "\" не изменён." ) << std :: endl << LAST_ERROR_PARAMETER(dwErrorCode) << std :: endl ; if (DEBUGGING) tcout << ssExclusion.str(); if (DEBUGGING_EXCLUSION) throw (ssExclusion.str()); } return ( false ); } return ( true ); } 매핑을 위한 클래스 메서드입니다. TheXpert 2011.09.09 17:48 #272 Zhunko : 매핑을 위한 클래스 메서드입니다. 그리고 뭐? 매핑 크기 조정에 대한 주제는 공개되지 않습니다. Vadim Zhunko 2011.09.09 18:45 #273 나는 이것을 좋아한다. TheXpert 2011.09.09 19:08 #274 Zhunko : 나는 이것을 좋아한다. 저것들. 같은 이름과 다른 크기로 매핑을 열면 크기가 변경됩니까? 당신은 대답할 필요가 없습니다, 그것은 어쨌든 코드에 없습니다. 당신이 거기에서하는 일은 질문과 거의 관련이 없습니다. 행운을 빕니다. Vadim Zhunko 2011.09.09 23:59 #275 물론 그렇습니다. 이 수업의 라이브러리는 저에게 효과적입니다. 테스트는 괜찮습니다. 돼지 저금통에는 이 라이브러리의 첫 번째 버전이 있습니다. 라이브러리 자체의 마지막 버전은 필요에 따라 크기를 변경합니다. --- 2011.09.10 09:30 #276 TheXpert : 저것들. 같은 이름과 다른 크기로 매핑을 열면 크기가 변경됩니까? 당신은 대답할 필요가 없습니다, 그것은 어쨌든 코드에 없습니다. 당신이 거기에서하는 일은 질문과 거의 관련이 없습니다. 행운을 빕니다. Andrey, 두 가지 옵션을 다시 확인했습니다. 여전히 그렇습니다. 이름은 같지만 크기가 더 큰 CreateFileMapping을 호출하면 메모리가 확장됩니다. 가장 중요한 것은 CreateFileMapping의 첫 번째 핸들이 닫히지 않아야 한다는 것입니다(단순히 이전 내용을 잃지 않도록). 하지만! 두 번째 경우에는 가설이 더 흥미롭게 검증되었습니다. CreateFileMapping은 초기 크기(예: 2바이트)로 생성되고 4바이트가 기록됩니다. 그리고 자동으로 확장됩니다! 따라서 큰 볼륨으로 두 번째 CreateFileMapping 핸들을 생성할 필요가 없습니다. 문제가 종료되었다고 생각합니다. Vadim Zhunko 2011.09.10 10:01 #277 sergeev : 하지만! 두 번째 경우에는 가설이 더 흥미롭게 검증되었습니다. CreateFileMapping은 초기 크기(예: 2바이트)로 생성되고 4바이트가 기록됩니다. 그리고 자동으로 확장됩니다! 따라서 큰 볼륨으로 두 번째 CreateFileMapping 핸들을 생성할 필요가 없습니다. 문제가 종료되었다고 생각합니다. 설명에 있습니다. 편리하지만 크기만 증가합니다. 자원을 소모합니다. 자신의 메모리 관리자를 만들어야 합니다. --- 2011.09.10 10:07 #278 Zhunko : 설명에 있습니다. 무엇에 대한 설명에서? 정말 기억력을 향상시켜야 합니다. Vadim Zhunko 2011.09.10 10:25 #279 sergeev : 무엇에 대한 설명에서? 기억력을 정말 향상시켜야 합니다. MSDN :-)) 이것은 소비되는 메모리가 증가하면 해제를 제공해야 함을 의미합니다. --- 2011.09.10 10:34 #280 핸들이 닫히면 메모리(CreateFileMapping에 지정된 메모리를 초과하여 할당됨)가 반환되지 않습니까? 1...212223242526272829303132333435...45 새 코멘트 트레이딩 기회를 놓치고 있어요: 무료 트레이딩 앱 복사용 8,000 이상의 시그널 금융 시장 개척을 위한 경제 뉴스 등록 로그인 공백없는 라틴 문자 비밀번호가 이 이메일로 전송될 것입니다 오류 발생됨 Google으로 로그인 웹사이트 정책 및 이용약관에 동의합니다. 계정이 없으시면, 가입하십시오 MQL5.com 웹사이트에 로그인을 하기 위해 쿠키를 허용하십시오. 브라우저에서 필요한 설정을 활성화하시지 않으면, 로그인할 수 없습니다. 사용자명/비밀번호를 잊으셨습니까? Google으로 로그인
매핑을 위한 클래스 메서드입니다.
그리고 뭐?
매핑 크기 조정에 대한 주제는 공개되지 않습니다.
나는 이것을 좋아한다.
저것들. 같은 이름과 다른 크기로 매핑을 열면 크기가 변경됩니까?
당신은 대답할 필요가 없습니다, 그것은 어쨌든 코드에 없습니다. 당신이 거기에서하는 일은 질문과 거의 관련이 없습니다. 행운을 빕니다.
물론 그렇습니다. 이 수업의 라이브러리는 저에게 효과적입니다. 테스트는 괜찮습니다. 돼지 저금통에는 이 라이브러리의 첫 번째 버전이 있습니다.
라이브러리 자체의 마지막 버전은 필요에 따라 크기를 변경합니다.
저것들. 같은 이름과 다른 크기로 매핑을 열면 크기가 변경됩니까?
당신은 대답할 필요가 없습니다, 그것은 어쨌든 코드에 없습니다. 당신이 거기에서하는 일은 질문과 거의 관련이 없습니다. 행운을 빕니다.
Andrey, 두 가지 옵션을 다시 확인했습니다.
여전히 그렇습니다. 이름은 같지만 크기가 더 큰 CreateFileMapping을 호출하면 메모리가 확장됩니다.
가장 중요한 것은 CreateFileMapping의 첫 번째 핸들이 닫히지 않아야 한다는 것입니다(단순히 이전 내용을 잃지 않도록).
하지만! 두 번째 경우에는 가설이 더 흥미롭게 검증되었습니다.
CreateFileMapping은 초기 크기(예: 2바이트)로 생성되고 4바이트가 기록됩니다. 그리고 자동으로 확장됩니다!
따라서 큰 볼륨으로 두 번째 CreateFileMapping 핸들을 생성할 필요가 없습니다.
문제가 종료되었다고 생각합니다.하지만! 두 번째 경우에는 가설이 더 흥미롭게 검증되었습니다.
CreateFileMapping은 초기 크기(예: 2바이트)로 생성되고 4바이트가 기록됩니다. 그리고 자동으로 확장됩니다!
따라서 큰 볼륨으로 두 번째 CreateFileMapping 핸들을 생성할 필요가 없습니다.
문제가 종료되었다고 생각합니다.설명에 있습니다.
무엇에 대한 설명에서? 정말 기억력을 향상시켜야 합니다.
무엇에 대한 설명에서? 기억력을 정말 향상시켜야 합니다.
MSDN :-))
이것은 소비되는 메모리가 증가하면 해제를 제공해야 함을 의미합니다.