这是一种常见提示错误的通知,也是比较不好处理的一种错误。
目前已知1.13c会因为IX86ver1.mpq引起这个问题(1.11b比较少见),错误提示为【0xc00000005】,但是ver-IX86-1.mpq则不会,这里可以从CheckRevision入手。下面的代码来自BNETDocs:
代码:
CheckRevision()
extern "C" __declspec(dllexport) std::int32_t __stdcall CheckRevision(const char* filename1, const char* filename2, const char* filename3, const char* formula, std::uint32_t* version, std::uint32_t* checksum, char* exeinfo);
原理部分不再讲述,下面简单说一下通过修改Bnclient.dll规避问题的方法(并不唯一):
代码:
Bnclient.dll 0XCBA0 558BEC83E4F881EC B801000000C20C00 1 // 1.11b
Bnclient.dll 0XD320 558BEC83E4F881EC B801000000C20C00 1 // 1.13c |