获取最后一次错误字符串 - GetLastErrorString
函数简介
获取插件内部记录的最后一次错误描述字符串。通常在某个接口调用失败后,配合 GetLastError 一起使用,用于输出更加友好的错误提示信息。
接口名称
GetLastErrorString
DLL调用
long GetLastErrorString()
说明:DLL 实际返回类型为内部定义的
OLA_STRING_RETURN,在 DLL 接口中表现为一个长整型数,表示错误字符串的指针地址。
参数定义:
此函数无参数。
示例:
// 某个接口调用失败后,获取错误ID和错误描述
long img = GetScreenDataPtr(ola, 0, 0, 800, 600);
if (img == 0) {
int32_t err = GetLastError();
long errStrPtr = GetLastErrorString();
if (errStrPtr != 0) {
// 将字符串指针转换为本地字符串使用(示例,实际转换方式视语言/环境而定)
// const char* errMsg = (const char*)errStrPtr;
// printf("错误ID: %d, 描述: %s\n", err, errMsg);
// 使用完毕后必须释放字符串内存
FreeStringPtr(ola, errStrPtr);
} else {
printf("错误ID: %d\n", err);
}
}
返回值
长整型数:
0: 获取失败或当前没有错误信息- 非
0: 错误字符串的指针地址,需要通过FreeStringPtr接口释放内存
常见错误描述示例
内部会根据错误枚举 OLAError 返回对应的中文提示,示例包括但不限于:
- 对应
SUCCESS (0):"操作成功" - 对应
PERMISSION_DENIED (1001):"未登录请先登录,调用Login/Reg接口插件" - 对应
INVALID_ARGUMENT (1002):"参数错误" - 对应
CAPTURE_ERROR (2001):"截图失败" - 对应
LOAD_IMAGE_ERROR (2002):"加载图片失败" - 对应
HWND_NOT_VALID (2003):"窗口句柄无效" - 其他未定义错误码:
"未知错误"
注意事项
- DLL 方式调用时本接口返回的是字符串指针地址,而不是直接可用的字符串内容,需要根据开发语言自行转换。
- 使用完返回的字符串后,必须调用 FreeStringPtr 释放内存,否则会产生内存泄漏。
- 建议在接口调用失败后,优先调用 GetLastError 获取错误码,再调用本接口获取错误描述,便于排查问题。
- 错误字符串仅表示“最后一次错误”的信息,如中途调用了其他接口,错误信息可能被覆盖。
