2016-10-06 79 views
0

我目前正在嘗試更改我的桌面背景使用SystemParametersInfo() vs不給我任何錯誤,當我鍵入我的東西,但當我運行該程序我得到這個警告與黃色三角形它說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 \\ Downloaded Program Files \\ Flowers.jpg」,SPIF_UPDATEINIFILE);

看起來不錯,但是沒有多少信息就沒有說明錯誤的實際原因。另外一個PDB文件不會影響程序,這是爲了調試文件。