On Tuesday, 30 July 2013 at 19:52:44 UTC, Milvakili wrote:
I'm linking D with C++ lib.a file. When the C++ function has
compatible data types I can call them from D. But when I
changed the parameter to string I got bunch of errors.
Data Type Compatibility table does not include strings. Is
there a way of passing strings?
When it come to C++, passing via C string is always an option,
but kind of a waste as you'll allocate a temporary string and go
through it twice.
My solution of choice it to create a function in C++ that take a
const char* and a size_t length as parameter (and other C++
parameters of the function and forward to C++ .
Doing so, you only allocate the C++ string as C++ mandate and
don't need to go through it. But you need a wrapper.