Using a C function with command line parameters
Steven Schveighoffer
schveiguy at yahoo.com
Mon Jul 4 07:41:28 PDT 2011
On Mon, 04 Jul 2011 10:39:07 -0400, Steven Schveighoffer
<schveiguy at yahoo.com> wrote:
> On Mon, 04 Jul 2011 10:31:58 -0400, Jonathan Sternberg
> <jonathansternberg at gmail.com> wrote:
>
>> glut has the function:
>>
>> void glutInit( int* pargc, char** argv );
>>
>> In order to use it. Since D has an ABI compatible with C, I should be
>> able to
>> write a D file with extern (C) on the glut functions. How would I wrap
>> this
>> function to be used with D arrays? Such as:
>>
>> int main(string[] args)
>> {
>> glutInit( /* I don't know what to do here */ );
>> return 0;
>> }
>>
>> Thanks.
>
> Convert all the args to zero-terminated strings. One thing to look at,
> does glutInit actually modify any of the strings or does it just remove
> them from the argv array? Because I would expect the argv argument to
> be const(char)** if it doesn't modify. That would allow you to pass in
> the strings without having to duplicate them.
>
> Some untested code:
>
> auto argarr = new immutable(char)*[args.length];
bleh, this should have been new char*[args.length];
Sorry.
-Steve
More information about the Digitalmars-d-learn
mailing list