Interfacing to C++ / Fltk
Michael
pr at m1xa.com
Sun Aug 19 04:32:37 PDT 2012
Hi,
I have C++ code:
-----
#define dllExport __declspec(dllexport)
namespace fltk = fltk3;
class dllExport FltkWindow : public fltk::Window
{
public:
FltkWindow(int w, int h, const char* title =
nullptr):fltk::Window(w, h, title) { }
};
dllExport FltkWindow* get_Win(int w, int h, const char * title =
nullptr)
{
FltkWindow * win = new FltkWindow(w, h, title);
if(win)
{
cout<<"not null win";
return win;
}
cout<<"null win";
return 0;
};
-----
And D code:
-----
extern (C++)
{
interface FltkWindow
{
void show();
}
FltkWindow get_Win(int, int, const char*);
}
class FliWindow
{
private FltkWindow _win;
public this(int w, int h, string label = "Fli_Window")
{
_win = get_Win(w, h, label.ptr);
writeln(label);
}
public void ShowMe(string[] args)
{
writeln("ShowMe");
_win.show();
}
}
-----
int main(string[] args)
{
FliWindow w = new FliWindow(300, 200);
w.ShowMe(args);
return Fltk.Run();
}
-----
And output:
-----
Fli_Window
ShowMe
not null win
-----
Why not "not null win -> Fli_Window -> ShowMe"?
P.S.: Win 7 64bit, Dmd 2.060, Dmc 8.52, Fltk 3.0.
More information about the Digitalmars-d
mailing list