size_t opencc_convert_utf8_to_buffer(opencc_t opencc, const char* input, size_t length, char* output) { try { SimpleConverter* instance = reinterpret_cast<SimpleConverter*>(opencc); return instance->Convert(input, length, output); } catch (std::runtime_error& ex) { cError = ex.what(); return static_cast<size_t>(-1); } }
char* opencc_convert(opencc_t opencc, const char* input) try { SimpleConverter* instance = reinterpret_cast<SimpleConverter*>(opencc); std::string converted = instance->Convert(input); char* output = new char[converted.length() + 1]; strncpy(output, converted.c_str(), converted.length()); output[converted.length()] = '\0'; return output; } catch (std::runtime_error& ex) { // TODO report error return NULL; }
char* opencc_convert_utf8(opencc_t opencc, const char* input, size_t length) { try { SimpleConverter* instance = reinterpret_cast<SimpleConverter*>(opencc); std::string converted = instance->Convert(input, length); char* output = new char[converted.length() + 1]; strncpy(output, converted.c_str(), converted.length()); output[converted.length()] = '\0'; return output; } catch (std::runtime_error& ex) { cError = ex.what(); return nullptr; } }