C API / const char *text / std.string.toStringz pointer is always NULL on C side
Robert M. Münch
robert.muench at saphirion.com
Wed May 16 16:53:27 UTC 2018
On 2018-05-16 15:09:41 +0000, rikki cattermole said:
> On 17/05/2018 3:07 AM, Robert M. Münch wrote:
>> I have an extern(C) function in a DLL with this signature:
>>
>> result* myfunc(double x, double y, const char *text, stuff *myStuff,
>> bool flag);
>>
>> I call it like this:
>>
>> result = myfunc(0, 0, std.string.toStringz("1"), stuff, true);
>>
>>
>> The problem is, that on the DLL side *text is always NULL. I doesn't
>> matter what I put as third argument. And even more strange, I have an
>> other function with a const char* as first argument. There everything
>> is working...
>>
>> Any idea what cause this could be? This is really strange...
>
> Please post the C function prototype.
Well, for C see above on the D side:
extern(C) {
result myfunc(double x, double y, const char *text, stuff
*myStuff, bool measureOnly);
}
result is a:
extern (C++, class) struct result {
double w;
double h;
}
--
Robert M. Münch
http://www.saphirion.com
smarter | better | faster
More information about the Digitalmars-d-learn
mailing list