2

現在 C++ を学習中で、デスクトップの壁紙を変更したいと考えています。ただし、上記のエラーが発生しています。

#include <string>
#include <iostream>
#include <Windows.h>

using namespace std; 

int main() {

LPWSTR test = L"C:\\Users\\user\\Pictures\\minion.png";

int result = SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, 
test, SPIF_UPDATEINIFILE);


}

タイプ "Const wchar_t*" の値を使用して、タイプ LPWSTR のエンティティを初期化することはできません

何か案は?

ありがとう

4

3 に答える 3

4

LPWSTRのエイリアスwchar_t*、つまり非 const 文字へのポインタです。

文字列リテラルは文字の const 配列であり、あなたの場合は a const wchar_t[35]. リテラルの最初の文字を指す const 文字へのポインターに崩壊します。

const へのポインターを非 const へのポインターに割り当てることはできません。これにより、読み取り専用メモリへの書き込みアクセスが許可されます。

LPCWSTRのエイリアスである代わりに使用してくださいconst wchar_t*

LPCWSTR test = L"C:\\Users\\user\\Pictures\\minion.png"; 
于 2020-06-25T16:14:12.897 に答える