求高手把这个dephi 掺杂汇编 翻译成vb??或者解释下意思也行,感谢!
求高手把这个dephi 掺杂汇编 翻译成vb??或者解释下意思也行,感谢!
function OcrInit:boolean;stdcall ; external 'AdvOCR' ; procedure OcrDone ;stdcall;external 'AdvOCR'; // Destroy procedure OCR_C(var picType:string;var picName:string);stdcall;external 'AdvOCR'; function OCR_identify (picName,types:string):string;var u1,u2,u3,u4:byte;begin asm push picName push types call ocr_c xor ecx,ecx mov cl,byte ptr [eax] mov u1,cl mov cl,byte ptr[eax+1] mov u2,cl mov cl,byte ptr[eax+2] mov u3,cl mov cl,byte ptr[eax+3] mov u4,cl end;result:=chr(u1)+chr(u2)+chr(u3)+chr(u4);end; 调用: b:= 'alibaba';//库中一种识别类型 a:=图片; edit1.Text:= OCR_identify(a,b);
function OcrInit:boolean;stdcall ; external 'AdvOCR' ; procedure OcrDone ;stdcall;external 'AdvOCR'; // Destroy procedure OCR_C(var picType:string;var picName:string);stdcall;external 'AdvOCR'; function OCR_identify (picName,types:string):string; // 迷惑性的参数顺序,实际参数命名应该交换一下var u1,u2,u3,u4:byte;begin asm push picName push types call ocr_c ; stdcall调用, 此处相当于 ocr_c(types, prcName); 所以说上边参数命名很迷惑 xor ecx,ecx ; mov cl,byte ptr [eax] ;因为call ocr_c后返回的结果在eax,看上下文应该是返回一个指针,下面几句的意思是将指针指向的地址随后的四个字节的值分别存放到u1到u4 mov u1,cl mov cl,byte ptr[eax+1] mov u2,cl mov cl,byte ptr[eax+2] mov u3,cl mov cl,byte ptr[eax+3] mov u4,cl end;result:=chr(u1)+chr(u2)+chr(u3)+chr(u4); 将u1到u4四个ascii码转换成4个字符,然后联成字符串,然后返回result。 result在delphi中比较特殊,代表函数的返回值end; 调用: b:= 'alibaba';//库中一种识别类型 a:=图片; edit1.Text:= OCR_identify(a,b); // 这个意思就是将调用ocr_identify后的字符串显示在窗口的text输入框中