## Frequently Asked Questions Frequently Asked Questions — Find answers to common questions in the GMime manual |

## Questions and Answers

This is an "index" of the reference manual organized by common "How do I..." questions. If you aren't sure which documentation to read for the question you have, this list is a good place to start.

##### 1. General
1.1. | Where can I get help with GMime, submit a bug report, or make a feature request?
| See the documentation on this topic.
1.2. | How do I port from one GMime version to another?
| See the list of incompatible changes from 1.0 to 2.0. If you have a question not covered in the manual, feel free to ask me personally by emailing me at fejj@ximian.com.
1.3. | How does memory management work in GMime? Should I free data returned from functions?
| See the documentation for GObject. For GObject note specifically g_object_ref() and g_object_unref(). For strings returned from functions, they will be declared "const" if they should not be freed. Non-const strings should be freed with g_free(). Arrays follow the same rule. (If you find an exception to the rules, please report a bug to http://bugzilla.gnome.org.)
1.4. | How do I use GMime with threads?
| First, read the GThread documentation for portable threading primitives. Secondly, all functions in gmime-charset, gmime-iconv and gmime-utils should be thread-safe. Objects subclassing GObject are not.
1.5. | How do I use GMime with C++?
| The GMime header files use the subset of C that's also valid C++, so you can simply use the normal GMime API in a C++ program.
1.6. | How do I use GMime with other non-C languages?
| As of June 18th, 2003 there is now a set of Perl bindings for GMime called MIME::Fast. Thanks to Piotr Klaban for his efforts.