摘要:
待分析Demo代码:int add(int a,int b){ return a+b;}int main(){ int a=0xaa; int b=0xbb; printf("a+b=%d",add(a,b));} 编译,不优化这里参数0xBB,0xAA压栈 push eax,push ecx说明这里默认的调用约定是__stdcall然后去调用函数int add(int,int)Ollydbg F7执行进add函数调用前两个参数0xBB,0xAA已经入栈这里前两行,ebp即esp,是栈顶。ebp+8 是 0xAAebp+C 是 0xBB做加法后返回,retn自动恢复堆栈平衡 阅读全文
摘要:
wchar_t wstr[100]=L"wstr";char str[100];wcstombs(str,wstr,100);//宽字符转多字节mbstowcs(wstr,str,100);//多字节转宽字符 也可以使用:MultiByteToWideChar和WideCharToMultiByte参考:http://blog.csdn.net/iamoyjj/archive/2011/05/06/6400877.aspx 阅读全文