XAF:Model.xafml学习

本文详细介绍了Model.xafml中UIType的四种设置选项:TabbedMDI、MultipleWindowSDI、SingleWindowSDI和StanderdMDI,每种设置对应的界面展示方式及应用场景。

Options

是应用的整体设置。在这里插入图片描述

界面设置:UIType1

取值范围:

  1. TabbedMDI :默认的UI样式,内嵌子菜单操作方式,如下所示;在这里插入图片描述

  2. MultipleWindowSDI 多窗口应用,每个子窗口都使用独立的窗口,如下所示;在这里插入图片描述

  3. SingleWindowSDI:单窗口模式,不管什么操作都在一个窗口中,如下所示 ;在这里插入图片描述

  4. StanderdMDI 标准MDI;类似Excel那种可以呈现多个文档且单个文档可以进行缩放操作的窗口模式。在这里插入图片描述

导航:NavigationItems

待编写


  1. UIType官方说明 ↩︎

以下是对 `multiple definition of 'main'`、`undefined reference to 'process_wait'`、`undefined reference to 'process_waitpid'` 和 `ld returned 1 exit status` 错误的分析与解决办法: ### `multiple definition of 'main'` 此错误表明在编译时,多个源文件里都定义了 `main` 函数。在一个程序中,`main` 函数只能有一个定义,因为它是程序的入口点。 #### 示例代码问题 假设存在两个文件 `file1.c` 和 `file2.c`,且它们都定义了 `main` 函数: ```c // file1.c #include <stdio.h> int main() { printf("This is file1\n"); return 0; } ``` ```c // file2.c #include <stdio.h> int main() { printf("This is file2\n"); return 0; } ``` 若尝试编译这两个文件,就会出现 `multiple definition of 'main'` 错误。 #### 解决办法 仅保留一个 `main` 函数定义。若要将代码拆分到多个文件中,可把其他功能封装成函数,然后在 `main` 函数里调用。例如: ```c // functions.c #include <stdio.h> void print_message() { printf("This is a message from functions.c\n"); } ``` ```c // main.c #include <stdio.h> void print_message(); int main() { print_message(); return 0; } ``` 编译时使用以下命令: ```sh gcc main.c functions.c -o program ``` ### `undefined reference to 'process_wait'` 和 `undefined reference to 'process_waitpid'` 这些错误意味着编译器在链接阶段找不到 `process_wait` 和 `process_waitpid` 函数的定义。这通常是因为函数定义缺失,或者定义了但未正确链接。 #### 示例代码问题 ```c // main.c #include <stdio.h> void process_wait(); void process_waitpid(); int main() { process_wait(); process_waitpid(); return 0; } ``` 若没有 `process_wait` 和 `process_waitpid` 函数的定义,就会出现 `undefined reference` 错误。 #### 解决办法 确保函数已定义,并且在编译时包含了定义这些函数的文件。例如: ```c // wait_functions.c #include <stdio.h> #include <sys/types.h> #include <sys/wait.h> #include <unistd.h> void process_wait() { pid_t pid = fork(); if (pid < 0) { perror("fork"); } else if (pid == 0) { // 子进程代码 printf("This is the child process\n"); _exit(0); } else { int status; wait(&status); printf("Child process exited\n"); } } void process_waitpid() { pid_t pid = fork(); if (pid < 0) { perror("fork"); } else if (pid == 0) { // 子进程代码 printf("This is the child process\n"); _exit(0); } else { int status; waitpid(pid, &status, 0); printf("Child process exited\n"); } } ``` 编译时使用以下命令: ```sh gcc main.c wait_functions.c -o program ``` ### `ld returned 1 exit status` 这个错误通常是链接器(`ld`)在链接过程中出错返回的状态码。它往往是由前面提到的数据 `multiple definition` 或 `undefined reference` 错误引发的。解决前面的错误后,这个错误通常会随之消失。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值