• 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
    
    下载源码
  • 相关阅读:
    操作系统的一些琐碎知识
    # mysql _linux
    # linux GIT 配置连接
    linux maven 安装
    idea 与 git
    服务器搭建——jenkins构建后应该做什么(3)
    # 服务器搭建——jenkins搭建至构建成功(2)
    # 服务器搭建——入门踩坑 (1)
    # ajax入门(1)
    # heapsort
  • 原文地址:https://www.cnblogs.com/nlsoft/p/3026612.html
Copyright © 2020-2023  润新知