Pracuję z projektem C, który używa DirectX i natknąłem się na problem. Niektóre wywołania DX wymagają obiektu IID
, zwykle generowanego z __uuidof
. Jedną z rzeczy, do których jest to wymagane, jest utworzenie RenderTargetView. Próbki DirectX/samouczki to zrobić:Alternatywa dla __uuidof w C
ID3D11Texture2D* pBackBuffer = NULL;
hr = g_pSwapChain->GetBuffer(0, __uuidof(ID3D11Texture2D), (LPVOID*)&pBackBuffer);
Kiedy próbuję zadzwonić __uuidof
w moim kodu C, pojawia się błąd kompilatora: Error 19 error C4233: nonstandard extension used : '__uuidof' keyword only supported in C++, not C
. DirectX ma interfejs C, więc wyobrażam sobie, że musi istnieć sposób, aby to zrobić, ale nie mam pojęcia, co by to było. Ktoś wie?
Programiści C zazwyczaj po prostu definiują UUID jako stałą gdzieś w swoim pliku źródłowym. –