gpt4 book ai didi

c++ - 为什么在构建 std::string 时会出现 R6030 错误?

转载 作者:太空宇宙 更新时间:2023-11-04 15:20:29 25 4
gpt4 key购买 nike

大家好,感谢您花时间看我的问题。我正在制作的这个程序在运行时出现错误,我已将错误范围缩小到一个 l

std::string str(id.Description, (sizeof(id.Description)/sizeof(id.Description[0])));

这里是完整的函数

bool isItNvidia()
{
IDirect3D9* pD3D9 = NULL;
pD3D9 = Direct3DCreate9( D3D_SDK_VERSION );
if(pD3D9)
{
UINT dwAdapterCount = pD3D9->GetAdapterCount();
for( UINT iAdapter = 0; iAdapter < dwAdapterCount; iAdapter++ )
{
D3DADAPTER_IDENTIFIER9 id;
ZeroMemory( &id, sizeof( D3DADAPTER_IDENTIFIER9 ) );
pD3D9->GetAdapterIdentifier( iAdapter, 0, &id );

//std::cout<< id.Description<<std::endl;
/*
wchar_t wtext[MAX_DEVICE_IDENTIFIER_STRING];
std::mbstowcs(wtext, id.Description, strlen(id.Description)+1);
LPWSTR ptr = wtext;
MessageBox(NULL, ptr, L"nigg", MB_OK);
*/

std::string str(id.Description, (sizeof(id.Description)/sizeof(id.Description[0])));
std::string comp="NVIDIA";


if(str.find(comp) != std::string::npos)
{
return true;
Beep(300, 500);
}


}
}
return false;

pD3D9->Release();
delete pD3D9;
}

您还需要 d3d9.h 和 d3d9.lib 文件。

我不知道为什么要这样做id.Description是一个字符数组

如果有人能提供帮助,我将不胜感激。谢谢

最佳答案

只需用std::string str(id.Description);初始化字符串

解释:

可能调用了此构造函数,但这不是您想要的:

basic_string( const basic_string& other, 
size_type pos,
size_type count = std::basic_string::npos,
const Allocator& alloc = Allocator() );

pos 参数将产生垃圾地址。

关于c++ - 为什么在构建 std::string 时会出现 R6030 错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20609395/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com