read GpgmeData
Marcus Brinkmann
Marcus.Brinkmann at ruhr-uni-bochum.de
Tue Apr 29 16:22:04 CEST 2003
On Mon, Apr 28, 2003 at 11:00:24PM +0200, Florian Lindner wrote:
> Hello,
> I'm rather a C++ programmer than C, therefor I've little excperience with
> malloc, free and char[].
Writing a C++ wrapper for gpgme could be an interesting project, though.
Still, you should know about new and delete, and arrays, even if you started
out with C++. malloc and free allocate and release memory explicitely as
the C++ operators new and delete do.
> How can I get the result of gpgme_data_release_and_get_mem into a std::string
> object?
>
> GpgmeData data, output;
> gpgme_data_new(&data);
> gpgme_data_new_from_mem(&data, m_text.c_str(), m_text.size(), 1);
> gpgme_op_encrypt(m_ctx, rec, data, output);
>
> int length;
> gpgme_data_release_and_get_mem(output, &length); // get the return value
You need to add a binary 0 to the data object:
gpgme_data_write (output, "", 1);
and then the return value of gpgme_data_release_and_get_mem is a standard C string
(if the data is in armor format, of course, and does not contain binary
zeroes).
More information about the Gnupg-devel
mailing list