Шаблон:CreateFileAsBinaryDataStorage example: различия между версиями
Перейти к навигации
Перейти к поиску
(Новая страница: «<source lang='cpp'> char l_filename[] = "./somefile"; std::size_t cb_filename = sizeof(l_filename) - 1 →term. 0: ; IIOBinaryData* pIO; //uninitialized pointer {…») |
|||
(не показаны 2 промежуточные версии этого же участника) | |||
Строка 1: | Строка 1: | ||
<source lang='cpp'> | <source lang='cpp'> | ||
char l_filename[] = "./somefile"; | char l_filename[] = "./somefile"; | ||
std::size_t cb_filename = sizeof(l_filename) - 1 /*term. 0*/; | std::size_t cb_filename = sizeof(l_filename) - 1 /*term. 0*/; | ||
IContiguousDataStorage* pIO = nullptr; | |||
IDataStorage* pStorage = nullptr; | |||
return_code_t err = CreateFileAsBinaryDataStorage(l_filename, cb_filename, FileRead | FileWrite, FileCreateAlways, &pStorage); | |||
if (err < 0) | |||
goto cleanup; //failure of CreateFileAsBinaryDataStorage | |||
err = pStorage->IsInterfaceAvailable(ContiguousDataStorageType); | |||
if (err < 0) | |||
goto cleanup; //failure of IsInterfaceAvailable | |||
err = pStorage->RepresentAs(ContiguousDataStorageType, (void**) &pIO); | |||
if (err < 0) | |||
goto cleanup; //failure of RepresentAs | |||
//access the file via pIO... | |||
cleanup: | |||
if (pStorage) | |||
//access file via pIO... | pStrorage->Release(); | ||
if (pIO) | |||
pIO->Release(); | |||
</source> | </source> |
Текущая версия на 12:32, 14 августа 2019
char l_filename[] = "./somefile";
std::size_t cb_filename = sizeof(l_filename) - 1 /*term. 0*/;
IContiguousDataStorage* pIO = nullptr;
IDataStorage* pStorage = nullptr;
return_code_t err = CreateFileAsBinaryDataStorage(l_filename, cb_filename, FileRead | FileWrite, FileCreateAlways, &pStorage);
if (err < 0)
goto cleanup; //failure of CreateFileAsBinaryDataStorage
err = pStorage->IsInterfaceAvailable(ContiguousDataStorageType);
if (err < 0)
goto cleanup; //failure of IsInterfaceAvailable
err = pStorage->RepresentAs(ContiguousDataStorageType, (void**) &pIO);
if (err < 0)
goto cleanup; //failure of RepresentAs
//access the file via pIO...
cleanup:
if (pStorage)
pStrorage->Release();
if (pIO)
pIO->Release();