diff --git a/cplusplus/CMakeLists.txt b/cplusplus/CMakeLists.txt index 166a8ca..540bb62 100644 --- a/cplusplus/CMakeLists.txt +++ b/cplusplus/CMakeLists.txt @@ -46,3 +46,6 @@ target_link_libraries(zdw ${ZLIB_LIBRARIES}) target_link_libraries(unconvertDWfile zdw) target_link_libraries(convertDWfile zdw) +set_property(TARGET zdw PROPERTY CXX_STANDARD 11) +set_property(TARGET unconvertDWfile PROPERTY CXX_STANDARD 11) +set_property(TARGET convertDWfile PROPERTY CXX_STANDARD 11) diff --git a/cplusplus/README.md b/cplusplus/README.md new file mode 100644 index 0000000..4b5ed2a --- /dev/null +++ b/cplusplus/README.md @@ -0,0 +1,4 @@ +# ZDW Compression Library + +Build Requirements: +* C++11 compatible compiler. diff --git a/cplusplus/UnconvertFromZDW.cpp b/cplusplus/UnconvertFromZDW.cpp index 1280f79..dc65e77 100644 --- a/cplusplus/UnconvertFromZDW.cpp +++ b/cplusplus/UnconvertFromZDW.cpp @@ -20,6 +20,7 @@ #include #include #include +#include #include #include #include @@ -635,9 +636,10 @@ string UnconvertFromZDW_Base::getColumnDesc(const string& name, UCHAR type, size case VIRTUAL_EXPORT_FILE_BASENAME: case VARCHAR: { - char temp[32]; + const size_t TEMP_BUFFER_SIZE=32; + char temp[TEMP_BUFFER_SIZE]; const int char_size = (this->columnCharSize && this->columnCharSize[index]) ? this->columnCharSize[index] : 255; //before version 7, we don't have a size value - sprintf(temp, "varchar(%d)", char_size); + snprintf(temp, TEMP_BUFFER_SIZE, "varchar(%d)", char_size); text += temp; } break; @@ -1269,12 +1271,13 @@ void UnconvertFromZDW::outputDefault(T& buffer, const UCHAR type) template ERR_CODE UnconvertFromZDW::readNextRow(T& buffer) { + const size_t TEMP_BUFFER_SIZE=64; long u = 0; char *pos; ULONG index; ULONGLONG visid_low = 0; int tempLength; - char temp[64]; + char temp[TEMP_BUFFER_SIZE]; bool bColumnWritten = false; IncrementCurrentRowNumber(); @@ -1443,7 +1446,7 @@ ERR_CODE UnconvertFromZDW::readNextRow(T& buffer) pos = GetWord(index, row); buffer.write(pos, strlen(pos)); } else { //version 1-3 - tempLength = sprintf(temp, "%0.12lf", (val.n + this->columnBase[c]) / this->decimalFactor); + tempLength = snprintf(temp, TEMP_BUFFER_SIZE, "%0.12lf", (val.n + this->columnBase[c]) / this->decimalFactor); buffer.write(temp, tempLength); } } else { diff --git a/cplusplus/unconvertDWfile.cpp b/cplusplus/unconvertDWfile.cpp index e3b415a..4e8a28a 100644 --- a/cplusplus/unconvertDWfile.cpp +++ b/cplusplus/unconvertDWfile.cpp @@ -17,6 +17,7 @@ #include "zdw/UnconvertFromZDW.h" #include +#include #include #include #include diff --git a/cplusplus/zdw/UnconvertFromZDW.h b/cplusplus/zdw/UnconvertFromZDW.h index 003ed7d..73a37d8 100644 --- a/cplusplus/zdw/UnconvertFromZDW.h +++ b/cplusplus/zdw/UnconvertFromZDW.h @@ -23,8 +23,7 @@ #include #include #include - -#include +#include namespace adobe { @@ -348,7 +347,7 @@ class UnconvertFromZDWToMemory : public UnconvertFromZDW ERR_CODE handleZDWParseBlockHeader(); private: - boost::scoped_ptr pBufferedOutput; + std::unique_ptr pBufferedOutput; size_t num_output_columns; bool bUseInternalBuffer; };