我有一个const std::map<const wchar_t*, const char*>
在全局命名空间中。它看起来像这样:
.h 文件
typedef std::map<const wchar_t*, const char*> ShaderMap;
const ShaderMap::value_type rawShaderData[] = {
ShaderMap::value_type( L"BasicShader_Vertex",
"..."
),
);
const int ElementCount = 2; //Length of rawShaderData
extern ShaderMap ShaderProgramsMap;
.cpp 文件
ShaderMap ShaderProgramsMap = ShaderMap( rawShaderData, rawShaderData + ElementCount );
我试图在我的代码中的其他地方访问它,如下所示:
std::wstring shaderKey = std::wstring( name + L"_Vertex" );
...
pShaderData = ShaderProgramsMap[shaderKey.c_str()];
使用调试器,shaderKey
是“BasicShader_vertex”,但pShaderData
为 NULL。比较std::wstring::c_str
to的值有问题const wchar_t*
还是代码中的其他地方有问题?