1. du kannst keine datei verschieben die in gebrauch ist.
GetModuleFileNameA() liefert - soweit mir bekannt ist - den pfad zur gerade ausgeführten .exe. und da diese ja läuft, also in betrieb ist, kannst du die auch nicht verschieben.
2. rename() benötigt die dateinamen. insofern ist "C:\Bla\Desktop\BLABLA.exe" schon richtig. das mit dem "\\" .... lies selbst
http://de.wikipedia.org/wiki/Escape-Sequenz