Thanks for all the info.
1)
In the background both arduino ide and visual micro try to make up for missing c=+ syntax in the .ino code. Visual Micro isn't doing this so well but you can resolve yourself in a better way...
The TimerCallbackSynchro method is defined after it is first used in the setup(). Therefore you should define a prototype for TimerCallbackSynchro() before the setup(). Add the following code to your .ino somewhere before the setup() method.
void TimerCallbackSynchro();
Adding your own prototypes will make the code transportable from .ino to c++ in the future so it's a good thing to do anyway. The arduino ide will detect you have added a prototype of your own and will not try to add a duplicate.
You can force visual micro to create prototypes in background by setting "Generate Prototypes=True" in the Project Properties, but I recommend you always add them yourself because then it will be an exact science.
2)
Another issue is that Visual Micro is allowing your own code to override the core. The core you are using has a Uart.h but your local project also has a Uart.h
I renamed the Uart.h in your project to UartLocal.h and then altered the #include "Uart.h" in the "Uart.cpp", the ".ino" and the "AquisitionManager.cpp" to #include "UartLocal.h
Summary The above should resolve. After renaming any files I reccomend you click "Build>Clean Solution" so that the temp build folder is cleaned.
In future versions we will look at a setting that gives more obvious control over the "core override" facility.
Thanks for the report.