爱技术

 找回密码
 注册会员

QQ登录

只需一步,快速开始

微信登录

微信扫一扫,快速登录

搜索
12
返回列表 发新帖
楼主: nssong
收起左侧

[公告] secureSMS源码发布,想改就改!例如加入基站信息!

[复制链接]
 楼主| 发表于 2005-8-15 00:20:00 | 显示全部楼层
/***********************************************************************
*
* mainCanvas.java
*
* Implementation of konGPS for Siemens SL45i
*
* Copyright (C) 2002-2003 by KoncaOnLine (http://www.konca.com).
*
* Author: Konca Fung (konca@tom.com)
*
* 11.Jan.2004
* Modified by fsclub (Daniel Zhou) from konGPS ver 0.1
* Copyright (C) 2003-2004 by SafetyChina (http://fsclub.xicp.net).
* Author: Daniel Zhou  (6688i@126.com)
*
*
*
* This program may be distributed according to the terms of the GNU
* General Public License, version 2 or (at your option) any later version.
*
* LIC: GPL
* ( http://www.gnu.org/copyleft/gpl.html )
*
***********************************************************************/

package konGPS;

import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
import java.util.Random;

public class mainCanvas extends Canvas implements Runnable
{
  private konGPS midlet;
  private boolean bRunning = true;
  private int nCnt = 0;
  final int nRefreshIntval = 1000;
  private String strAreaID = "0000";
  private String strCellID = "0000";
  private String strSignal = "0";

  public mainCanvas( konGPS midlet )
  {
    this.midlet = midlet;
    Thread canvasThread = new Thread(this);
    canvasThread.start();
  }
  public void paint(Graphics g)
  {
    String myStr;

    g.setColor(0xffffff);
    g.fillRect(0, 0, 100, 80);
    g.setColor(0);
    myStr = Integer.toString(nCnt++) + "    ";
    if( nCnt > 999 ) nCnt = 0;
    g.drawString(myStr, 80, 54, Graphics.LEFT | Graphics.TOP);

    g.drawString("NPS-ver-0.30", 12, 1, Graphics.LEFT | Graphics.TOP);
    g.drawLine(0, 15, 100, 15);
    myStr = "地区:" + strAreaID;
    g.drawString(myStr, 0, 22, Graphics.LEFT | Graphics.TOP);
    myStr = "地址:" + strCellID;
    g.drawString(myStr, 0, 38, Graphics.LEFT | Graphics.TOP);
    myStr = "场强:" + strSignal;
    g.drawString(myStr, 0, 54, Graphics.LEFT | Graphics.TOP);
    g.drawString("fsclub.xicp.net", 5, 68, Graphics.LEFT | Graphics.TOP);
  }
  public void run()
  {
    int nCnt = 0;
    while( bRunning )
    {
      midlet.GetInfo();

      repaint();
//*******************************************************************
//  Add "your AreaID" in this Paragraph just like:
//          if ("your AreaID".equals(midlet.strAreaID))
//            strAreaID = "your Area";
//  "Your Area" should be less than five Chinese characters
//
//  像下面一样,在下一段中加入工模中看到的“区域码”:
//          if ("工模中的区域码".equals(midlet.strAreaID))
//            strAreaID = "你所在的地区";
////只需要改变"工模中的区域编码"和"你所在的地区",其它代码不变;
// "你所在的地区"的中文字数应该小于5;
//*******************************************************************
     int i=0;     while(i<1){
      if ("5328".equals(midlet.strAreaID))
            {strAreaID = "青岛李沧区"; break;}

// Add the programe Codes in the following:
//在这里加入“工模中区域码”确定地区的程序代码:
//********************************************************************





//********************************************************************
      else
        strAreaID = midlet.strAreaID; i++; }
//*******************************************************************
//Add the CellID in this Paragraph just like:
//          if ("your CellID".equals(midlet.strAreaID))
//            strAreaID = "your Address";
//Your Addrss should be less than five Chinese characters;
//  像下面一样,在下一段中加入工模中看到的“基站编号”:
//          if ("工模中的基站编号".equals(midlet.strAreaID))
//            strAreaID = "你所在的地址";
//只需要改变"工模中的基站编号"和"你所在的地址",其它代码不变;
// "你所在的地址"的中文字数应该小于5;
//*******************************************************************
int t=0;  while(t<1) {
    if ("06a5".equals(midlet.strCellID))
          { strCellID = "枣园路"; break;}
    if ("0407".equals(midlet.strCellID))
          {strCellID = "北山";  break;}
// Add the programe Codes in the following:
//在这里加入基站编号确定地址的程序代码:
//********************************************************************





//********************************************************************

        else
           strCellID = midlet.strCellID; t++;
    }

       strSignal = midlet.strSignal;

      synchronized (this) { //等待
        try {
          wait(nRefreshIntval);
        }
        catch (Exception e) {}
      }
    }
  }
  protected void keyPressed(int keyCode)
  {

  }
}
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-8-15 00:21:00 | 显示全部楼层
// Decompiled by Jad v1.5.7g. Copyright 2000 Pavel Kouznetsov.
// Jad home page: http://www.geocities.com/SiliconValley/Bridge/8617/jad.html
// Decompiler options: packimports(3) fieldsfirst ansi
// Source File Name:   GPS6688.java

import javax.microedition.lcdui.*;
import javax.microedition.midlet.MIDlet;

public class GPS6688 extends MIDlet
{

    MainWindow mainwindow;
    public Display dispaly;
    public String strAreaID;
    public String strCellID;
    public String strSignal;
    public byte timeSetting;
    public boolean light;
    public int mapbk;
    public int mapidx;
    public String mapNames[];
    public String mapFiles[];

    public GPS6688()
    {
        strAreaID = "0000";
        strCellID = "0000";
        strSignal = "+00";
        timeSetting = 2;
        light = true;
        mapbk = 1;
        mapidx = 0;
    }

    protected void destroyApp(boolean flag)
    {
        notifyDestroyed();
    }

    protected void pauseApp()
    {
    }

    protected void startApp()
    {
        System.gc();
        mainwindow = new MainWindow(this);
    }

    public void exit()
    {
        destroyApp(false);
    }

    public void setDisplay(Displayable displayable)
    {
        Display.getDisplay(this).setCurrent(displayable);
    }

    public void showAlert(String s)
    {
        Alert alert = new Alert("错误", s, null, AlertType.ERROR);
        alert.setTimeout(-2);
        setDisplay(alert);
    }

