Calypso: Direct and full interfacing to C++

Kelly via Digitalmars-d-announce digitalmars-d-announce at puremagic.com
Tue May 19 10:31:05 PDT 2015


On Tuesday, 19 May 2015 at 16:33:00 UTC, CraigDillabaugh wrote:
> On Tuesday, 19 May 2015 at 08:09:33 UTC, Suliman wrote:
>> modmap (C++) "<gdalwarper>";
>>
>> import std.stdio;
>>
>> void main()
>> {
>> 	GDALDatasetH  hSrcDS, hDstDS;
>> 	GDALAllRegister();
>> 	writeln("hello");
>> }
>>
>>
>> error:
>> app.d(7): Error: undefined identifier GDALDatasetH
>> app.d(7): Error: undefined identifier GDALDatasetH
>> app.d(8): Error: undefined identifier GDALAllRegister
>
> Perhaps you also need to include the GDAL headers, as I suspect 
> gdalwarper doesn't define GDALDatasetH.


Hi Craig,

The method here is to actually 'import (C++) _;' since that '_' 
will make Calypso import all the global 
functions/variables/typedefs in gdalwarper.

This works for namespaces also, so if you have a namespace in a 
different example called MySpace, then calling 'import (C++) 
MySpace._;' will import all the functions/variables/typedefs in 
the namespace and make them accessible in your D file.

If you just have a single class in the MySpace namespace called 
'myclass', and you would like to use it in your D program, then 
use 'import (C++) MySpace.myclass;' to import it. Then 
instantiate the class in D and use it from there.

Thanks,
Kelly




More information about the Digitalmars-d-announce mailing list