我知道ECX寄存器中有一个UNICODE字符串,它是" YODA"。
我想从ECX寄存器中获取完整的字符串并将其存储在C ++变量中。然后我想将变量与字符串" YODA"进行比较。只是为了确认这是我的期望。
我有以下代码:
wchar_t* c;
__asm mov c, ecx
if (wcscmp(c, L"YODA") == 0)
{
MessageBox(0, L"Found", L"Found", MB_ICONEXCLAMATION);
}
else
{
MessageBox(0, c, L"Not Found", MB_ICONEXCLAMATION);
}
然而,它似乎没有正确地将字符串插入c中。 我该怎么办?
答案 0 :(得分:2)
只需几行代码就会出现大量问题:
wchar_t
,而不是char
。this
。我真诚地怀疑您关于登记册内容的信息。strcmp
和co。特别需要wcscmp
。另外,您不希望将YODA
写为unicode字符串,而是L"YODA"
。答案 1 :(得分:-1)
试试这个:
WCHAR c[256];
__asm
{
[ecx], ecx
mov [c], ecx
}
if (lstrcmp(c, L"this" == 0)
//your code here