    public String[] split(String s, String s1)
    {
        String as[] = null;
        int i = 1;
        int j = 0;
        int k = 0;
        int l = s.indexOf(s1);
        if(l != -1)
        {
            for(; l != -1; l = s.indexOf(s1, l + s1.length()))
                i++;

            as = new String;
            for(int i1 = 0; i1 != -1;)
            {
                i1 = s.indexOf(s1, k);
                if(i1 != -1)
                {
                    as[j++] = s.substring(k, i1);
                    k = i1 + s1.length();
                } else
                {
                    as[j] = s.substring(k);
                }
            }

        } else
        {
            as = new String[1];
            as[0] = s;
        }
        return as;
    }
}
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-8-15 00:22:00 | 显示全部楼层
// Decompiled by Jad v1.5.7g. Copyright 2000 Pavel Kouznetsov.
// Jad home page: http://www.geocities.com/SiliconValley/Bridge/8617/jad.html
// Decompiler options: packimports(3) fieldsfirst ansi
// Source File Name:   GPSRec.java

import com.siemens.mp.game.ExtendedImage;
import com.siemens.mp.io.File;
import java.io.IOException;
import java.io.PrintStream;
import javax.microedition.lcdui.*;

class GPSRec extends Canvas
    implements Runnable
{

    private GPS6688 gps6688;
    private Thread thread;
    private Image bkbuffer;
    private ExtendedImage ei;
    private int ox;
    private int oy;
    private int mx;
    private int my;
    private int biWidth;
    private int biHeight;
    private int direct;
    private boolean running;
    private boolean readytopaint;
    private boolean getinfo;
    private boolean showinfo;
    private boolean loading;
    private File file;
    private int fn;
    private byte rgbq[];
    private byte bh[];
    private int nb;
    private int bpl;
    private byte bw[];
    private String strAreaID;
    private String strCellID;
    private String strSignal;

    public GPSRec(GPS6688 gps6688_1, MainWindow mainwindow)
    {
        bkbuffer = Image.createImage(112, 80);
        ei = new ExtendedImage(bkbuffer);
        ox = 0;
        oy = 0;
        mx = 1736;
        my = 1160;
        biWidth = 0;
        biHeight = 0;
        direct = 0;
        running = true;
        readytopaint = false;
        getinfo = true;
        showinfo = true;
        loading = false;
        file = new File();
        fn = 0;
        rgbq = new byte[8];
        bh = new byte[54];
        nb = 0;
        bpl = 0;
        bw = new byte[1120];
        strAreaID = "0000";
        strCellID = "0000";
        strSignal = "+00";
        gps6688 = gps6688_1;
        try
        {
            fn = file.open(gps6688_1.mapFiles[gps6688_1.mapidx] + ".bmp");
            file.read(fn, bh, 0, 54);
            file.read(fn, rgbq, 0, 8);
            biWidth = (bh[18] >= 0 ? bh[18] : 256 + bh[18]) + ((bh[19] >= 0 ? bh[19] : 256 + bh[19]) << 8);
            biHeight = (bh[22] >= 0 ? bh[22] : 256 + bh[22]) + ((bh[23] >= 0 ? bh[23] : 256 + bh[23]) << 8);
            mx = biWidth >> 1;
            my = biHeight >> 1;
            nb = biWidth % 8 != 0 ? biWidth / 8 + 1 : biWidth / 8;
            bpl = nb + (nb % 4 != 0 ? 4 - nb % 4 : 0);
        }
        catch(Exception exception)
        {
            running = false;
        }
        GetInfo();
        LoadMap(mx, my);
        thread = new Thread(this);
        thread.start();
        readytopaint = true;
        repaint();
    }

    public void unloadGPSRec()
    {
        running = false;
    }

    protected void keyPressed(int i)
    {
        if(!readytopaint)
            return;
        while(loading) ;
        switch(getGameAction(i))
        {
        case 1: // '\001'
            direct = 1;
            break;

        case 6: // '\006'
            direct = 2;
            break;

        case 2: // '\002'
            direct = 3;
            break;

        case 5: // '\005'
            direct = 4;
            break;
        }
        switch(i)
        {
        case 50: // '2'
            direct = 5;
            break;

        case 56: // '8'
            direct = 6;
            break;

        case 52: // '4'
            direct = 7;
            break;

        case 54: // '6'
            direct = 8;
            break;

        case 53: // '5'
            showinfo = !showinfo;
            direct = 9;
            break;

        case 48: // '0'
            getinfo = !getinfo;
            break;
        }
    }

    protected void keyRepeated(int i)
    {
        keyPressed(i);
    }

    protected void keyReleased(int i)
    {
        direct = 0;
    }

    public void paint(Graphics g)
    {
        if(!readytopaint)
            return;
        ei.setPixels(bw, 0, 0, 112, 80);
        Graphics g1 = bkbuffer.getGraphics();
        for(int i = 44; i <= 48; i++)
            ei.setPixel(i, 40, (byte)(ei.getPixel(i, 40) != 0 ? 0 : 1));

        for(int j = 52; j <= 56; j++)
            ei.setPixel(j, 40, (byte)(ei.getPixel(j, 40) != 0 ? 0 : 1));

        for(int k = 34; k <= 38; k++)
            ei.setPixel(50, k, (byte)(ei.getPixel(50, k) != 0 ? 0 : 1));

        for(int l = 42; l <= 46; l++)
            ei.setPixel(50, l, (byte)(ei.getPixel(50, l) != 0 ? 0 : 1));

        if(showinfo)
        {
            g1.setColor(255, 255, 255);
            g1.fillRect(5, 66, 90, 12);
            g1.setColor(0, 0, 0);
            g1.drawRect(5, 66, 90, 12);
            Font font = Font.getFont(0, 0, 8);
            g1.setFont(font);
            g1.drawString(strAreaID + " " + strCellID + " " + strSignal + " " + (getinfo ? "V" : "X"), 7, 68, 20);
        }
        g.drawImage(bkbuffer, 0, 0, 20);
    }

    private void MapView(int i, int j)
    {
        while(loading) ;
        loading = true;
        if(ox != i && oy != j)
            LoadMap(i, j);
        else
        if(ox != i)
            LoadMapX(i, j);
        else
        if(oy != j)
            LoadMapY(i, j);
        loading = false;
    }

    private void LoadMapX(int i, int j)
    {
        int k = 0;
        int l = 0;
        if(i > ox)
            try
            {
                byte abyte0[] = new byte[bpl * 40];
                k = file.seek(fn, 62 + (biHeight - (j + 79)) * bpl + (ox + 112) / 8);
                for(int i1 = j + 79; i1 >= j; i1 -= 40)
                {
                    for(int k1 = 0; k1 < 40; k1++)
                        System.arraycopy(bw, (i1 - k1 - j) * 14 + (i - ox) / 8, bw, (i1 - k1 - j) * 14, 14 - (i - ox) / 8);

                    l = file.read(fn, abyte0, 0, abyte0.length);
                    if(bh[46] == gps6688.mapbk)
                    {
                        for(int i2 = 0; i2 < abyte0.length; i2 += bpl)
                        {
                            for(int i3 = i2; i3 < i2 + (i - ox) / 8; i3++)
                                abyte0[i3] = (byte)(~abyte0[i3]);

                        }

                    }
                    for(int j2 = 0; j2 < 40; j2++)
                        System.arraycopy(abyte0, j2 * bpl, bw, ((i1 - j2 - j) * 14 + 14) - (i - ox) / 8, (i - ox) / 8);

                }

                abyte0 = null;
            }
            catch(IOException ioexception)
            {
                gps6688.showAlert("r1=" + k + " r2=" + l);
                System.out.println("IOException: " + ioexception.getMessage());
                System.out.println("r1=" + k + " r2=" + l);
            }
        else
            try
            {
                byte abyte1[] = new byte[bpl * 40];
                k = file.seek(fn, 62 + (biHeight - (j + 79)) * bpl + i / 8);
                for(int j1 = j + 79; j1 >= j; j1 -= 40)
                {
                    for(int l1 = 0; l1 < 40; l1++)
                        System.arraycopy(bw, (j1 - l1 - j) * 14, bw, (j1 - l1 - j) * 14 + (ox - i) / 8, 14 - (ox - i) / 8);

                    l = file.read(fn, abyte1, 0, abyte1.length);
                    if(bh[46] == gps6688.mapbk)
                    {
                        for(int k2 = 0; k2 < abyte1.length; k2 += bpl)
                        {
                            for(int j3 = k2; j3 < k2 + (ox - i) / 8; j3++)
                                abyte1[j3] = (byte)(~abyte1[j3]);

                        }

                    }
                    for(int l2 = 0; l2 < 40; l2++)
                        System.arraycopy(abyte1, l2 * bpl, bw, (j1 - l2 - j) * 14, (ox - i) / 8);

                }

                abyte1 = null;
            }
            catch(IOException ioexception1)
            {
                gps6688.showAlert("r1=" + k + " r2=" + l);
                System.out.println("IOException: " + ioexception1.getMessage());
                System.out.println("r1=" + k + " r2=" + l);
            }
    }

    private void LoadMapY(int i, int j)
    {
        int k = 0;
        int l = 0;
        if(j > oy)
        {
            if(j - oy == 8)
                try
                {
                    byte abyte0[] = new byte[bpl * 8];
                    System.arraycopy(bw, (j - oy) * 14, bw, 0, 14 * (80 - (j - oy)));
                    k = file.seek(fn, 62 + (biHeight - (j + 79)) * bpl + i / 8);
                    for(int i1 = j + 79; i1 > (j + 79) - (j - oy); i1 -= 8)
                    {
                        l = file.read(fn, abyte0, 0, abyte0.length);
                        if(bh[46] == gps6688.mapbk)
                        {
                            for(int i2 = 0; i2 < abyte0.length; i2 += bpl)
                            {
                                for(int k3 = i2; k3 < i2 + 14; k3++)
                                    abyte0[k3] = (byte)(~abyte0[k3]);

                            }

                        }
                        for(int j2 = 0; j2 < 8; j2++)
                            System.arraycopy(abyte0, j2 * bpl, bw, (i1 - j2 - j) * 14, 14);

                    }

                    abyte0 = null;
                }
                catch(IOException ioexception)
                {
                    gps6688.showAlert("r1=" + k + " r2=" + l);
                    System.out.println("IOException: " + ioexception.getMessage());
                    System.out.println("r1=" + k + " r2=" + l);
                }
            else
                try
                {
                    byte abyte1[] = new byte[bpl];
                    System.arraycopy(bw, (j - oy) * 14, bw, 0, 14 * (80 - (j - oy)));
                    k = file.seek(fn, 62 + (biHeight - (j + 79)) * bpl + i / 8);
                    for(int j1 = j + 79; j1 > (j + 79) - (j - oy); j1--)
                    {
                        l = file.read(fn, abyte1, 0, abyte1.length);
                        if(bh[46] == gps6688.mapbk)
                        {
                            for(int k2 = 0; k2 < abyte1.length; k2++)
                                abyte1[k2] = (byte)(~abyte1[k2]);

                        }
                        System.arraycopy(abyte1, 0, bw, (j1 - j) * 14, 14);
                    }

                    abyte1 = null;
                }
                catch(IOException ioexception1)
                {
                    gps6688.showAlert("r1=" + k + " r2=" + l);
                    System.out.println("IOException: " + ioexception1.getMessage());
                    System.out.println("r1=" + k + " r2=" + l);
                }
        } else
        if(oy - j == 8)
            try
            {
                byte abyte2[] = new byte[bpl * 8];
                System.arraycopy(bw, 0, bw, (oy - j) * 14, 14 * (80 - (oy - j)));
                k = file.seek(fn, 62 + (biHeight - (oy - 1)) * bpl + i / 8);
                for(int k1 = oy - 1; k1 >= j; k1 -= 8)
                {
                    l = file.read(fn, abyte2, 0, abyte2.length);
                    if(bh[46] == gps6688.mapbk)
                    {
                        for(int l2 = 0; l2 < abyte2.length; l2 += bpl)
                        {
                            for(int l3 = l2; l3 < l2 + 14; l3++)
                                abyte2[l3] = (byte)(~abyte2[l3]);

                        }

                    }
                    for(int i3 = 0; i3 < 8; i3++)
                        System.arraycopy(abyte2, i3 * bpl, bw, (k1 - i3 - j) * 14, 14);

                }

                abyte2 = null;
            }
            catch(IOException ioexception2)
            {
                gps6688.showAlert("r1=" + k + " r2=" + l);
                System.out.println("IOException: " + ioexception2.getMessage());
                System.out.println("r1=" + k + " r2=" + l);
            }
        else
            try
            {
                byte abyte3[] = new byte[bpl];
                System.arraycopy(bw, 0, bw, (oy - j) * 14, 14 * (80 - (oy - j)));
                k = file.seek(fn, 62 + (biHeight - (oy - 1)) * bpl + i / 8);
                for(int l1 = oy - 1; l1 >= j; l1--)
                {
                    l = file.read(fn, abyte3, 0, abyte3.length);
                    if(bh[46] == gps6688.mapbk)
                    {
                        for(int j3 = 0; j3 < abyte3.length; j3++)
                            abyte3[j3] = (byte)(~abyte3[j3]);

                    }
                    System.arraycopy(abyte3, 0, bw, (l1 - j) * 14, 14);
                }

                abyte3 = null;
            }
            catch(IOException ioexception3)
            {
                gps6688.showAlert("r1=" + k + " r2=" + l);
                System.out.println("IOException: " + ioexception3.getMessage());
                System.out.println("r1=" + k + " r2=" + l);
            }
    }

    private void LoadMap(int i, int j)
    {
        int k = 0;
        int l = 0;
        try
        {
            byte abyte0[] = new byte[bpl * 40];
            k = file.seek(fn, 62 + (biHeight - (j + 79)) * bpl + i / 8);
            for(int i1 = j + 79; i1 >= j; i1 -= 40)
            {
                l = file.read(fn, abyte0, 0, abyte0.length);
                if(bh[46] == gps6688.mapbk)
                {
                    for(int j1 = 0; j1 < abyte0.length; j1 += bpl)
                    {
                        for(int l1 = j1; l1 < j1 + 14; l1++)
                            abyte0[l1] = (byte)(~abyte0[l1]);

                    }

                }
                for(int k1 = 0; k1 < 40; k1++)
                    System.arraycopy(abyte0, k1 * bpl, bw, (i1 - k1 - j) * 14, 14);

            }

            abyte0 = null;
        }
        catch(IOException ioexception)
        {
            gps6688.showAlert("r1=" + k + " r2=" + l);
            System.out.println("r1=" + k + " r2=" + l);
        }
    }

    public void recordInfo()
    {
        while(loading) ;
        int i = mx + 50;
        int j = my + 40;
        String s = "";
        String s1 = "";
        if(i < 1000)
            s = "0";
        if(i < 100)
            s = "00";
        if(i < 10)
            s = "000";
        s = s + i;
        if(j < 1000)
            s1 = "0";
        if(j < 100)
            s1 = "00";
        if(j < 10)
            s1 = "000";
        s1 = s1 + j;
        String s2 = "";
        if(gps6688.mapidx < 1000)
            s2 = "0";
        if(gps6688.mapidx < 100)
            s2 = "00";
        if(gps6688.mapidx < 10)
            s2 = "000";
        s2 = s2 + gps6688.mapidx;
        byte abyte0[] = new byte[2];
        abyte0[0] = 13;
        abyte0[1] = 10;
        String s3 = new String(abyte0);
        int k = -1;
        try
        {
            File file1 = new File();
            File _tmp = file1;
            if(File.exists("areas.ini") >= 0)
            {
                int l = file1.open("areas.ini");
                if(file1.length(l) >= 11)
                {
                    byte abyte1[] = new byte[11];
                    for(int j1 = 0; j1 < file1.length(l) / 11; j1++)
                    {
                        file1.read(l, abyte1, 0, 11);
                        String s6 = new String(abyte1);
                        if(!s6.equals(s2 + "," + strAreaID + s3))
                            continue;
                        k = j1 * 11;
                        break;
                    }

                }
                if(k >= 0)
                {
                    String s4 = s2 + "," + strAreaID + s3;
                    file1.seek(l, k);
                    file1.write(l, s4.getBytes(), 0, 11);
                    file1.close(l);
                } else
                {
                    file1.close(l);
                    File _tmp1 = file1;
                    File.debugWrite("areas.ini", s2 + "," + strAreaID + s3);
                }
            } else
            {
                File _tmp2 = file1;
                File.debugWrite("areas.ini", s2 + "," + strAreaID + s3);
            }
            file1 = null;
        }
        catch(Exception exception)
        {
            System.out.println("Exception :" + exception);
        }
        k = -1;
        try
        {
            File file2 = new File();
            File _tmp3 = file2;
            if(File.exists(strAreaID + ".txt") >= 0)
            {
                int i1 = file2.open(strAreaID + ".txt");
                if(file2.length(i1) >= 16)
                {
                    byte abyte2[] = new byte[16];
                    for(int k1 = 0; k1 < file2.length(i1) / 16; k1++)
                    {
                        file2.read(i1, abyte2, 0, 16);
                        String s7 = new String(abyte2);
                        if(!s7.substring(0, 4).equals(strCellID))
                            continue;
                        k = k1 * 16;
                        break;
                    }

                }
                if(k >= 0)
                {
                    String s5 = strCellID + "," + s + "," + s1 + s3;
                    file2.seek(i1, k);
                    file2.write(i1, s5.getBytes(), 0, 16);
                    file2.close(i1);
                } else
                {
                    file2.close(i1);
                    File _tmp4 = file2;
                    File.debugWrite(strAreaID + ".txt", strCellID + "," + s + "," + s1 + s3);
                }
            } else
            {
                File _tmp5 = file2;
                File.debugWrite(strAreaID + ".txt", strCellID + "," + s + "," + s1 + s3);
            }
            file2 = null;
        }
        catch(Exception exception1)
        {
            System.out.println("Exception :" + exception1);
        }
    }

    public void run()
    {
        long l = System.currentTimeMillis();
        while(running)
            try
            {
                Thread.yield();
                if(getinfo && System.currentTimeMillis() - l >= (long)(gps6688.timeSetting * 1000))
                {
                    GetInfo();
                    repaint();
                    l = System.currentTimeMillis();
                }
                Thread.yield();
                if(direct != 0)
                {
                    switch(direct)
                    {
                    default:
                        break;

                    case 1: // '\001'
                        my -= 8;
                        if(my < 0)
                            my = 0;
                        break;

                    case 2: // '\002'
                        my += 8;
                        if(my > biHeight - 80)
                            my = biHeight - 80;
                        break;

                    case 3: // '\003'
                        mx -= 8;
                        if(mx < 0)
                            mx = 0;
                        break;

                    case 4: // '\004'
                        mx += 8;
                        if(mx > biWidth - 100)
                            mx = biWidth - 100;
                        break;

                    case 5: // '\005'
                        my -= 70;
                        if(my < 0)
                            my = 0;
                        break;

                    case 6: // '\006'
                        my += 70;
                        if(my > biHeight - 80)
                            my = biHeight - 80;
                        break;

                    case 7: // '\007'
                        mx -= 88;
                        if(mx < 0)
                            mx = 0;
                        break;

                    case 8: // '\b'
                        mx += 88;
                        if(mx > biWidth - 100)
                            mx = biWidth - 100;
                        break;
                    }
                    MapView(mx, my);
                    repaint();
                    ox = mx;
                    oy = my;
                }
            }
            catch(Exception exception) { }
        try
        {
            file.close(fn);
        }
        catch(Exception exception1) { }
        bkbuffer = null;
        ei = null;
        thread = null;
    }

    public void GetInfo()
    {
        int i;
        while(loading) ;
        i = 0;
        strAreaID = IntToHex2(peekb(0x39d84)) + IntToHex2(peekb(0x39d85));
        strCellID = IntToHex2(peekb(0x39d87)) + IntToHex2(peekb(0x39d86));
        i = peekb(0x39d8f);
        if(i > 127)
        {
            i |= 0xffffff00;
            strSignal = "";
        } else
        {
            strSignal = "+";
        }
        new StringBuffer();
        this;
        JVM INSTR dup_x1 ;
        strSignal;
        append();
        i;
        append();
        toString();
        strSignal;
    }

    public String IntToHex2(int i)
    {
        if(i < 0)
            return "00";
        if(i < 16)
            return "0" + Integer.toHexString(i);
        if(i < 256)
            return Integer.toHexString(i);
        else
            return "FF";
    }

    private static String AddrToHex(int i)
    {
        String s;
        for(s = Integer.toHexString(i); s.length() < 6; s = "0" + s);
        return s;
    }

    private static int peekb(int i)
    {
        return Integer.valueOf(System.getProperty("X.d" + AddrToHex(i)).substring(6, 8), 16).intValue();
        Exception exception;
        exception;
        return 0;
    }
}
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-8-15 00:23:00 | 显示全部楼层
// Decompiled by Jad v1.5.7g. Copyright 2000 Pavel Kouznetsov.
// Jad home page: http://www.geocities.com/SiliconValley/Bridge/8617/jad.html
// Decompiler options: packimports(3) fieldsfirst ansi
// Source File Name:   MainWindow.java

import com.siemens.mp.game.Light;
import com.siemens.mp.io.File;
import java.io.PrintStream;
import javax.microedition.lcdui.*;
import javax.microedition.rms.RecordEnumeration;
import javax.microedition.rms.RecordStore;

class MainWindow extends Form
    implements CommandListener
{

    GPS6688 gps6688;
    ViewMap viewmap;
    GPSRec gpsrec;
    SetupForm setupform;
    Command cmdView;
    Command cmdRec;
    Command cmdSetup;
    Command cmdExit;
    Command cmdReturn1;
    Command cmdRecord;
    Command cmdReturn2;
    Command cmdOK;
    Command cmdCancel;

    public MainWindow(GPS6688 gps6688_1)
    {
        super("GPS6688 v0.7");
        cmdView = new Command("定位", 1, 0);
        cmdRec = new Command("记录基站坐标", 1, 0);
        cmdSetup = new Command("设置", 1, 0);
        cmdExit = new Command("退出", 1, 0);
        cmdReturn1 = new Command("返回", 1, 0);
        cmdRecord = new Command("记录", 1, 0);
        cmdReturn2 = new Command("返回", 1, 0);
        cmdOK = new Command("确定", 1, 0);
        cmdCancel = new Command("取消", 1, 0);
        gps6688 = gps6688_1;
        loadSetting();
        if(gps6688_1.light)
            Light.setLightOn();
        else
            Light.setLightOff();
        if(File.exists("gps6688.ini") > 0)
        {
            loadMaps();
            if(gps6688_1.mapNames.length <= 0 || gps6688_1.mapNames.length != gps6688_1.mapFiles.length)
            {
                append("gps6688.ini错误!");
            } else
            {
                if(gps6688_1.mapidx >= gps6688_1.mapNames.length)
                    gps6688_1.mapidx = 0;
                append("GPS for 6688 by dreamfrank@SubZero Studio 2004/1\n");
                append("感谢:\nVPK及读信息代码:Mamaich\n移植者:Konca Fung");
                addCommand(cmdView);
                addCommand(cmdRec);
                addCommand(cmdSetup);
            }
        } else
        {
            append("gps6688.ini丢失!");
        }
        addCommand(cmdExit);
        setCommandListener(this);
        gps6688_1.setDisplay(this);
    }

    public void commandAction(Command command, Displayable displayable)
    {
        if(command == cmdView)
        {
            viewmap = new ViewMap(gps6688);
            viewmap.addCommand(cmdReturn1);
            viewmap.setCommandListener(this);
            gps6688.setDisplay(viewmap);
        } else
        if(command == cmdRec)
        {
            gpsrec = new GPSRec(gps6688, this);
            gpsrec.addCommand(cmdRecord);
            gpsrec.addCommand(cmdReturn2);
            gpsrec.setCommandListener(this);
            gps6688.setDisplay(gpsrec);
        } else
        if(command == cmdSetup)
        {
            setupform = new SetupForm(gps6688);
            setupform.addCommand(cmdOK);
            setupform.addCommand(cmdCancel);
            setupform.setCommandListener(this);
            gps6688.setDisplay(setupform);
        } else
        if(command == cmdExit)
            gps6688.exit();
        else
        if(command == cmdReturn1)
        {
            viewmap.unloadViewMap();
            viewmap = null;
            gps6688.setDisplay(this);
        } else
        if(command == cmdRecord)
            gpsrec.recordInfo();
        else
        if(command == cmdReturn2)
        {
            gpsrec.unloadGPSRec();
            gpsrec = null;
            gps6688.setDisplay(this);
        } else
        if(command == cmdOK)
        {
            byte byte0;
            try
            {
                byte0 = Byte.parseByte(setupform.tfTime.getString());
            }
            catch(Exception exception)
            {
                gps6688.showAlert("请填写时间间隔!");
                return;
            }
            if(byte0 < 2)
            {
                gps6688.showAlert("时间间隔最小为2秒!");
                return;
            }
            gps6688.timeSetting = byte0;
            setupform.SaveSetting();
            setupform = null;
            gps6688.setDisplay(this);
        } else
        if(command == cmdCancel)
        {
            setupform = null;
            gps6688.setDisplay(this);
        }
    }

    public void loadSetting()
    {
        try
        {
            byte abyte0[] = new byte[4];
            RecordStore recordstore = RecordStore.openRecordStore("Settings", false);
            if(recordstore.getNumRecords() > 0)
            {
                RecordEnumeration recordenumeration = recordstore.enumerateRecords(null, null, false);
                byte abyte1[] = recordstore.getRecord(recordenumeration.nextRecordId());
                recordenumeration.destroy();
                gps6688.timeSetting = abyte1[0];
                gps6688.light = abyte1[1] == 1;
                gps6688.mapbk = abyte1[2];
                gps6688.mapidx = abyte1[3];
            }
            recordstore.closeRecordStore();
        }
        catch(Exception exception)
        {
            System.out.println("Exception: " + exception);
        }
    }

    private void loadMaps()
    {
        try
        {
            byte abyte0[] = new byte[2];
            abyte0[0] = 13;
            abyte0[1] = 10;
            File file = new File();
            int i = file.open("gps6688.ini");
            byte abyte1[] = new byte[file.length(i)];
            file.read(i, abyte1, 0, abyte1.length);
            file.close(i);
            file = null;
            String as[] = gps6688.split(new String(abyte1), new String(abyte0));
            gps6688.mapNames = new String[as.length];
            gps6688.mapFiles = new String[as.length];
            for(int j = 0; j < as.length; j++)
            {
                String as1[] = gps6688.split(as[j], ",");
                gps6688.mapNames[j] = new String(as1[0].getBytes(), "GB2312");
                gps6688.mapFiles[j] = as1[1];
            }

        }
        catch(Exception exception) { }
    }
}
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-8-15 00:24:00 | 显示全部楼层
// Decompiled by Jad v1.5.7g. Copyright 2000 Pavel Kouznetsov.
// Jad home page: http://www.geocities.com/SiliconValley/Bridge/8617/jad.html
// Decompiler options: packimports(3) fieldsfirst ansi
// Source File Name:   SetupForm.java

