- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
class C3D
{
public:
//C3D() {} // Constructor
//~C3D() {} // Destructor
void(*init)(float R, float A, float B, float Rmin, float Rmax, float Bmin, float Bmax); // Initialize work with 3D standard camera
void(*setCamera)(int iType); // Set type of camera
void(*setPosition)(float x, float y, float z); // Set position
void(*setRender3D)();
UINT(*addMesh)(LPCWSTR sMesh); // Add Mesh
void(*renderMesh)(UINT idMesh, float x, float y, float z);
void(*renderMeshSubset)(UINT idMesh, UINT idSubset, float x, float y, float z);
void(*renderMeshSubsetRotateX)(UINT idMesh, UINT idSubset, float x, float y, float z, float a);
// простыня указателей на функции урезана
void setHModule(HMODULE hLib)
{
m_hLib = hLib;
(FARPROC &)init = GetProcAddress(m_hLib, "init3D"); // Initialize work with 3D standard camera
(FARPROC &)setCamera = GetProcAddress(m_hLib, "setCamera"); // Set type of camera
(FARPROC &)setPosition = GetProcAddress(m_hLib, "setPosition"); // Set position
(FARPROC &)setRender3D = GetProcAddress(m_hLib, "setRender3D");
(FARPROC &)addMesh = GetProcAddress(m_hLib, "addMesh"); // Add Mesh
(FARPROC &)renderMesh = GetProcAddress(m_hLib, "renderMesh");
(FARPROC &)renderMeshSubset = GetProcAddress(m_hLib, "renderMeshSubset");
(FARPROC &)renderMeshSubsetRotateX = GetProcAddress(m_hLib, "renderMeshSubsetRotateX");
// простыня GetProcAddress урезана
}
protected:
HMODULE m_hLib; // NetWars.dll
};
Некий SDK для MMO-игр за авторством одного известного разработчика.