Object is possibly 'null'
Это никак влиять не должно априори т.к. dll это законченный продукт.
Пытаюсь понять почему возвращаемый мне wchar_* в C++ выглядит строкой, в а приложении куда подключена dll'а, выглядит лютейшим мусором.
Я-то как раз ничего не решал, а спросил, почему компилятор так решает.
1. У вас в Студии Git-репозиторий открыт или вы просто солюшен открыли? Не уверен, что Студия будет работать с staging area Гита, если просто открыт солюшен.
2. В вашем эксперименте тестовый проект как был в списке Untracked (НЕотслеживаемых, обратите внимание), так в нём и остался. Т.е. Git, с одной стороны, видит, что файл появился в рабочей копии на файловой системе, с другой стороны - вы не объяснили Git-у, что с ним нужно что-либо делать. Вы ни в staging area его не поместили, ни в .gitignore не добавили (как обычно делают со всякими генерируемыми файлами, которые не нужно коммитить).
3. В общем случае вам не стоит рассчитывать, что VS всегда будет удалять проект с диска, тем более если он открыт через солюшен. Это кажется работает для SDK-style проектов (не могу сейчас проверить, Студии нет под рукой), но всё равно все изменения в рабочей копии нужно проверять через Git-клиента (в том числе встроенного в Студию).
4. Вам обязательно нужно сначала разобраться с самим Git, иначе ничего хорошего не будет. Вам нужно почитать о том, что такое рабочая копия (или рабочиИ копиИ, их может быть несколько), staging area, и как изменения в рабочей копии (в том числе добавленные и удалённые файлы) попадают в коммит. Это никак не связано с Visual Studio.