Hallo aelg!
Jou, so hatte ich das auch schon, hier mal der code
static int mask_for_components(UF_UI_selection_p_t select, void *type)
{
UF_UI_mask_t
mask = { UF_component_type, 0, 0 };
if (!UF_CALL(UF_UI_set_sel_mask(select,
UF_UI_SEL_MASK_CLEAR_AND_ENABLE_SPECIFIC, 1, &mask)))
return (UF_UI_SEL_SUCCESS);
else
return (UF_UI_SEL_FAILURE);
}
static tag_t select_a_component(char *prompt)
{
int
resp;
double
cp[3];
tag_t
object,
view;
UF_CALL(UF_UI_select_with_single_dialog("Select a component", prompt,
UF_UI_SEL_SCOPE_ANY_IN_ASSEMBLY, mask_for_components, NULL, &resp,
&object, cp, &view));
if (resp == UF_UI_CANCEL)
{
UF_CALL(UF_terminate());
}
if (resp == UF_UI_OBJECT_SELECTED | | resp == UF_UI_OBJECT_SELECTED_BY_NAME)
{
UF_CALL(UF_DISP_set_highlight(object, 0));
return object;
}
else return NULL_TAG;
Die Funktion select_a_component steckt in ner while schleife drin, und wenn ich cancel druecke, bricht das program nur die while schleife ab und setzt das programm danach fort. Genau das selbe ist auch schon vorher passiert. irgendwie scheint es dass UF_terminate gar nichts macht. Hab mir auch mal die Variable resp ausdrucken lassen und die if-schleife mit dem zahlenwert probiert, auch nichts.
Uf-terminate scheint eh nicht so ganz zu funktionieren, oder? Denn immer wenn ich das programm laufen lasse, was im code veraendere und dann wieder compilen will, kommt der error code LNK1201, nicht genuegend speicherplatz vorhanden. keine ahnung, hab schon alles moegliche versucht zu "freen".
Torsten
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP