LOWORD, HIWORD.. etc in Java?



  • Hallo!

    Wie der Titel schon sagt, bräuchte ich etwas Äquivalentes(?) zu dem ganzen winapi kram in java, also: (LOWORD, HIWORD, LOBYTE, HIBYTE).. gibt es sowas rdy 4 use? oder muss man sich sowas selbst basteln?

    Gruß


  • Mod

    Was genau hast Du vor?



  • Gregor schrieb:

    Was genau hast Du vor?

    Ich möchte mein C++ projekt gern zu java porten.. da muss ich halt sowas irgendwie in java hinkriegen..

    void Func_X_2(LPBYTE stream, DWORD key, BYTE keyByte)
    {
    	stream[0] ^= (stream[0] + LOBYTE(LOWORD(key)) + keyByte);
    	stream[1] ^= (stream[1] + HIBYTE(LOWORD(key)) + keyByte);
    	stream[2] ^= (stream[2] + LOBYTE(HIWORD(key)) + keyByte);
    	stream[3] ^= (stream[3] + HIBYTE(HIWORD(key)) + keyByte);
    	stream[4] ^= (stream[4] + LOBYTE(LOWORD(key)) + keyByte);
    	stream[5] ^= (stream[5] + HIBYTE(LOWORD(key)) + keyByte);
    	stream[6] ^= (stream[6] + LOBYTE(HIWORD(key)) + keyByte);
    	stream[7] ^= (stream[7] + HIBYTE(HIWORD(key)) + keyByte);
    }
    

  • Mod

    Ich denke, dass Du Dir das selbst schreiben musst. Ist aber auch ganz schnell gemacht, wenn ich die Funktionen da richtig interpretiere: Einfach eine Shift-Operation mit anschließendem XOR mit einer entsprechenden Maske.



  • static short LOWORD(long data)
        {
           return (short)(data & 0xffff);
        }
        static short HIWORD(long data)
        {
            return (short)(data >> 16);
        }
        static byte LOBYTE(short data)
        {
            return (byte)(data & 0xff);
        }
        static byte HIBYTE(short data)
        {
            return (byte)(data >> 8);
        }
    

    Habs so geschafft, danke!

    Gruß


Anmelden zum Antworten