Tôi đang làm việc với dự án C đang sử dụng DirectX và tôi đã gặp sự cố. Một số cuộc gọi DX yêu cầu đối tượng IID
, thường được tạo với __uuidof
. Một điều này là cần thiết để tạo một RenderTargetView. Các mẫu DirectX/hướng dẫn thực hiện điều này:Thay thế cho __uuidof trong C
ID3D11Texture2D* pBackBuffer = NULL;
hr = g_pSwapChain->GetBuffer(0, __uuidof(ID3D11Texture2D), (LPVOID*)&pBackBuffer);
Khi tôi cố gắng gọi __uuidof
trong mã C của tôi, tôi nhận được một lỗi biên dịch: Error 19 error C4233: nonstandard extension used : '__uuidof' keyword only supported in C++, not C
. DirectX có một giao diện C, vì vậy tôi tưởng tượng phải có một cách để làm điều này, nhưng tôi không có ý tưởng nó sẽ là gì. Có ai biết không?
C lập trình viên thường chỉ xác định UUID là một hằng số ở đâu đó trong tệp nguồn của họ. –