help with old prog

bat (3)
Hello, I am trying to get an old C++ program to compile.... it uses bits of Motif so I'm doing it with MinGW/g++ in cygwin with X11 routines installed.... that seems to be working OK, but I can't compile it for the following error:

error: invalid conversion from ‘const void*’ to ‘void*’

Is that a golden oldie?? Anyhow, the offending bit of code is the last line of this....

void fuse_dialog(Widget w)
{
Widget dialog, rc;
XmString string;
Arg args[5];
int n = 0;
static ActionAreaItem action_items[] = {
{ "OK", fuse_ok_pushed, NULL },
{ "PICK AGAIN", pickagain_pushed ,NULL },
{ "QUIT", fuse_cancel_pushed, NULL },
{ "Help", help, "Help Button" },
};

Fraid I'm not a programmer and I don't have access to local expertise. I just want to get it running... (sorry if that doesn't sound responsible!!).

Any clues very much appreciated indeed.

Bests for now, bat.
vlad from moscow (3108)
Show the definition of ActionAreaItem.
bat (3)
Cheers Vlad, I've searched the c++ and helper files and I think this is it, but not sure....

struct ActionAreaItem{
char *label;
void (*XtCallbackProc)(Widget w,XtPointer client_data,XtPointer call_data);
XtPointer data;
};

... this is a nightmare!
vlad from moscow (3108)
Well, what is the type of XtPointer?

I want to know what object has type void * and whta object has type const void *

You should show the whole error message. Usually such a message contains additional messages that point to object that can not be assigned.
bat (3)
Awesome..... here's the rest of the error message (there are others like this but they all have the same pattern)

drawwindow.c++: In function ‘void fuse_dialog(_WidgetRec*)’:
drawwindow.c++:663:5: warning: deprecated conversion from string constant to ‘char*’
drawwindow.c++:663:5: warning: deprecated conversion from string constant to ‘char*’
drawwindow.c++:663:5: warning: deprecated conversion from string constant to ‘char*’
drawwindow.c++:663:5: warning: deprecated conversion from string constant to ‘char*’
drawwindow.c++:663:5: error: invalid conversion from ‘const void*’ to ‘void*’

As for XtPointer, there is no obvious definition in the files I have, but Google gives the following....

XtPointer is a void* used by X Windows.
vlad from moscow (3108)
The generating of warnings is clear because string lliterals have type const char [] and inside the structure they are assigned to char * instead of const char *. As for void * and const void * I do not see where this conversion is being done.

And I do not understand why you search Google when you have to have include files. Why do you not look through your include files?!
Last edited on
Registered users can post here. Sign in or register to post.