由于我写的代码有大量日语解释,所以有时候会变成乱码,特别是换了系统的语言环境时。
今天(20181207)在正常用notepad++去重新编码CardMark.h的文件后,编译文件时却出现了1个失败,查看错误一览时,里面有大量的找不到 成员参数。查看了一下修改文件的时间,回忆了一下操作,只记得改过几段代码,也是无关紧要的,不应该会发生这么严重的错误。所以,把所有改过的还原到修改之前,发现没问题,之后便一个一个测试。后来发现如果变异了CardMark.h的话就会出现问题,这个文件notepad++右下角显示的是Shift-JIS,编码为UTF-8。结果还是出错,突然想着要不变一下UTF-8-BOM,没想到改成UTF-8-BOM后竟然编译成功。我把编译成UTF-8的文件和UTF-8-BOM的文件进行了对比,发现完全一样的文件,但为什么UTF-8的文件编译不成功,而UTF-8-BOM的文件可以编译成功能?我之前转码其他文件的时候也用的UTF-8呀,为什么那个时候没事,今天这个文件有问题呢?
我查找了一下代码,唯一感觉有点奇怪的就是CardMark.h比其他转码的文件多了一种写法。
#error "PCH に対してこのファイルをインクルードする前に 'stdafx.h' をインクルードしてください"
有可能是因为编译时 #error 这一段也会编译在代码中进行解释,所以会出现错误吧。真正的原因等大神来解,或者以后自己在慢慢找吧。先Mark一下。