у меня есть строка string, разве ее нельзя преобразовать во что-то что потом можно присвоить в WCHAR path_img[] = L"D:\\project\\img\\icon_window.png"; вместо L"D:\\project\\img\\icon_window.png"; ?
Можно, но ты одну переменную объявить не можешь, а там надо вызвать функцию API о пяти-шести параметрах, выделить буфер, вызвать фукнцию API ещё раз, и всё это ещё и защитить по RAII...
Ты просто обосрёшься по дороге... (сори за обидное)