import com.siemens.mp.game.Light;
import java.io.PrintStream;
import javax.microedition.lcdui.*;
import javax.microedition.rms.RecordEnumeration;
import javax.microedition.rms.RecordStore;

class SetupForm extends Form
{

    GPS6688 gps6688;
    public TextField tfTime;
    String lbl1[] = {
        "关", "开"
    };
    ChoiceGroup cgLight;
    String lbl2[] = {
        "反色", "正常"
    };
    ChoiceGroup cgMapBK;
    ChoiceGroup cgMaps;

    public SetupForm(GPS6688 gps6688_1)
    {
        super("设置");
        cgLight = new ChoiceGroup("背景灯", 1, lbl1, null);
        cgMapBK = new ChoiceGroup("地图颜色", 1, lbl2, null);
        gps6688 = gps6688_1;
        tfTime = new TextField("读基站信息间隔(秒)", "" + gps6688_1.timeSetting, 2, 3);
        append(tfTime);
        if(gps6688_1.light)
            cgLight.setSelectedIndex(1, true);
        else
            cgLight.setSelectedIndex(0, true);
        cgMapBK.setSelectedIndex(gps6688_1.mapbk, true);
        append(cgLight);
        append(cgMapBK);
        cgMaps = new ChoiceGroup("选择地图", 1, gps6688_1.mapNames, null);
        cgMaps.setSelectedIndex(gps6688_1.mapidx, true);
        append(cgMaps);
    }

