aed@netcom.COM (Andrew Davidson) (04/05/91)
Hi
Here is a little X program I can not seem to get to compile. I am trying to
use the sun c++ compiler. (This code is really just normal C code) I should
note that it compiles and runs with out any problem when I use gnu g++
1.37.1. But does not compile when I use the sun c++ compiler (basic AT&T c++
compiler)
I am using X11r4 and motif 1.1
Thanks in advance
-------------------- compiler error messages -----------------
CC -c -g -I../../libxs main.cc
CC +g main.cc:
"main.cc", line 42: error:
bad argument 3 type for XtAddCallback():
void (*)(Widget , caddr_t ,
XmAnyCallbackStruct *) ( XtCallbackProc expected)
1 error
cc -c -I/usr2/CC/sun4/incl -I../../libxs -g
------------------------------ code -------------------------------
#define XTFUNCPROTO 0 /*
* something is wrong
* I did not have to define this for g++
* I should not have to define this,
* see /usr/include/X11/Intrinsic.h
*/
#include <math.h>
#include <iostream.h> /* for g++ use stream.h */
#include <X11/StringDefs.h>
#include <X11/Intrinsic.h>
#include <Xm/Xm.h>
#include <Xm/PushB.h>
#include <Xm/Label.h>
void DoLotsOfWork(Widget w, caddr_t junk, XmAnyCallbackStruct *callData);
int main( int argc, char *argv[])
{
Widget toplevel, button;
toplevel = XtInitialize(argv[0], "BadClient", 0, 0, (Cardinal *)&argc,
argv);
Arg wargs[10];
int n = 0;
XmString label = XmStringCreate("Do Lots of WORK!",
XmSTRING_DEFAULT_CHARSET);
XtSetArg(wargs[n], XmNlabelString, label); n++;
button = XtCreateManagedWidget("button", xmPushButtonWidgetClass,
toplevel, wargs, n);
/* 42 */ XtAddCallback(button, XmNactivateCallback, DoLotsOfWork, NULL);
XtRealizeWidget(toplevel);
XtMainLoop();
}
/*
* this function prints its starting and ending time to cout
* in general it does nothing special, just smokes lots of cycles
*/
void DoLotsOfWork(Widget w, caddr_t junk, XmAnyCallbackStruct *callData)
{
long clock;
/* but these lines in to nock out warnings */
Widget g = w;
caddr_t h = junk;
XmAnyCallbackStruct *j = callData;
time(&clock);
cout << "BadClient starting time: " << ctime(&clock) << "\n";
for (long i = 0; i < 60000; i++)
pow(2.375, 2.375);
time(&clock);
cout << "BadClient ending time: " << ctime(&clock) << "\n";
}
--------------------------- end code -----------------------------
--
-----------------------------------------------------------------
"bede-bede-bede Thats all Folks"
Porky Pig
Andy Davidson
Woodside CA.
aed@netcom.COM
-----------------------------------------------------------------