خطا در تبدیل رشته - هفت خط کد انجمن پرسش و پاسخ برنامه نویسی

خطا در تبدیل رشته

0 امتیاز

سلام.

من از تابع RegCreateKeyEx به صورت زیر استفاده کردم که این خطا را گرفتم.

 cannot convert argument 2 from 'const char [7]' to 'LPCWSTR'

 

RegCreateKeyEx(HKEY_CURRENT_USER, "Software\\MY", 0, NULL, 0, KEY_ALL_ACCESS, NULL, &hkey, NULL)

 

چیکار باید انجام بدم تا این خطا رفع شه؟

سوال شده آبان 10, 1393  بوسیله ی hojat1 (امتیاز 875)   12 69 99

3 پاسخ

+2 امتیاز
 
بهترین پاسخ
برای اینکه از این دست خطا برای هیچ یک از توابعی که پارامتر LPCWSTR دارن پیش نیاد character set پروژه را به Multi Byte تغییر دهید.

در ویژوال استودیو پنجره تظیمات پروژه را باز کرده سپس در configuration property در قسمت General گزینه character set را به Use Multi-Byte character set تغییر دهید.
پاسخ داده شده آبان 10, 1393 بوسیله ی مصطفی ساتکی (امتیاز 21,998)   24 34 75
انتخاب شد اردیبهشت 6, 1394 بوسیله ی hojat1
+1 امتیاز

برای تبدیل از این تابع استفاده کنید :

wchar_t *convertCharArrayToLPCWSTR(const char* charArray)
{
	wchar_t* wString = new wchar_t[4096];
	MultiByteToWideChar(CP_ACP, 0, charArray, -1, wString, 4096);
	return wString;
}

ضنا بعد از استفاده باید مقدار بازگشتی رو delete کنید.

LPCWSTR str=convertCharArrayToLPCWSTR("software...");
//use str

delete[] str;

 

پاسخ داده شده آبان 10, 1393 بوسیله ی BlueBlade (امتیاز 15,315)   15 18 89
+1 امتیاز
تابع RegCreateKeyExA را امتحان کنید.
پاسخ داده شده آبان 10, 1393 بوسیله ی irancplusplus (امتیاز 203)   1 2 14
...