Xwindows Intrinsics-在';C'; 语言C,****C++ 环境Xwindows Intrincics&Athena(Xt,Xaw)

Xwindows Intrinsics-在';C'; 语言C,****C++ 环境Xwindows Intrincics&Athena(Xt,Xaw),c,string,x11,C,String,X11,我想在“C”打印语句中使用来自asciiTextWidget的值。值的类型为“String”,它是“char*”的typedef Language 'C', **not** C++ Environment Xwindows Intrincics & Athena (Xt, Xaw) 字符串argName,argTask,sinceWhen; xtvagetvalue(b_txt_21,XtNstring和argTask,NULL); 如果(strlen(argTask)>0){ printf(

我想在“C”打印语句中使用来自asciiTextWidget的值。值的类型为“String”,它是“char*”的typedef

Language 'C', **not** C++ Environment Xwindows Intrincics & Athena (Xt, Xaw)
字符串argName,argTask,sinceWhen;
xtvagetvalue(b_txt_21,XtNstring和argTask,NULL);
如果(strlen(argTask)>0){
printf(“--New argTask\n”);
XtVaSetValues(t_txt_21,XtNstring,argTask,NULL);
XtVaSetValues(b_txt_21,XtNstring,“,NULL);
}
printf(“++提交:完成\n”,argName,argTask);
这将产生:

String argName, argTask, sinceWhen;

XtVaGetValues(b_txt_21, XtNstring, &argTask ,NULL);
if (strlen(argTask) > 0) {
  printf ("--New argTask\n");
  XtVaSetValues(t_txt_21, XtNstring, argTask ,NULL);
  XtVaSetValues(b_txt_21, XtNstring, "" ,NULL);
}
printf ("++Commit:gets done <%s> <%s>\n", argName,argTask);
——新建argTask
++提交:完成
我找不到字符串->字符串的转换器。也不是字符串指针末尾的结构文档

已解决:

XtVaGetValues正确设置字符串。显然,XtVaSetValues会在设置小部件后清除字符串内容。在“获取”后立即保存您的副本。
--New argTask
++Commit:gets done <> <>