【发布时间】:2011-03-23 14:57:44
【问题描述】:
我正在处理一个包含许多 HTML 资源的 Visual Studio C++ 项目。它们由如下所示的方法加载:
LPCTSTR loadHTML(HMODULE hModule, LPCTSTR sResourceName)
{
HRSRC hResource = FindResource(hModule, sResourceName, RT_HTML);
if(!hResource)
return 0;
HGLOBAL hResourceData = LoadResource(hModule, hResource);
if(!hResourceData)
return 0;
return reinterpret_cast<LPCTSTR>(LockResource(hResourceData));
}
大多数时候,这工作正常。但是,有时它会返回与另一个资源连接的资源。发生这种情况时,这是该构建中的一个持久问题。我可以通过在有问题的资源中添加一些空白行然后重建项目来“修复”它。它会定期发生,即使资源没有改变。
我很想了解它发生的原因。有其他人遇到过吗?我的资源是否有一些特殊的东西导致了问题?我的代码错了吗?
遗憾的是,我不愿意在此处发布示例资源;它们很长,而且这是专有软件。
【问题讨论】:
-
您可以通过进行完整的解决方案重建(清理+构建)来“修复”它而不是触及资源文件吗?不知道是不是VS缓存问题。
-
@Tergiver:遇到问题时我还没有尝试完全重建,主要是因为该项目需要永远从头开始构建。但是,为了科学的利益,我会在下次发生的时候开始。
标签: winapi visual-c++ resources