GuiHook95是一个16位的程序,它是这样把自己的Textout函数代替系统的Textout函数:<br>InstallProbe2(void)<br>{<br> WORD selCS , selDS ;//cs,ds为textout段地址<br> char FAR * lpJmp ;//自定义函数的地址<br> char FAR * lpCode ;<br><br> selCS = FP_SEG((void FAR *)TextOut);//取程序段地址<br> selDS = AllocCStoDSAlias(selCS ) ;//取数据段地址<br> lpCode = MK_FP ( selDS , FP_OFF( (void FAR * )TextOut ) ) ;//得到Textout函数的编译地址<br> _fmemcpy( OldCode2 , lpCode , 5 );//将机器码地址保存<br> lpCode[0] = 0xEA ;//标志<br> lpJmp = (char FAR * )&Jmp2Me2;//Jmp2me2为自己的textout函数指针<br> lpCode[1]=lpJmp[0];<br> lpCode[2]=lpJmp[1];<br> lpCode[3]=lpJmp[2];<br> lpCode[4]=lpJmp[3];<br>//把自己的函数地址代替系统的textout函数地址<br> FreeSelector(selDS );<br> return TRUE;<br>}<br>简单一句话,用自己的函数地址代替系统Textout的函数地址,<br>但在Win32下 FP_SEG,MK_FP根本找不到,怎么办?<br>大虾们快帮帮我啊!