Code:
MultiByteToWideChar(CP_ACP, MB_PRECOMPOSED, bufRecibidos + 2, -1, oleChar, 
bytesRecibidos-1);
Since you are passing in -1, this function assumes that the passed buffer is NULL terminated. This is probably not the case though since your string will be received in chunks (that's why you are calling recv() in a loop). In other words, DO NOT assume that the buffer filled by recv() is NULL terminated.