传奇M错误Code11005与Code10036及C++报错修复

来源: 作者: 点击:
Code11005、Code10036 加上弹窗提示 C++ 错误,通常不是游戏文件本身坏了,而是系统运行库缺失、套接字连接没通、端口被占、杀毒把网关或登录器 dll 拦了。单机架设和外网开服都按同一套顺序查:先补运行库,再查端口,再核对 IP,最后关拦截重起服务。

一、C++ 报错先补运行库

传奇M客户端和服务端组件多是老 C++ 编译,缺 MSVCP140.dll、VCRUNTIME140.dll、api-ms-win-crt 一类就会直接弹应用程序错误。

操作步骤:

控制面板 → 程序和功能,看已安装的 Microsoft Visual C++ Redistributable
缺 2015-2022 就去微软官网下合集
64 位系统同时装 x86 和 x64 两个版本
装完重启电脑

只装 x64 不够,很多登录器是 32 位进程,会去调 32 位运行库。

还提示缺 d3dx9_39.dll、xinput1_3.dll、d3dx9_43.dll 这种,再装一次 DirectX 9.0c End-User Runtime,或者用 DirectX 修复工具点检测修复。

精简版系统容易把运行库砍掉,补完还报错建议换原版系统镜像,不建议单下 dll 塞 System32,容易带别的东西。

二、Code11005 处理思路

Code11005 在传奇M环境里多伴随启动闪退、登录中断、C++ 弹窗一起出,主因就三块:

1. 运行库缺失或损坏
按上面一节把 VC++ 合集装了,重启再进。

2. 客户端文件被拦截或缺失
杀软把 Launcher.exe、Game.dll、MSVCP140.dll 移进隔离区就会触发 Code11005。

处理:
打开杀毒隔离区,恢复传奇目录相关文件
整个客户端文件夹加白名单
临时关 Defender 实时保护测一次
还不行就用客户端自带 Repair 或重新解压原始包

3. Winsock 异常
Code11005 有时不是服务端问题,是本机套接字层脏了。

管理员 CMD 执行:
netsh winsock reset
回车后重启电脑。

顺手把 %temp% 里缓存清一下,再起游戏。

三、Code10036 处理思路

Code10036 本质是连接层失败,表现一般是点登录卡住、连不上服务器、网关没响应。

按下面顺序查:

1. 查端口有没有被占用
传奇网关默认端口:
7000 登录网关
7100 游戏网关
7200 选角/角色网关
微端 8000

CMD 里跑:
netstat -ano | findstr "7000 7100 7200"

有 LISTENING 且 PID 不是自己服务端进程,就是被占了。
常见占用源:上次没关干净的 M2、LoginGate 残留进程、迅雷、酷狗、IIS、别的传奇端。

任务管理器 → 详细信息 → 按 PID 找到进程结束掉
结束不掉就重启电脑再起服务端
别把 7000 改成乱七八糟的端口又只改一处,登录器、LoginGate、M2 三处要一致

2. 查 IP 配置
单机必须全写 127.0.0.1:
!Setup.txt
LoginGate.ini
登录器配置器
列表文件

列表格式:
测试服127.0.0.1
7000

外网才填公网 IP 或局域网 IP,而且 LoginGate 监听地址、M2 的 ServerAddr、登录器列表三处要对上,差一位就 Code10036。

别在单机环境填 0.0.0.0 还指望本机登录器连得上,很多端不认。

3. 防火墙和安全软件
Windows Defender 防火墙把 7000/7100/7200 拦了也会卡连接。

临时操作:
控制面板 → Windows Defender 防火墙 → 关闭
再测一次登录
能进就加回规则,把 LoginGate.exe、M2Server.exe、登录器加白名单

云服务器还要去安全组放行 TCP 7000、7100、7200,光本机防火墙关了没用。

4. 服务端没全起
LoginSrv 没起、DBServer 没起、M2 闪退,客户端都会表现成 Code10036 或连接中断。

控制器里至少看这几个在跑:
DBServer
LoginSrv
LoginGate
M2Server
RunGate

哪个窗口红字就先看哪个日志,别只盯登录器。

四、配置文件编码别存成 UTF-8 BOM

用 Notepad++ 改 !Setup.txt、LoginGate.ini、列表文件时,编码选 ANSI 或无 BOM UTF-8。
存成 UTF-8 with BOM 会在文件头加不可见字符,引擎读配置会整段失效,表现就像 IP 对了也连不上。

五、路径和权限

服务端放纯英文路径:
D:\MirServer
别放桌面、别放 D:\传奇服务端、别带空格

登录器右键 → 属性 → 兼容性:
勾以管理员身份运行
Win10/Win11 可勾兼容 Windows 7

六、完整排查顺序(单机最稳)

关掉所有 M2、LoginGate、登录器
卸掉残缺运行库,重装 VC++ 2015-2022 x86+x64
装 DirectX 9.0c
管理员 CMD 跑 netsh winsock reset,重启
服务端移到 D:\MirServer 纯英文路径
杀毒把整个目录加白名单,关防火墙测
LoginGate.ini 确认 GatePort=7000、IP=127.0.0.1
登录器配置器填 127.0.0.1:7000 重新生成
CMD 查 netstat -ano,7000 没被占
顺序起 DBServer → LoginSrv → LoginGate → M2 → RunGate
登录器管理员运行

七、现象对照

弹 C++ 应用程序错误:缺 VC++ 运行库、msvcp140 丢失
Code11005:运行库坏、客户端 dll 被删、winsock 脏
Code10036:7000 被占、IP 不对、防火墙拦、LoginSrv 没起
点登录没反应:LoginGate 没监听
卡连接服务器:端口不通或列表 IP 错
能出列表但进不去:网关端口 7100 没通
杀软加了还拦:隔离区没恢复,重启后文件又被删

八、外网多一项

外网开服除了上面这些,还要:
路由器端口映射 7000/7100/7200 到本机内网 IP
云主机安全组入站放行
登录器列表填公网 IP
!Setup.txt 和 LoginGate 监听别写死 127.0.0.1,写 0.0.0.0 或公网 IP
列表文件能被登录器访问(本地 txt 外网读不到)

只改登录器不映射端口,必 Code10036。

多数情况 Code11005 是运行库,Code10036 是 7000 被占或 IP 没统一。先装 VC++ 合集,再 netstat 查一遍端口,LoginGate 起没起一眼能看出来,不用重下整个端。