阿尔法()?或其他...调试断言失败,circlemud 游戏
isalpha()? or others... debug assertion failed, circlemud game
请原谅我使用了翻译器。
我是编程初学者
几十年的circlemud正在改造中。虽然已经本地化,可以在VC6.0中实现,没有任何问题,但是随着迁移到VS Community 2019,韩文名字的输入出现了问题。
游戏太老了,韩国的大部分社区都消失了,所以我找不到帮助,就去了那个地方。
我希望我能说好英语,但是...
输入韩语(CP949 或?)会导致 ishanalp() 崩溃。
我加/J编译的时候,韩文输入没有崩溃,就是认不出韩文名字
删除isalpha()部分将允许进入游戏,但打印或存储名称的区域会发生崩溃。
调试断言失败!
文件; isctype.cpp
行:36
表达式:c >= -1 && c < 255
#define ishan(ch) (((ch) & 0xE0) > 0x90)
#define ishanasc(ch) (isascii(ch) || ishan(ch))
#define ishanalp(ch) (isalpha(ch) || ishan(ch))
#define isnhdigit(ch) (!ishan(ch) && isdigit(ch))
#define isnhspace(ch) (!ishan(ch) && isspace(ch))
int _parse_name(char *arg, char *name)
{
int i;
/* skip whitespaces */
for (; isnhspace(*arg); arg++);
for (i = 0; (*name = *arg); arg++, i++, name++)
if (!ishanalp(*arg)) // here debug assertion failed line 36
return 1;
if (!i)
return 1;
return 0;
}
ishanalp(static_cast<unsigned char>(*arg))
应该修复它,对 isnhspace
的调用也有相同的更改。
鲜为人知 is...
字符分类函数不采用 char
参数,而是采用 int
参数,该参数必须具有 unsigned char 值或为 EOF
。如果 char
是有符号类型(通常是这样)并且您有一个负值,那么 is...
函数可能会失败。
我还建议将这些宏重新编码为内联函数。
请原谅我使用了翻译器。
我是编程初学者
几十年的circlemud正在改造中。虽然已经本地化,可以在VC6.0中实现,没有任何问题,但是随着迁移到VS Community 2019,韩文名字的输入出现了问题。
游戏太老了,韩国的大部分社区都消失了,所以我找不到帮助,就去了那个地方。 我希望我能说好英语,但是...
输入韩语(CP949 或?)会导致 ishanalp() 崩溃。 我加/J编译的时候,韩文输入没有崩溃,就是认不出韩文名字
删除isalpha()部分将允许进入游戏,但打印或存储名称的区域会发生崩溃。
调试断言失败!
文件; isctype.cpp 行:36
表达式:c >= -1 && c < 255
#define ishan(ch) (((ch) & 0xE0) > 0x90)
#define ishanasc(ch) (isascii(ch) || ishan(ch))
#define ishanalp(ch) (isalpha(ch) || ishan(ch))
#define isnhdigit(ch) (!ishan(ch) && isdigit(ch))
#define isnhspace(ch) (!ishan(ch) && isspace(ch))
int _parse_name(char *arg, char *name)
{
int i;
/* skip whitespaces */
for (; isnhspace(*arg); arg++);
for (i = 0; (*name = *arg); arg++, i++, name++)
if (!ishanalp(*arg)) // here debug assertion failed line 36
return 1;
if (!i)
return 1;
return 0;
}
ishanalp(static_cast<unsigned char>(*arg))
应该修复它,对 isnhspace
的调用也有相同的更改。
鲜为人知 is...
字符分类函数不采用 char
参数,而是采用 int
参数,该参数必须具有 unsigned char 值或为 EOF
。如果 char
是有符号类型(通常是这样)并且您有一个负值,那么 is...
函数可能会失败。
我还建议将这些宏重新编码为内联函数。