    public void SaveSetting()
    {
        try
        {
            byte abyte0[] = new byte[4];
            abyte0[0] = Byte.parseByte(tfTime.getString());
            abyte0[1] = (byte)cgLight.getSelectedIndex();
            abyte0[2] = (byte)cgMapBK.getSelectedIndex();
            abyte0[3] = (byte)cgMaps.getSelectedIndex();
            RecordStore recordstore = RecordStore.openRecordStore("Settings", true);
            if(recordstore.getNumRecords() > 0)
            {
                RecordEnumeration recordenumeration = recordstore.enumerateRecords(null, null, false);
                recordstore.setRecord(recordenumeration.nextRecordId(), abyte0, 0, 4);
                recordenumeration.destroy();
            } else
            {
                recordstore.addRecord(abyte0, 0, 4);
            }
            recordstore.closeRecordStore();
            gps6688.timeSetting = abyte0[0];
            gps6688.light = cgLight.getSelectedIndex() != 0;
            gps6688.mapbk = cgMapBK.getSelectedIndex();
            gps6688.mapidx = cgMaps.getSelectedIndex();
            if(gps6688.light)
                Light.setLightOn();
            else
                Light.setLightOff();
        }
        catch(Exception exception)
        {
            System.out.println("Exception: " + exception);
        }
    }
}
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-8-15 00:25:00 | 显示全部楼层
// Decompiled by Jad v1.5.7g. Copyright 2000 Pavel Kouznetsov.
// Jad home page: http://www.geocities.com/SiliconValley/Bridge/8617/jad.html
// Decompiler options: packimports(3) fieldsfirst ansi
// Source File Name:   ViewMap.java

