找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 397|回复: 2

[公告] 炫语言常见错误以及解决方法

[复制链接]

4

主题

10

回帖

72

积分

超级版主

积分
72
QQ
发表于 2024-8-21 20:00:06 | 显示全部楼层 |阅读模式
本帖最后由 未闻花名 于 2024-8-21 20:27 编辑

注意:在查看本帖解决方案前,请确保您的 IDE 是最新版本。

1. 项目无法编译?
        1. 可能是该项目依赖的模块更新、名称改变、模块所致;解决方法:转到模块查看源码或者在群里、论坛发帖求助
        2. 可能是项目中并未包含(exe.rc)文件;解决方法:新建一个空白项目或者在其他项目中复制 exe.rc 文件到该项目
        3. IDE 更新了新的语法或者特性变更;解决方法:群内提问或者论坛发帖求助
           (一般情况下更新并不会影响原始代码的解析,更多的是模块解析的问题,具体参考文档:https://jmp6bo524n.k.topthink.com/@xcdoc/mokuaifengzhuang.html)
        4. 项目配置问题所致,解决方法:项目视图 -> 右键该项目 -> 属性 -> 炫语言(常规) -> SDK/平台工具及/运行库/C++标准(切换测试,还是不行就在群内或者论坛提问)
        5. 引用的模块内部错误;解决方法:使用 vs vscode 打开模块的.h/.hpp/.cpp 文件,借助语法高亮和语法错误标红提示,查看哪里有问题。


2. 无法从“XXX”转换为“XXX”类型?
        a. 在类型转换前,注意以下细节:
                1) 指针类型不匹配不能直接转换,强制转换后访问可能导致未定义行为或非预期结果。
                2) 大范围类型到小范围类型的转换可能导致数据丢失。
        b. 转换方式:
                1) 使用 C 语言风格转换。

                    整型 *a = 10; 浮点型 *b = (浮点型*)a;
                    整型 句柄1 = 1254378; HWND 句柄2 = (HWND)句柄1;HWND 句柄3 = (HWND)1616878;HWND 句柄4 = (HWND)0x00345248
                    常量 字符型  *wchar = "123543ABC炫语言"; void * 地址 = (void*)wchar


                2) 使用 C++方式转换(炫语言不支持直接使用 C++语法转换,需用嵌入代码)。

                    整型 a = 10

                    #外部变量 浮点型 b

                    #嵌入代码

                    float b = static_cast<float>(a);

                    #嵌入代码_结束

                    调试输出(b)


3. 项目配置错误,请检查项目配置?
        1. 请先在群文件下载并解压你的 VC 环境,详情参考:https://docs.qq.com/doc/p/6237fe ... 59bcb0e3d9e9a75a26d
        2. 从其他地方下载下来的程序,没有配置信息,此时请将参考第一条(
1. 项目无法编译?-> 4.)

4. 静态库编译错误?
        1. error LNK2019:无法解析的外部符号@??? 解决方法:请先确保项目包含目录引入了.lib 文件

            1) 在炫语言源文件(.xc)头部书写 #库文件 "你的目录\\X.lib"
            2) 项目视图 -> 右键该项目 -> 属性 -> 炫语言 -> 目录-包含目录(继承值)(.lib 所在目录)
            3) 项目视图 -> 右键该项目 -> 属性 -> 炫语言 -> 链接-附加依赖库 => 填入你的.lib 文件名(XXX.lib)
            4) 以上步骤未解决:那么就是你的静态库与项目的属性配置不兼容,从而导致无法编译,详情参考(
1. 项目无法编译?-> 4.)

        2. 某符号 errorNK2005 已经在\*.obj 中定义
            1) 项目视图 -> 右键该项目 -> 属性 -> 炫语言 -> 链接-其他选项 => 添加上 "/FORCE" (不包含引号)从而忽略重复定义的符号
            2) 原因:1.文件.lib 文件被重复引用 2.lib 文件使用炫语言编译的,lib 文件与项目使用了炫语言相同的模块

5. 炫语言 IDE 代码编辑区背景如何去掉?
        1. 炫语言 IDE -> 右上角设置图标(齿轮) -> 主题设置 -> 代码编辑器-背景图片 => 清空(背景图片) -> 应用
        2. 设置背景同理,选择你的图片路径应用即可

6. 错误 TAB 对齐,遇到空格?
        解决方法:查看 => 调试输出 => 解析错误 -> 双击跳转到错误行,删除多余空格。

7. 错误 C2146: 语法错误: 缺少“;”(在标识符“XXXX”的前面)?
        1.  检查 #嵌入代码 中是否遗漏了分号。
        2.  引用的模块内部错误;解决方法:使用 vscode 打开模块的.h/.hpp/.cpp 文件,借助语法高亮和错误提示,查看问题所在。

8. 炫语言的关键字类型数据 “XXXX”: 未声明的标识符?
        检查 #嵌入代码 中是否使用了炫语言的数据类型,C/C++中不存在炫语言的数据类型,请悉知并改为 C/C++的数据类型。

9. 无法打开/包含/解析 XXX 文件?
        引用的.lib/.h 文件不存在或目录错误。解决方法参考前面的错误说明。

10. 错误: 线程尝试读取不可访问的数据, 错误码: 0xC0000005?
        错误的指针操作导致程序出现未定义行为(野指针)。请检查您的代码是否出现以下错误操作方式:
        1. 数组越界(下标从0开始)
        2. 空指针解引用(整型 *a = 空; 调试输出(a); 整型 b = *a //其他数据类型同理)
        3. 零被当作除数(1/0; 整型 a = 100 / 0)
        4. 内存访问冲突(访问了悬垂指针(已经被释放的内存));如果数据需要重复使用,请用全局/new/静态来给变量分配内存,或确保变量指向的地址在生命周期内不会被释放
        5. 多线程数据竞争。此时请使用互斥锁/信号量/临界区/许可保证数据不会被同时操作。




49

主题

49

回帖

406

积分

超级版主

积分
406
发表于 2024-8-22 11:23:42 | 显示全部楼层
花姐就是厉害呀.

1

主题

42

回帖

404

积分

中级会员

积分
404
发表于 2024-8-22 14:55:43 | 显示全部楼层
对新人很有帮助  谢谢分享
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|炫语言 | 炫彩界面库 | 用户所需, 正是我所做! ( 鄂ICP备2023014763号-1 )

GMT+8, 2024-11-21 23:45 , Processed in 0.078278 second(s), 20 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表