使用MFC+GDI编写地图编辑器补充
小宝乱猜
在编写MapEdit时我遇到一个问题,那就是在程序开始时一切正常,但在打开一个地图文件后,程序就会因找不到资源文件而画面混乱。调试了半天才发现是相对路径的问题。
相对路径可以保证程序与资源匹配的问题,但正是它带来了问题。首先应该明确一点,系统最底层只能使用的完整路径(我猜的),即便是相对路径也要与当前路径组合成完整路径之后再使用。
假设我们的MapEdit.exe是放在"d:/MapEditDebug"下的,资源1.bmp就放在"./data"下,当我们选择打开"d:/MapEditDebug/data"下的test.map后,当前路径就变成了"d:/MapEditDebug/data",因此程序会自动搜索"d:/MapEditDebug/data/data/"下的bmp资源文件。而实际上"d:/MapEditDebug/data/data/"是不存在的,程序自然是找不到资源啦。
如果使用的是绝对路径就永远不会出现这种问题啦,但是不够灵活。因此,在程序中自行计算出绝对路径再使用不失为一个好办法。