import com.siemens.mp.game.ExtendedImage;
import com.siemens.mp.io.File;
import java.io.IOException;
import java.io.PrintStream;
import javax.microedition.lcdui.*;

class ViewMap extends Canvas
    implements Runnable
{

    private GPS6688 gps6688;
    private Thread thread;
    private Image bkbuffer;
    private ExtendedImage ei;
    private int mx;
    private int my;
    private int biWidth;
    private int biHeight;
    private boolean running;
    private boolean readytopaint;
    private boolean showinfo;
    private boolean getinfo;
    private boolean havenodata;
    private boolean showpoint;
    private boolean bmpnotfound;
    private boolean loading;
    private boolean reading;
    private File file;
    private int fn;
    private byte rgbq[];
    private byte bh[];
    private int nb;
    private int bpl;
    private byte bw[];
    private int showflag;
    private String strarea;
    private String strcell;
    private boolean nodata;
    private String strAreaID;
    private String strCellID;
    private String strSignal;
    private String strOldAreaID;
    private String bmpFile;

    public ViewMap(GPS6688 gps6688_1)
    {
        bkbuffer = Image.createImage(112, 80);
        ei = new ExtendedImage(bkbuffer);
        mx = 1736;
        my = 1160;
        biWidth = 0;
        biHeight = 0;
        running = true;
        readytopaint = false;
        showinfo = true;
        getinfo = true;
        havenodata = false;
        showpoint = false;
        bmpnotfound = false;
        loading = false;
        reading = false;
        file = new File();
        fn = 0;
        rgbq = new byte[8];
        bh = new byte[54];
        nb = 0;
        bpl = 0;
        bw = new byte[1120];
        showflag = 0;
        strarea = "";
        strcell = "";
        nodata = false;
        strAreaID = "0000";
        strCellID = "0000";
        strSignal = "+00";
        strOldAreaID = "";
        bmpFile = "";
        gps6688 = gps6688_1;
        GetInfo();
        readInfo();
        MapView(mx, my);
        nodata = !havenodata;
        thread = new Thread(this);
        thread.start();
        readytopaint = true;
    }

    public void unloadViewMap()
    {
        running = false;
    }

    protected void keyPressed(int i)
    {
        while(loading) ;
        while(reading) ;
        switch(i)
        {
        case 53: // '5'
            showinfo = !showinfo;
            MapView(mx, my);
            repaint();
            break;

        case 48: // '0'
            getinfo = !getinfo;
            break;
        }
    }

    public void paint(Graphics g)
    {
        if(!readytopaint)
            return;
        while(loading) ;
        while(reading) ;
        if(!bmpnotfound)
            ei.setPixels(bw, 0, 0, 112, 80);
        Graphics g1 = bkbuffer.getGraphics();
        if(showpoint)
        {
            g1.drawArc(40, 30, 20, 20, 0, 360);
            g1.drawArc(42, 32, 16, 16, 0, 360);
        }
        if(havenodata)
        {
            g1.setColor(255, 255, 255);
            g1.fillRect(9, 35, 82, 19);
            g1.setColor(0, 0, 0);
            g1.drawRect(9, 35, 82, 19);
            Font font = Font.getFont(0, 1, 16);
            g1.setFont(font);
            g1.drawString("No Cell Data", 12, 37, 20);
        }
        if(bmpnotfound)
        {
            g1.setColor(255, 255, 255);
            g1.fillRect(9, 35, 82, 19);
            g1.setColor(0, 0, 0);
            g1.drawRect(9, 35, 82, 19);
            Font font1 = Font.getFont(0, 1, 16);
            g1.setFont(font1);
            g1.drawString("No BMP Map", 12, 37, 20);
        }
        if(showinfo)
        {
            g1.setColor(255, 255, 255);
            g1.fillRect(5, 66, 90, 12);
            g1.setColor(0, 0, 0);
            g1.drawRect(5, 66, 90, 12);
            Font font2 = Font.getFont(0, 0, 8);
            g1.setFont(font2);
            g1.drawString(strAreaID + " " + strCellID + " " + strSignal + " " + (getinfo ? "V" : "X"), 7, 68, 20);
        }
        g.drawImage(bkbuffer, 0, 0, 20);
    }

    private void loadBMPMap(String s)
    {
        if(File.exists(s) < 0 || s == "")
        {
            bmpnotfound = true;
            return;
        }
        try
        {
            File file1 = new File();
            fn = file1.open(s);
            file1.read(fn, bh, 0, 54);
            file1.read(fn, rgbq, 0, 8);
            biWidth = (bh[18] >= 0 ? bh[18] : 256 + bh[18]) + ((bh[19] >= 0 ? bh[19] : 256 + bh[19]) << 8);
            biHeight = (bh[22] >= 0 ? bh[22] : 256 + bh[22]) + ((bh[23] >= 0 ? bh[23] : 256 + bh[23]) << 8);
            mx = biWidth >> 1;
            my = biHeight >> 1;
            nb = biWidth % 8 != 0 ? biWidth / 8 + 1 : biWidth / 8;
            bpl = nb + (nb % 4 != 0 ? 4 - nb % 4 : 0);
            bmpnotfound = false;
        }
        catch(Exception exception)
        {
            System.out.println("loadBMPMap Exception");
            bmpnotfound = true;
        }
    }

    private void MapView(int i, int j)
    {
        if(bmpnotfound)
            return;
        while(reading) ;
        while(loading) ;
        loading = true;
        try
        {
            byte abyte0[] = new byte[bpl * 40];
            byte byte0 = 79;
            file.seek(fn, 62 + (biHeight - (j + 79)) * bpl + i / 8);
            for(int k = j + 79; k >= j; k -= 40)
            {
                file.read(fn, abyte0, 0, abyte0.length);
                if(bh[46] == gps6688.mapbk)
                {
                    for(int l = 0; l < abyte0.length; l += bpl)
                    {
                        for(int j1 = l; j1 < l + 14; j1++)
                            abyte0[j1] = (byte)(~abyte0[j1]);

                    }

                }
                for(int i1 = 0; i1 < 40; i1++)
                    System.arraycopy(abyte0, i1 * bpl, bw, (k - i1 - j) * 14, 14);

            }

            abyte0 = null;
        }
        catch(IOException ioexception)
        {
            System.out.println("fn=" + fn + " biHeight=" + biHeight + " y=" + (j + 79) + " bpl=" + bpl + " sx=" + i + " " + ((biHeight - (j + 79)) * bpl + i / 8));
            file = null;
            loadBMPMap(bmpFile);
        }
        loading = false;
    }

    public void readInfo()
    {
        while(loading) ;
        while(reading) ;
        reading = true;
        if(strOldAreaID.equals(strAreaID))
            break MISSING_BLOCK_LABEL_268;
        boolean flag;
        File file2;
        int i;
        byte abyte0[];
        int k;
        String s;
        try
        {
            if(File.exists("areas.ini") < 0)
            {
                bmpnotfound = true;
                bmpFile = "";
                reading = false;
                return;
            }
        }
        catch(Exception exception)
        {
            bmpnotfound = true;
            bmpFile = "";
            reading = false;
            return;
        }
        flag = true;
        file2 = new File();
        i = file2.open("areas.ini");
        if(file2.length(i) >= 11)
        {
            abyte0 = new byte[11];
            for(k = 0; k < file2.length(i) / 11; k++)
            {
                file2.read(i, abyte0, 0, 11);
                s = new String(abyte0);
                if(!s.substring(5, 9).equals(strAreaID))
                    continue;
                bmpFile = gps6688.mapFiles[Integer.parseInt(s.substring(0, 4))] + ".bmp";
                flag = false;
                break;
            }

        }
        file2.close(i);
        if(flag)
        {
            bmpnotfound = true;
            bmpFile = "";
            reading = false;
            return;
        }
        strOldAreaID = strAreaID;
        loadBMPMap(bmpFile);
        try
        {
            File file1 = new File();
            file1;
            if(File.exists(strAreaID + ".txt") >= 0)
            {
                boolean flag1 = true;
                int j = file1.open(strAreaID + ".txt");
                if(file1.length(j) >= 16)
                {
                    byte abyte1[] = new byte[16];
                    for(int l = 0; l < file1.length(j) / 16; l++)
                    {
                        file1.read(j, abyte1, 0, 16);
                        String s1 = new String(abyte1);
                        if(!s1.substring(0, 4).equals(strCellID))
                            continue;
                        mx = Integer.parseInt(s1.substring(5, 9)) - 50;
                        if(mx < 0)
                            mx = 0;
                        if(mx > biWidth - 100)
                            mx = biWidth - 100;
                        my = Integer.parseInt(s1.substring(10, 14)) - 40;
                        if(my < 0)
                            my = 0;
                        if(my > biHeight - 80)
                            my = biHeight - 80;
                        if(havenodata)
                            showflag = 1;
                        havenodata = false;
                        showpoint = true;
                        flag1 = false;
                        break;
                    }

                }
                file1.close(j);
                if(flag1)
                {
                    if(!havenodata)
                        showflag = 1;
                    havenodata = true;
                    showpoint = false;
                }
            } else
            {
                if(!havenodata)
                    showflag = 1;
                havenodata = true;
                showpoint = false;
            }
            file1 = null;
            if(!strAreaID.equals(strarea) || !strCellID.equals(strcell))
            {
                strarea = strAreaID;
                strcell = strCellID;
                showflag = 1;
            }
        }
        catch(Exception exception1)
        {
            System.out.println("Exception :" + exception1);
        }
        reading = false;
        return;
    }

    public void run()
    {
        long l = System.currentTimeMillis();
        while(running)
            try
            {
                Thread.yield();
                if(getinfo && System.currentTimeMillis() - l >= (long)(gps6688.timeSetting * 1000))
                {
                    GetInfo();
                    readInfo();
                    l = System.currentTimeMillis();
                }
                if(showflag != 0)
                {
                    MapView(mx, my);
                    repaint();
                    showflag = 0;
                }
            }
            catch(Exception exception) { }
        try
        {
            file.close(fn);
        }
        catch(Exception exception1) { }
        bkbuffer = null;
        ei = null;
        thread = null;
    }

    public void GetInfo()
    {
        int i;
        while(loading) ;
        while(reading) ;
        i = 0;
        strAreaID = IntToHex2(peekb(0x39d84)) + IntToHex2(peekb(0x39d85));
        strCellID = IntToHex2(peekb(0x39d87)) + IntToHex2(peekb(0x39d86));
        i = peekb(0x39d8f);
        if(i > 127)
        {
            i |= 0xffffff00;
            strSignal = "";
        } else
        {
            strSignal = "+";
        }
        new StringBuffer();
        this;
        JVM INSTR dup_x1 ;
        strSignal;
        append();
        i;
        append();
        toString();
        strSignal;
    }

    public String IntToHex2(int i)
    {
        if(i < 0)
            return "00";
        if(i < 16)
            return "0" + Integer.toHexString(i);
        if(i < 256)
            return Integer.toHexString(i);
        else
            return "FF";
    }

    private static String AddrToHex(int i)
    {
        String s;
        for(s = Integer.toHexString(i); s.length() < 6; s = "0" + s);
        return s;
    }

    private static int peekb(int i)
    {
        return Integer.valueOf(System.getProperty("X.d" + AddrToHex(i)).substring(6, 8), 16).intValue();
        Exception exception;
        exception;
        return 0;
    }
}
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-8-15 00:26:00 | 显示全部楼层
都上了--大家浏览一下,能看个大概就下来研究吧!fsclub有一部分你应该很熟悉了!哈哈
fsclub以后请多多指教!
希望你早日开发出这个软件,我也用得到,一直想解决的问题!
回复 支持 反对

