Getting encryption right requires a lot of knowledge about cryptography, in addition to knowing about data representation.
I notice that you are turning the TCHAR array into a byte pointer.
This will not be compatible if you try to talk between different environment with different sizeof(TCHAR).
It also won’t work if you talk between different environments with different byte order.
I also notice that you don’t do any Initialization Vector management.
This means that your encryption will be trivially broken using a known-plaintext attack.
You should, at the very minimum, use something like CTR cipher mode, and include the block number in the encrypted message.
There are also other modes that are appropriate for encrypting potentially lossy network messages; that’s where encryption knowledge is necessary.
Finally, it’s not clear to me what you’re trying to defend against. A typical computer game cheater will cheat by attaching to the process on their computer, which already has all the decrypted data available.
I suggest that you don’t encrypt your data for now. If you find that you actually need encryption to defend against some particular kind of attack, then I suggest you find someone who is actually a skilled cryptography implementer to implement it for you. Crypto requires just one small bug or flawed choice, to become almost entirely worthless, and those not trained in the practice, usually don’t even know what flaws they have, and thus are doomed to never ship actually-working crypto.