Я стараюсь менять обои рабочего стола. Это прекрасно работает, когда я использую это так:SystemParametersInfo устанавливает обои полностью черным (с использованием SPI_SETDESKWALLPAPER)
SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, "C:\\1.jpg", SPIF_SENDCHANGE);
Но когда я использую его, как это, обои для рабочего стола установлен укомплектовать черный:
std::string s = "C:\\1.jpg";
SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, &s, SPIF_SENDCHANGE);
Я попытался получить некоторую информацию с помощью использования GetLastError()
, но возвращаемое значение равно 0. Я также пытался использовать .png-файлы, но это ничего не меняет.
Любые идеи, что я делаю неправильно?
windows api совместимы с системой языка C и интерфейсом? –
почти решение. Я пытался использовать c_str(), но он говорит, что он не может преобразовать из «const char *» в «PVOID». Но он отлично работает, если вы используете его следующим образом: '(void *) s.c_str()'. Thx :) – aasoo
@AngelusMortis неверный вывод; скорее, Windows API совместим только с строками C, а не с C++ '' объекты –
andlabs