admin 发表于 2014-3-11 16:20:30

UF_CALL(X) (report( __FILE__, __LINE__, #X, (X)))的使用技巧

在程序开头,创建如下的基于report函数的宏:
#define UF_CALL(X) (report( __FILE__, __LINE__, #X, (X)))
只要把原UF函数原封不动地作为UF_CALL宏的参数,UF出错时就能自动实现错误捕捉\错误信息的转换\输出.如:
UF_CALL(UF_ASSEM_set_work_part(Part_Tag));
UF_CALL(UF_STYLER_ask_value(dialog_ID,&Data));
内部UF程序一旦出错,轻者引发UG警告终止当前程序,重者直接使UG挂起,因此依靠UG系统的警告并不能完全指出程序的错误。而外部UF运行时出错则直接回到操作系统控制下,系统给出的警告信息就更笼统了。考虑到这一点,调用所有含参数的内部UF时,都应该使用UF_CALL。只是对于无输入参数的UF函数或返回值不是整型的UF函数使用UF_CALL会使宏代换出错,如:
UF_CALL(UF_PART_save_()) /* 错误 */
使用UF_CALL宏只是为调试除错服务的,正式程序中应该把它去掉,以获得更好的运行性能。
页: [1]
查看完整版本: UF_CALL(X) (report( __FILE__, __LINE__, #X, (X)))的使用技巧