BUAA-Soft-2023-Summer / Soft-Summer-2023

北航软件学院 2023 夏《程序设计实践》 小学期仓库
18 stars 0 forks source link

关于C++中std::map<std::string,std::string>使用爆错的问题 #10

Closed guangmingzhengda closed 1 year ago

guangmingzhengda commented 1 year ago

命名中均用英文字符命名,输出时为了减少转化的工作量,我在Globals.cpp中开了一个std::map<std::string,std::string> Trans的map,但是在赋值Trans[L"Caocao"]=L"曹操"时报错 QQ截图20230825214455 这种做法我在Dev中使用是无误的,请问问题是在于定义的位置不对,抑或是其他问题呢? 谢谢学长!

Lord-Turmoil commented 1 year ago

我这里似乎 Dev-C++(使用 -std=c++11)和 Visual Studio 都不可以。

因为 std::map 不是数组,所以可能不支持这样的写法,把它封装到一个初始化函数里吧。

image

image

guangmingzhengda commented 1 year ago

我这里似乎 Dev-C++(使用 -std=c++11)和 Visual Studio 都不可以。

因为 std::map 不是数组,所以可能不支持这样的写法,把它封装到一个初始化函数里吧。

image

image

谢谢学长,按照此方式可以顺利通过编译,但是却无输出我初始化 Trans[L"Wufangjv"] = L"无防具";后,使用如下代码: QQ截图20230826110610 却得到如下效果: QQ截图20230826110754 请问是我在初始化中的问题还是使用时的问题呢?

Lord-Turmoil commented 1 year ago

提供的代码片段太少,我无法得知你初始化的信息。

guangmingzhengda commented 1 year ago

main.cpp中进行了初始化,在Globals.h中进行了定义 QQ截图20230826111911 QQ截图20230826111923

Lord-Turmoil commented 1 year ago

打断点呀,看看这个地方的值是什么。

image

还有,用这个 setbkmode(TRANSPARENT) 设置文字背景为透明色。

guangmingzhengda commented 1 year ago

好的谢谢学长!我发现在main中初始化后,在我调用时Trans又清空了,目前不知道是什么原因,但是有一种解决办法是在GameInterface.cpp中再进行初始化,可以解决当前问题,谢谢学长!