if (status != MrmSUCCESS)
error ("Unable to open hello_world.uid file.");
status = MrmRegisterNames (callback_list, XtNumber (callback_list));
if (status != MrmSUCCESS)
error ("Unable to register callback functions with Mrm.");
status = MrmFetchWidget (hierarchy, /* hierarchy to search */
"hello_main", /* object name */
toplevel, /* parent */
&hello_main, /* widget created */
&class_code); /* widget's class code */
if (status != MrmSUCCESS)
error ("Unable to create interface from UID file");
MrmCloseHierarchy (hierarchy);
XtManageChild (hello_main);
XtRealizeWidget (toplevel);
XtAppMainLoop (app_context);
}
Compiling this program is similar to any other Motif application−−we just need to add the Mrm library to the link
line. Because the program consists of a single file, we can use the following command to compile it on most UNIX
systems:
cc −o hello_world hello_world.c −lMrm −lXm −lXt −lX11
You should note that this program, like any program that uses Mrm, includes the file <Mrm/MrmAppl.h>. This file
contains the function prototypes and constant definitions necessary to use Mrm. It also includes the <Xm/Xm.h> file,
which contains the necessary declarations and definitions for the Motif library. When you use Mrm, there's no need to
include a header file for each type of widget in the interface because the interface is not created directly in C.
However, if your application uses any widget convenience functions, you do need to include the appropriate widget
header file(s).
23.5.1 Initializing ...