使用道具 举报

发表于 2005-8-15 00:27:00 | 显示全部楼层
请问这是JAVA的源码吗?看起来有点像C,但又不全是,如果能反编译成C就好了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-8-15 00:28:00 | 显示全部楼层
原帖由 starfriend 于 2005-6-11 10:05 发表
请问这是JAVA的源码吗?看起来有点像C,但又不全是,如果能反编译成C就好了

正是,看来是c高手,不过语言是相通的吧,希望有时间研究一下!
回复 支持 反对

使用道具 举报

发表于 2005-8-15 00:29:00 | 显示全部楼层
原帖由 starfriend 于 2005-6-11 10:05 发表
请问这是JAVA的源码吗?看起来有点像C,但又不全是,如果能反编译成C就好了

JAVA和C++的语法基本相同.
但两个不同的平台,怎么叫把JAVA的反编成C的?难道VB的可以反编成VC的?
C++平台能编译出JAD和JAR文件?
回复 支持 反对

使用道具 举报

发表于 2005-8-15 00:30:00 | 显示全部楼层
真的看不懂啊!这也太~~~~~~~~~不过还是顶一下!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-8-15 00:31:00 | 显示全部楼层
原帖由 fsclub 于 2005-6-13 18:25 发表

JAVA和C++的语法基本相同.
但两个不同的平台,怎么叫把JAVA的反编成C的?难道VB的可以反编成VC的?
C++平台能编译出JAD和JAR文件?


兄弟,看了源码有什么新得?现在你的方向是---?
回复 支持 反对

使用道具 举报

发表于 2005-8-15 00:32:00 | 显示全部楼层
不错,有时间好好看看!
回复 支持 反对

使用道具 举报

发表于 2005-8-15 00:33:00 | 显示全部楼层

544K 补丁在那里下啊?

544K 补丁在那里下啊?
回复 支持 反对

使用道具 举报

发表于 2005-8-15 00:34:00 | 显示全部楼层
弱势群体,全社会都应该去帮助,如果我们的东西能给他们一些帮助,这应该算是一个很有爱心的活动,希望原作者与fsclub有时间系统总结一下,完善出来,这将是一篇很感人的消息!!!
回复 支持 反对

使用道具 举报

发表于 2005-8-28 07:40:31 | 显示全部楼层
nssong,你贴的这个KongGPS的版本是多少?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员 微信登录

本版积分规则

小黑屋|Archiver|手机版|爱技术 ( 沪ICP备08115260号-3 )

GMT+8, 2025-6-7 15:46

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表