2016-10-06 9 views
0

현재 SystemParametersInfo()를 사용하여 바탕 화면 배경을 변경하려고합니다. 내 물건을 입력 할 때 오류가 발생하지 않지만 프로그램을 실행할 때 노란색 삼각형 그리고 그것은 KernelBase.dll에 어떤 종류의 예외가 던져 졌다고 말했고 어떤 PDB가로드되지 않았다고 말합니다. 나는 오래 전에이 일을 할 수 있었지만, 더 이상 나를 도울 수있는 사람이 얼마나 있는지 기억하지 못합니까? 여기에 제가 작성한 내용이 있습니다VC++를 사용하여 바탕 화면 배경을 변경하는 방법

SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, "C:/Windows/Downloaded Program Files/Flowers.jpg", SPIF_UPDATEINIFILE); 

아무도 왜 이런 일이 일어나고 어떻게 해결할 수 있는지 알고 있습니까? 어떤 도움을 주셔서 감사합니다,

+0

실제 오류 내용이 아니라 실제 오류 내용이 더 도움이 될 것입니다. 통화가 정상적으로 보입니다. 배경을 바꾸는 것 외에 다른 일을하고 있습니까? 프로그램이 다른 사용자 또는 다른 권한으로 실행되고 있습니까? 이 오류는 실제로이'SystemParametersInfo()'호출에서 오는 것입니까? – Ionut

답변

3

L을 파일 경로에 추가해야합니다. L"C:/Windows/Downloaded Program Files/Flowers.jpg" .

#include "stdafx.h" 
#include <windows.h> 

int main() { 

    int return_value = SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, L"d:/flower1.jpg", SPIF_UPDATEINIFILE); 

    return 0; 
} 
-1

더 나은 설명은 분명히 더 도움이 될 것입니다. 그러나 처음에는 모든 슬래시를 검은 색 슬래시 "\\"로 바꿔야합니다.

SystemParametersInfo (SPI_SETDESKWALLPAPER, 0, "C : \\ Windows \\ 다운로드 한 프로그램 파일 \\ Flowers.jpg", SPIF_UPDATEINIFILE);

그러나 오류의 실제 원인이 조금 더 자세한 정보없이 무엇인지 알 수는 없습니다. 또한 PDB 파일은 프로그램 디버깅에 영향을주지 않습니다.