目前我有一个C++项目模板,其中包含一些预装的图片,在代码里面定义为一个字节数组。我想通过将图像移动到资源中来重新组织项目,但问题是 .rc 脚本只接受 绝对的 路径的图片,因此我不太明白如何才能正确地将它们用于项目模板。我只想把图片文件放在项目目录下的某个地方,然后在项目中引用它们。.rc 脚本,使用 戚 移植的路径。么可能吗?
VS2019社区16.5.4 btw。
UPDATE1.我需要在编译时包含我的资源,因此动态文件管理是不可能的。 我需要在编译时包含我的资源,因此动态文件管理不是一个选项。 我在一个项目中有.rc文件,里面有一些PNG图片。它们是用 绝对的 径如 IDB_PNG1 PNG "D:\\absolute\\path\\to\\file.png"
. 问题是我不能使用路径。相对于项目譬如 IDB_PNG1 PNG "\\path\\inside\\project\\file.png"
,让我的资源在模板中的可移植性为零。
UPDATE2: 我发现的一个可能的解决办法是使用 CustomParameter元素 并在.rc文件中写入路径,如 IDB_PNG1 PNG "$projectpath$\\path\\inside\\project\\file.png"
,然后设置 ReplaceParameters=True
.vstemplate中的.rc文件。但只有 $projectname$ 默认参数,我都不知道绝对路径能不能做到。
UPDATE3(答案)。 谢谢 这个 的问题,我发现有一个未记录的参数 $solutiondirectory$
希望MS不会在以后的版本中放弃它)。所以我干脆把我的资源写成 IDB_PNG1 PNG "$solutiondirectory$\\$projectname$\\path\\inside\\project\\file.png"
然后这些路径会在创建项目时由Visual Studio自动更新。问题解决了!
假设你使用的是.rc文件,在类似图标图片的情况下,是可以的。你可以只用标准库链接到图像文件,然后逐字逐句地读取它,并将其加载到你之前使用的数组中。
如果这个上下文不对,你可以分享一些代码,以便更好的理解。
感谢 这个 的问题,我发现有一个未记录的参数 $solutiondirectory$
希望MS不会在以后的版本中放弃它)。所以我干脆把我的资源写成 IDB_PNG1 PNG "$solutiondirectory$\\$projectname$\\path\\inside\\project\\file.png"
然后这些路径会在创建项目时由Visual Studio自动更新。问题解决了!