Guitar Pro 6 打开 Guitar Pro 5 工程文件汉字乱码问题 ver 2.0
下载到Guitar Pro 6工作目录,运行GPCore_To_GBK.exe就可以 修改搜索速度
下载工具
include \masm32\include\masm32rt.inc comment * ----------------------------------------------------- GPCore.dll->49 53 4F 2D 38 38 35 39 2D 31 47 42 4B 00 00 00 00 00 00 00 ISO-8859-1->GBK ver 2.0 Use Quick Search engine ----------------------------------------------------- * .data fname db "GPCore.dll",0 fbakname db "GPCore.dll.bak",0 findStr db "ISO-8859-1",0 fixData db 47H,42H,4BH,00,00,00,00,00,00,00 ;10 findPOS dw 0 .code start: call main exit main proc call openGPCore ret main endp openGPCore proc LOCAL hFile :DWORD LOCAL hBakFile :DWORD LOCAL dSize :DWORD LOCAL hMem :DWORD .if rv(exist,offset fname) != 0 mov hFile, fopen(offset fname) .else print "not find " print offset fname ret .endif mov dSize, fseek(hFile,0,FILE_END) mov hMem, alloc(dSize) mov eax , fseek(hFile,0,FILE_BEGIN) mov eax , fread(hFile,hMem,dSize) mov dword ptr [findPOS] , 0 ;----find ISO-8859-1 mov ecx, dSize push ecx mov edx, hMem push edx mov eax, 10 push eax mov ecx, offset findStr push ecx ;pat patlen textt texttlen call qs ;printf ("%d",dword ptr [findPOS]) .if dword ptr [findPOS] == 0 print "Not find " print offset findStr,13,10 .else ;backup file to GPCore.dll.bak mov hBakFile, fcreate( offset fbakname ) mov eax , fwrite( hBakFile, hMem, dSize) fclose hBakFile ;fix to GBK mov eax , fseek(hFile,dword ptr [findPOS],FILE_BEGIN) mov eax , fwrite( hFile, offset fixData, 10) print "Fix " print offset fname print " success.",13,10 .endif fclose hFile free hMem ret openGPCore endp OUTPUT proc mov eax,dword ptr [esp+4] mov dword ptr [findPOS] , eax ret OUTPUT endp preQsBc proc push ebp mov ebp,dword ptr [esp+10h] push esi mov esi,dword ptr [esp+10h] push edi mov ecx,100h lea eax,[esi+1] mov edi,ebp rep stos dword ptr es:[edi] xor eax,eax test esi,esi jle preQsBc1 mov edi,dword ptr [esp+10h] mov ecx,esi preQsBc2: xor edx,edx mov dl,byte ptr [eax+edi] inc eax mov dword ptr [ebp+edx*4],ecx dec ecx cmp eax,esi jl preQsBc2 preQsBc1: pop edi pop esi pop ebp ret preQsBc endp qs proc sub esp,404h mov ecx,dword ptr [esp+408h] push ebx push ebp mov ebp,dword ptr [esp+414h] lea eax,[esp+0Ch] push eax push ebp push ecx call preQsBc mov eax,dword ptr [esp+428h] add esp,0Ch xor ebx,ebx sub eax,ebp mov dword ptr [esp+8],eax js qs1 mov edx,dword ptr [esp+418h] push esi push edi qs3: mov esi,dword ptr [esp+418h] mov ecx,ebp lea edi,[ebx+edx] xor eax,eax repe cmps byte ptr [esi],byte ptr es:[edi] jne qs2 push ebx call OUTPUT mov edx,dword ptr [esp+424h] add esp,4 qs2: lea eax,[edx+ebp] xor ecx,ecx mov cl,byte ptr [eax+ebx] mov eax,dword ptr [esp+10h] add ebx,dword ptr [esp+ecx*4+14h] cmp ebx,eax jle qs3 pop edi pop esi qs1: pop ebp pop ebx add esp,404h ret qs endp end start下载源码