大家好,感謝您花時間看我的問題。 我有這個節目,我想提出的運行過程中出現錯誤,我已經把範圍縮小到1升當我構建std :: string時,爲什麼會出現這個R6030錯誤?
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是一個字符數組
如果有人可以幫助我將不勝感激。 感謝
'Description'的類型爲char [MAX_DEVICE_IDENTIFIER_STRING]',因此不需要指定它的大小。 – Raxvan
函數在return語句後沒有被執行,所以你有一些相當重要的不可達代碼。我會建議在追蹤其他錯誤之前解決這個問題。 –
感謝您的答案,但奇怪的是,這與配置鏈接器的入口點有關。當我評論說,線條雖然工作。 – user2837329