При возникновении такой проблемы вам необходимо преобразовать тип std:string в тип LPCSTR.
Преобразование std::string стандартной библиотеки в LPCSTR очень просто: просто вызовите c_str() напрямую. пример:
std::string a="abc";
LPCSTR str = a.c_str();
Другой случай - wstring
В стандартной библиотеке также есть wstring, который представляет строку расширенных символов, и преобразование std::wstring в LPCWSTR так же просто:
std::wstring a = L"abc";
LPCWSTR str = a.c_str();
Еще один случай:
Не существует надлежащей функции преобразования из 'std::string' в 'LPCWSTR'.
#include <string>
#include <iostream>
#include<cstdlib>
typedef const wchar_t* LPCWSTR;//#include<winnt.h>
using namespace std;
LPCWSTR stringToLPCWSTR(string orig)
{
size_t origsize = orig.length() + 1;
const size_t newsize = 100;
size_t convertedChars = 0;
wchar_t* wcstring = new wchar_t[sizeof(wchar_t) * (orig.length() - 1)];
mbstowcs_s(&convertedChars, wcstring, origsize, orig.c_str(), _TRUNCATE);
return wcstring;
}
int main()
{
string in = "dsfdsf";
LPCWSTR out = stringToLPCWSTR(in);
wcout << out << endl;
//Не забудьте освободить память~
delete out;
out = nullptr;
return 0;
}