Помогите! Как создать программу и библиотеку для подключения mpq к warcraft как у близзардов, просто срочно нужно, помогите, кто может, поделитесь опытом.
Принятый ответ
HMODULE address_StormBase;
uintptr_t address_OpenArchive;
template <typename ReturnType, typename FPType, typename A0, typename A1, typename A2, typename A3>
inline ReturnType std_call(FPType fp, A0 a0, A1 a1, A2 a2, A3 a3)
{
typedef ReturnType(__stdcall *TFPAeroFunction)(A0 a0, A1 a1, A2 a2, A3 a3);
return ((TFPAeroFunction)fp)(a0, a1, a2, a3);
}
int SFile_OpenArchive(const char* archiveName, DWORD dwPriority, DWORD dwFlags, HANDLE* pArchiveHandle)
{
return std_call<int>(address_OpenArchive, archiveName, dwPriority, dwFlags, pArchiveHandle);
}
uint32_t mpqLoadPriority = 15;
void OpenArchive(const std::string& fileName, HANDLE* hMpq)
{
SFile_OpenArchive(fileName.c_str(), mpqLoadPriority, 0, hMpq);
mpqLoadPriority++;
}
void main()
{
address_StormBase = GetModuleHandle("Storm.dll");
address_OpenArchive = (uintptr_t)GetProcAddress(address_StormBase, "266");
HANDLE myMpqHandle;
OpenArchive("MyArchive.mpq", &myMpqHandle);
}
`
ОЖИДАНИЕ РЕКЛАМЫ...
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
Отредактирован ENAleksey
ENAleksey:
ClotPh: Я мод делаю, mpq закончил, а подключить нечем(
ENAleksey: ENAleksey: Я видел твой проект, как ты сделал отдельный лаунчер для запуска dll, который подгружает mpq?