Thread overview
WxWindows & dm
Dec 11, 2002
Kon Tantos
Re: WxWindows & dm - compilation with 'ptr to ptr' parameters
Dec 11, 2002
Kon Tantos
Dec 11, 2002
Walter
December 11, 2002
hi,

has anyone used WxWindows with the digital mars compiler?
If so is there a list of steps / patches to enable the wxwin library &
applications to be built.

-- 
TIA
Kon Tantos
ksoft1@attglobal.net or kon.tantos@tafe.nsw.edu.au
December 11, 2002
I have been experimenting with building the wxWindows library using the makefiles supplied with wxWindows. Progress so far:

1 modified '\include\wx\defs.h' to recognise digital mars instead of
symantec
this at least allows compilation to begin.

2 sc complained about duplicate member function definitions in Icon.h. The problem was the following member functions from class Icon

    wxIcon(const char **data) { CreateIconFromXpm(data); }
    wxIcon(char **data) { CreateIconFromXpm((const char **)data); }

It appears that sc sees 'const char**' and 'char**' as the same. This
seems a bit strange.
As a test I created a small project with the IDDE, a code snippet is
below:

void    func1( char* d) {}
void    func1( const char* d) {}

void    func1( char** d) {}
void    func1( const char** d) {}

class   XX
{
public:
    void    func1( char* d) {}
    void    func1( const char* d) {}

    void    func1( char** d) {}
    void    func1( const char** d) {}
};

The compiler produces the following output:

sc ..\test1.cpp -mn -C -WA -S -3 -a8 -c -gf -D_CONSOLE=1 -o..\test1.obj
Error: H:\Digital_Mars\test1\DmW32\..\test1.cpp(10): 'func1' previously
declared as something else
H:\Digital_Mars\test1\DmW32\..\test1.cpp(10): It was declared as: void C
func(char **)
H:\Digital_Mars\test1\DmW32\..\test1.cpp(10): It is now declared: void C
func(char const **)
Error: H:\Digital_Mars\test1\DmW32\..\test1.cpp(19): 'XX::func1' is
already defined
Lines Processed: 10525  Errors: 2  Warnings: 0
Build failed

It appears that the compiler considers the functions with 'ptr to ptr' parameters as being "C" functions. I can get around this by commenting out one of the functions, but I would rather not unless I have no choice.

Is this a known issue or am I missing something obvious?

BTW I am very new to digital mars, (mainly worked with Watcom & MSC over
last few years).

-- 
Regards
Kon Tantos
ksoft1@attglobal.net or kon.tantos@tafe.nsw.edu.au
December 11, 2002
I'll look into it. -Walter

"Kon Tantos" <ksoft1@attglobal.net> wrote in message news:3DF7131A.C84F2A77@attglobal.net...
> I have been experimenting with building the wxWindows library using the makefiles supplied with wxWindows. Progress so far:
>
> 1 modified '\include\wx\defs.h' to recognise digital mars instead of
> symantec
> this at least allows compilation to begin.
>
> 2 sc complained about duplicate member function definitions in Icon.h. The problem was the following member functions from class Icon
>
>     wxIcon(const char **data) { CreateIconFromXpm(data); }
>     wxIcon(char **data) { CreateIconFromXpm((const char **)data); }
>
> It appears that sc sees 'const char**' and 'char**' as the same. This
> seems a bit strange.
> As a test I created a small project with the IDDE, a code snippet is
> below:
>
> void    func1( char* d) {}
> void    func1( const char* d) {}
>
> void    func1( char** d) {}
> void    func1( const char** d) {}
>
> class   XX
> {
> public:
>     void    func1( char* d) {}
>     void    func1( const char* d) {}
>
>     void    func1( char** d) {}
>     void    func1( const char** d) {}
> };
>
> The compiler produces the following output:
>
> sc ..\test1.cpp -mn -C -WA -S -3 -a8 -c -gf -D_CONSOLE=1 -o..\test1.obj
> Error: H:\Digital_Mars\test1\DmW32\..\test1.cpp(10): 'func1' previously
> declared as something else
> H:\Digital_Mars\test1\DmW32\..\test1.cpp(10): It was declared as: void C
> func(char **)
> H:\Digital_Mars\test1\DmW32\..\test1.cpp(10): It is now declared: void C
> func(char const **)
> Error: H:\Digital_Mars\test1\DmW32\..\test1.cpp(19): 'XX::func1' is
> already defined
> Lines Processed: 10525  Errors: 2  Warnings: 0
> Build failed
>
> It appears that the compiler considers the functions with 'ptr to ptr' parameters as being "C" functions. I can get around this by commenting out one of the functions, but I would rather not unless I have no choice.
>
> Is this a known issue or am I missing something obvious?
>
> BTW I am very new to digital mars, (mainly worked with Watcom & MSC over
> last few years).
>
> --
> Regards
> Kon Tantos
> ksoft1@attglobal.net or kon.tantos@tafe.nsw.edu.au