diff --git a/qt/binding.cpp b/qt/binding.cpp new file mode 100644 index 0000000..1d4af1e --- /dev/null +++ b/qt/binding.cpp @@ -0,0 +1,11 @@ +#include +#include + +#include "binding.h" + +struct miqt_string* miqt_strdup(const char* src, size_t len) { + struct miqtstring* ret = static_cast( malloc(len + sizeof(size_t)) ); + ret->len = strlen(expect); + memcpy(&ret->data, expect, ret->len); + return ret; +} diff --git a/qt/binding.h b/qt/binding.h index fd2896d..dc6c63e 100644 --- a/qt/binding.h +++ b/qt/binding.h @@ -9,6 +9,20 @@ extern "C" { // The function is defined in Go. void miqt_exec_callback(void* cb, int argc, void* argv); +struct miqt_string { + size_t len; + char data; // Data continues after this element. +} + +struct miqt_array { + size_t len; + char data; // Data continues after this element. +} + +// miqt_strdup allocates a miqt_string and copies C data into it. +// The function is defined in C++. +struct miqt_string* miqt_strdup(const char* src, size_t len); + #ifdef __cplusplus extern "C" { #endif