Programmation DirectX en C?

Auparavant, j’avais déjà créé des applications DirectX dans le langage de programmation C ++. Toutefois, j’aimerais savoir s’il est possible de le faire à l’aide du langage de programmation C.

Merci.

    Oui c’est possible. DirectX expose une interface COM et C est capable de les consumr. Ce ne sera cependant pas une aventure amusante!

    Le compilateur Open Watcom C / C ++ est fourni avec des exemples d’applications DirectX en C ++ et en C. Les deux fonctionnent. Ils sont respectivement sous WATCOM\samples\directx\cpp et WATCOM\samples\directx\c dans OW 1.9.

    Voici à quoi ressemble le code en C ++:

     hr = d3d->GetDeviceCaps(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, &d3dcaps9); hr = d3d->GetAdapterDisplayMode(D3DADAPTER_DEFAULT, &d3ddm); hr = d3d->CreateDevice(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, game_window, D3DCREATE_HARDWARE_VERTEXPROCESSING | D3DCREATE_MULTITHREADED, &d3dpp, &d3d_dev); 

    Et en C:

     hr = IDirect3D9_GetDeviceCaps(d3d, D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, &d3dcaps9); hr = IDirect3D9_GetAdapterDisplayMode(d3d, D3DADAPTER_DEFAULT, &d3ddm); hr = IDirect3D9_CreateDevice(d3d, D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, game_window, D3DCREATE_HARDWARE_VERTEXPROCESSING | D3DCREATE_MULTITHREADED, &d3dpp, &d3d_dev); 

    Vous n’avez pas besoin de faire quelque chose de spécial avec COM en C car il semble y avoir suffisamment de macros que vous pouvez simplement utiliser.

    Vous pouvez utiliser DirectX en C. Des macros spécifiques simplifient l’utilisation de l’interface COM. Cependant, il est beaucoup plus facile d’utiliser C ++.

    Je pense que les bibliothèques DirectX ont des composants uniquement C ++ (cela fait longtemps que je ne les utilise pas et je me souviens du dernier, il contient des classes). Autant vous faciliter la vie et le faire en C ++.

    C’est possible, mais parce que vous ne disposez pas des fonctions de niveau supérieur fournies par C ++, vous rendez la tâche plus difficile pour vous-même.

    J’ai trouvé un tutoriel ici qui traite de DirectX dans ce qui semble être du C (une partie est payée, mais les premiers exemples de base sont gratuits).