- 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-игр за авторством одного известного разработчика.
guest 26.09.2014 07:12 # 0
Стандартный класс-обёртка для динамической работы с DLL.
guest 27.09.2014 22:42 # −5
guest 27.09.2014 22:43 # −5
3.14159265 28.09.2014 20:04 # +1
roman-kashitsyn 26.09.2014 08:44 # +1
А вообще прям красиво с загрузкой модулей сложно сделать.
guest 26.09.2014 08:52 # +1
+100500, тоже не нашёл говна в коде.
Аффтар похоже обожрался и заснул где-то на вокзале в выгребной яме, и ему теперь везде говно мерещится.
kyzmitch 26.09.2014 09:04 # +1
bormand 26.09.2014 09:21 # −1
Хедеры тут ничем не помогут.
inkanus-gray 26.09.2014 17:47 # +1
tirinox 26.09.2014 09:58 # +2
guest 26.09.2014 11:21 # 0
Скорее всего, аффтар просто школотодебил и не слышал ничего про динамическую работу с ДЛЛ, у него мозгов не хватает разобраться, что это за код, и он ставит ярлык - говно.
Xom94ok 26.09.2014 14:10 # +2
guest 26.09.2014 14:53 # −1
guest 26.09.2014 17:04 # 0
Elvenfighter 26.09.2014 11:41 # 0
bormand 26.09.2014 12:29 # +4
Vasiliy 26.09.2014 12:39 # +2
Xom94ok 26.09.2014 12:43 # 0
Elvenfighter 26.09.2014 13:55 # 0
Vasiliy 26.09.2014 14:00 # 0
Elvenfighter 26.09.2014 13:54 # +4
Будь силён духом, и никакая ММОРПГ тебя не зацепит.
bormand 26.09.2014 14:38 # 0
chtulhu 26.09.2014 18:35 # +4
Хотел бы чтобы вы сделали игру, MMORPG суть такова... Пользователь может репорить баги, писать код, запилить свой проект или стать великодушным диктатором. И если пользователь пишет код, то он отправляет патчи, багзиллы набигают программисты и тролли. Можно запилить что-то полезное.
P.S. Я джва года хочу такую игру.
bormand 26.09.2014 19:54 # 0
guest 26.09.2014 12:48 # 0
bormand 26.09.2014 13:00 # 0
3.14159265 26.09.2014 13:56 # +1
А вот в DX12 и новом OGL обещают сильно снизить оверхед на передачу данных между процом и видео.
Так как мне проплатила амд, то они долго делали штуку называющуюся Mantle плюс единое адресное пространство и zero-cost mem copy .
guest 26.09.2014 13:57 # 0
Elvenfighter 26.09.2014 13:52 # 0
Еще один пункт не кросс-платформенности
guest 26.09.2014 13:58 # 0
inkanus-gray 26.09.2014 17:49 # 0
kipar 26.09.2014 19:09 # +1
Elvenfighter 26.09.2014 22:11 # 0
kipar 26.09.2014 22:37 # 0
bormand 26.09.2014 23:34 # 0
В каждой шутке есть доля шутки.
guest 26.09.2014 11:50 # +1
Dummy00001 26.09.2014 16:39 # 0
- запихиваешь указатели на функции в глобальную структуру, экспортишь структуру
- запихиваешь указатели на функции в глобальный массив, эспортишь массив
потому что простыни GetProcAddress() - это говно. массив проще - но нельза типизировать. сгенерить автоматом структуру с правильно-типизироваными указателями сложнее - но в последствии меньше граблей.
bormand 26.09.2014 16:41 # +2
guest 26.09.2014 17:05 # −1
Vasiliy 26.09.2014 17:50 # +4
1024-- 26.09.2014 18:16 # +6
kipar 29.09.2014 10:04 # +1
Dummy00001 26.09.2014 19:12 # 0
были в свое время тулзы implib(?) генерить по длл. потом делаешь хидер и юзашь как любую другую либу.
bormand 26.09.2014 19:55 # 0
Dummy00001 26.09.2014 20:23 # +1
Pythoner 26.09.2014 20:29 # 0
Psionic 27.09.2014 09:35 # 0
gost 27.09.2014 11:50 # 0
guest 27.09.2014 14:04 # 0
kegdan 27.09.2014 15:24 # 0