Du verwendest hier die C++-string-Klasse, was auch völlig in Ordnung ist. Die Windows-API-Funktionen erwarten jedoch Zeiger auf nullterminierte Strings. Du kannst string-Objekte mit der c_str()-Funktion in diese Zeiger umwandeln. Genau dies wird beispielsweise im Aufruf
FindFirstFile(name.c_str(),&wfd)
gemacht. Das musst du im MoveFile-Aufruf einfach genauso machen:
MoveFile((von + wfd.cFileName).c_str(), (zu + wfd.cFileName).c_str())