硬汉嵌入式论坛

 找回密码
 立即注册
查看: 1895|回复: 6
收起左侧

[emWin上位机] 定义的字体提示错误:unresolved external symbol

[复制链接]

334

主题

2033

回帖

3040

积分

版主

Rank: 7Rank: 7Rank: 7

积分
3040
发表于 2019-11-21 09:22:43 | 显示全部楼层 |阅读模式
本帖最后由 caicaptain2 于 2019-11-21 09:24 编辑

在上位机的例程中,定义了一个字体,且把字体的C文件加入了。 可是编译的时候提示错误?  VC6.0环境。

在mdk中使用字体没有这个问题。VC不怎么熟悉,哪里需要设置?

Snipaste_2019-11-21_09-20-12.png

Snipaste_2019-11-21_09-24-15.png

回复

使用道具 举报

334

主题

2033

回帖

3040

积分

版主

Rank: 7Rank: 7Rank: 7

积分
3040
 楼主| 发表于 2019-11-21 14:54:33 | 显示全部楼层
似乎是c和cpp文件混合编译的问题。 把字体文件的c改成cpp就可以了。非常奇怪
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106833
QQ
发表于 2019-11-21 15:03:39 | 显示全部楼层
caicaptain2 发表于 2019-11-21 14:54
似乎是c和cpp文件混合编译的问题。 把字体文件的c改成cpp就可以了。非常奇怪

把你的字体文件发上来,我试试。
回复

使用道具 举报

334

主题

2033

回帖

3040

积分

版主

Rank: 7Rank: 7Rank: 7

积分
3040
 楼主| 发表于 2019-11-21 15:26:40 | 显示全部楼层
本帖最后由 caicaptain2 于 2019-11-21 15:31 编辑
eric2013 发表于 2019-11-21 15:03
把你的字体文件发上来,我试试。

Hi,我以emwin模拟器为基础,在尝试修改串口上位机的VC6.0的软件。 还不清楚在这个平台上怎么显示汉字。
请帮我看看这个附件的项目代码,怎么在TEXT控件上随便显示几个汉字。 谢谢!
SeggerEval_WIN32_MSVC_MinGW_GUI_V542.zip (13.6 MB, 下载次数: 6)

附件是完整的项目文件,VC6.0已经完整编译通过了的。

回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106833
QQ
发表于 2019-11-21 17:25:09 | 显示全部楼层
caicaptain2 发表于 2019-11-21 15:26
Hi,我以emwin模拟器为基础,在尝试修改串口上位机的VC6.0的软件。 还不清楚在这个平台上怎么显示汉字。  ...

你这个是FontCvt生成的,不方便在VC6.0里面使用。

使用我这个吧:

上传两个早年uCGUI时代的汉字生成小软件
http://www.armbbs.cn/forum.php?m ... id=21302&fromuid=58
(出处: 硬汉嵌入式论坛)

或者群友的,用GBK

做了一个emWin字体生成器
http://www.armbbs.cn/forum.php?m ... 7428&fromuid=58
(出处: 硬汉嵌入式论坛)




回复

使用道具 举报

334

主题

2033

回帖

3040

积分

版主

Rank: 7Rank: 7Rank: 7

积分
3040
 楼主| 发表于 2019-11-22 08:17:28 | 显示全部楼层
eric2013 发表于 2019-11-21 17:25
你这个是FontCvt生成的,不方便在VC6.0里面使用。

使用我这个吧:

感谢! 我又仔细看了例程,里面的字库和emwin的配套转换工具不一样。
UcGUIFont2.2这个软件的几个选项都是灰色的?“导出整个GBK”,“导出指定” ??
尝试了emwin字体生成器后,感觉不错。 略有遗憾的是,这个工具点击选用常用汉字后,感觉都是些生僻字。。“哈哈”这个字都不在常用字里面。。。
回复

使用道具 举报

334

主题

2033

回帖

3040

积分

版主

Rank: 7Rank: 7Rank: 7

积分
3040
 楼主| 发表于 2019-11-22 08:55:51 | 显示全部楼层
本帖最后由 caicaptain2 于 2019-11-22 08:58 编辑
caicaptain2 发表于 2019-11-21 14:54
似乎是c和cpp文件混合编译的问题。 把字体文件的c改成cpp就可以了。非常奇怪

自己琢磨了一下午,终于解决了。
故事缘由是这样子的,论坛有个emwin模拟器做的串口通讯上位机,我也想学着用一下。但是没有VC和C++的基础。这个例程的代码文件是cpp(C++)的。整合到emwin模拟器里面,link总是出问题。
原因是:cpp文件编译后和C文件的编译规则有区别。cpp和c文件里面互相调用变量和函数的时候就会找不到。所以,cpp里面调用c中的变量时需要加入external c {}这样的语法才行。
解决办法,把例程的cpp改成c文件,修改里面的c++关键字bool为c里面的char就好了。 然后又可以回归到熟悉的普通c了。
虽然很脑残的问题,对于只搞单片机的工程师还是有点参考意义的。特地写出来,或许对一些人有用。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-6 20:21 , Processed in 0.185563 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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