How to resolve merge conflicts involve cpp files?

I have create two branch A and B. A is diverted from master branch and several commits ahead of it. B is branch created out of A with modifications.
A is later added new commits after B created. B later create a seperate commit to match A.
When I created a pull request to merge B into A, a merge conflict occurs. The centre of merge conflict is a cpp file that is shown as binary and cannot be solve in web editor.
I am using Visual Studio 2017 to write the codes.
UPDATE: I somehow solve this by manually merge branch A into B and then using automatic merge in pull request to merge B into A. I have completely no idea what in the world just happened and I need help to explain this.