Use
SDL to draw to the screen. You can draw a cube by constructing each side of it with triangles (2 triangles to a side). Do some 3D math to rotate the cube into the correct viewing position and with the correct projection. Then draw each pixel of each triangle to a buffer. If a point was already drawn to the buffer and the z-coordinate is closer than the one that may get drawn, then don't draw the new one. If you want an image on the cube rather than a solid color, map an image to each triangle so each pixel on the screen can be transformed to the corresponding pixel in the image. And if you want to add lighting, create a light source and do some calculations to see how the light interacts with the surface of each triangle and the viewing camera. Finally, once you've finished drawing everything to that buffer, transfer it to the screen using SDL.
That's the hard way of doing it. There are various libraries out there for simplifying things (SDL actually has some ways of simplifying this task). If you are an absolute beginner, I recommend XNA, but then you'd have to learn some C#. OpenGL is another option (I believe SDL is actually built on top of OpenGL).