Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
kestugar
7 / 7 / 0
Регистрация: 15.05.2010
Сообщений: 184
#1

Не существует подходящей функции для преобразования из std::string в LPCTSTR - C++

04.12.2013, 17:38. Просмотров 844. Ответов 1
Метки нет (Все метки)

Ошибка: не существует подходящей функции для преобразования из std::string в LPCTSTR.
Как это можно исправить или по другому как-то сделать?
C++
1
lb_ListBox.AddString((qwp.GetElementFromQueue()).name);
Кликните здесь для просмотра всего текста

Главная функция:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
void C_lab_3_list_deque_in_MFC_Dlg::OnBnClickedEnter()
{
    // TODO: добавьте свой код обработчика уведомлений
    C_lab_3_list_deque_in_MFC_Dlg qwp;
    QueueElement str1;
    CString Str;
    LPCTSTR String1;
    //lb_ListBox.AddString("LOW");// + (CString)"\n";
    read(qwp); 
    print(qwp);
    //cout<<"=========="<<"\n"; _getch();
    lb_ListBox.AddString("==========");
    Str = ((qwp.GetElementFromQueue()).name));
    lb_ListBox.AddString((qwp.GetElementFromQueue()).name);
    //cout<<(qwp.GetElementFromQueue()).name<<"\n";
    //cout<<"=========="<<"\n"; _getch();
    print(qwp); cout<<"=========="<<"\n"; _getch();
    qwp.Accelerate(); print(qwp);
    //cout<<"=========="<<"\n"; _getch();
    //cout<<(qwp.GetElementFromQueue()).name<<"\n";
    //cout<<"=========="<<"\n"; _getch();
    print(qwp); cout<<"=========="<<"\n"; _getch();
    //cout<<(qwp.GetElementFromQueue()).name<<"\n";
    //cout<<"=========="<<"\n"; _getch(); print(qwp);
    //cout<<"=========="<<"\n"; _getch();
}
Сам класс:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
enum ElementPriority {LOW,NORMAL,HIGH};
struct QueueElement
{
  string name;
};
 
// диалоговое окно C_lab_3_list_deque_in_MFC_Dlg
class C_lab_3_list_deque_in_MFC_Dlg : public CDialogEx
{
// Создание
public:
    C_lab_3_list_deque_in_MFC_Dlg(CWnd* pParent = NULL);    // стандартный конструктор
 
// Данные диалогового окна
    enum { IDD = IDD_LAB_3_LIST_DEQUE_IN_MFC_DIALOG };
 
    protected:
    virtual void DoDataExchange(CDataExchange* pDX);    // поддержка DDX/DDV
 
 
// Реализация
protected:
    HICON m_hIcon;
 
    // Созданные функции схемы сообщений
    virtual BOOL OnInitDialog();
    afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
    afx_msg void OnPaint();
    afx_msg HCURSOR OnQueryDragIcon();
    DECLARE_MESSAGE_MAP()
public:
    afx_msg void OnBnClickedCancel();
    afx_msg void OnBnClickedOk();
    afx_msg void OnBnClickedEnter();
 
//Элементы своего класса.
  list<QueueElement> elm;
  list<QueueElement>::reverse_iterator ite;
  list<ElementPriority> prt;
  list<ElementPriority>::reverse_iterator itp;
  //C_lab_3_list_deque_in_MFC_Dlg() {}
  ~C_lab_3_list_deque_in_MFC_Dlg()
  {
    elm.clear(); prt.clear();
  }
  void PutElementToQueue(const QueueElement &element,ElementPriority priority);
  QueueElement GetElementFromQueue();
  void Accelerate();
  void read(C_lab_3_list_deque_in_MFC_Dlg &qq);
  void print(C_lab_3_list_deque_in_MFC_Dlg &m);
//  CString cs_listbox;
  CString cs_List;
  CListBox lb_ListBox;
  CString cs_Edit;
};

Остальные функции:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
void C_lab_3_list_deque_in_MFC_Dlg::PutElementToQueue(const QueueElement &element,ElementPriority priority)
{
  if((elm.empty()==true)&(prt.empty()==true))
  {
    elm.push_back(element);
    prt.push_back(priority);
  }
  else
  {
    elm.insert(elm.begin(),element);
    prt.insert(prt.begin(),priority);
  }
}
 
QueueElement C_lab_3_list_deque_in_MFC_Dlg::GetElementFromQueue()
{
  ite=elm.rbegin(); itp=prt.rbegin();
  list<QueueElement>::iterator tmp;
  list<ElementPriority>::iterator tmpp;
  QueueElement qm;
  tmp=elm.end(); 
  tmpp=prt.end(); 
  tmp--; 
  tmpp--;
 
  while((ite!=elm.rend())&(itp!=prt.rend())) {
    if(*itp==HIGH) {
        qm=*ite; 
        elm.erase(tmp); 
        prt.erase(tmpp); 
        return qm;
    }
 
    ite++; 
    itp++; 
    if(tmp!=elm.begin()) 
        tmp--; 
    if(tmpp!=prt.begin()) 
        tmpp--;
  }
 
  ite=elm.rbegin(); 
  itp=prt.rbegin();
  tmp=elm.end(); 
  tmpp=prt.end(); 
  tmp--; 
  tmpp--;
 
  while((ite!=elm.rend())&(itp!=prt.rend())) {
     if(*itp==NORMAL) {
         qm=*ite; elm.erase(tmp); 
         prt.erase(tmpp); 
         return qm;
     }
     ite++; 
     itp++;
     if(tmp!=elm.begin()) 
         tmp--; 
     if(tmpp!=prt.begin()) 
         tmpp--;
  }
 
  ite=elm.rbegin(); 
  itp=prt.rbegin();
  tmp=elm.end(); 
  tmpp=prt.end(); 
  tmp--; 
  tmpp--;
 
  while((ite!=elm.rend())&(itp!=prt.rend())) {
      if(*itp==LOW) {
          qm=*ite; 
          elm.erase(tmp); 
          prt.erase(tmpp); 
          return qm;
      }
 
      ite++; 
      itp++;
      if(tmp!=elm.begin()) 
          tmp--; 
      if(tmpp!=prt.begin()) 
          tmpp--;
  }
  ite=elm.rbegin();
  return *ite;
}
 
void C_lab_3_list_deque_in_MFC_Dlg::Accelerate()
{
  itp=prt.rbegin();
  while(itp!=prt.rend())
  {
    if(*itp==LOW) *itp=HIGH;
    itp++;
  }
}
 
//Функция вывода на экран.
//void print(C_lab_3_list_deque_in_MFC_Dlg &m, CListBox &lb_ListBox)
void C_lab_3_list_deque_in_MFC_Dlg::print(C_lab_3_list_deque_in_MFC_Dlg &m)
{
  CString Message;
 
  m.ite=m.elm.rbegin(); m.itp=m.prt.rbegin();
  while((m.ite!=m.elm.rend())&(m.itp!=m.prt.rend()))
  {
    //cout<<(*(m.ite)).name<<"  "/*<<*(m.itp)<<"\n"*/;
      //lb_ListBox.AddString((*(m.ite)).name);
 
    switch (*(m.itp))
    {
 
        //case 0: Message = "LOW";  break;
        //case 1: Message = "NORMAL"; break;
        //case 2: Message = "HIGH"; break;
        
        case 0: 
            lb_ListBox.AddString("LOW");
            cs_Edit = cs_Edit + "LOW" + "\n";
            break;
        case 1: 
            lb_ListBox.AddString("NORMAL"); 
            cs_Edit = cs_Edit + "NORMAL" + "\n";
            break;
        case 2: 
            lb_ListBox.AddString("HIGH");   
            cs_Edit = cs_Edit + "HIGH" + "\n";
            break;
        
    }
    m.ite++; m.itp++;
  }  
  //MessageBox(0, Message, Message, MB_OK);
}
 
//Функция чтения из файла.
void C_lab_3_list_deque_in_MFC_Dlg::read(C_lab_3_list_deque_in_MFC_Dlg &qq)
{
    char buf[100];
    ElementPriority pr;
    QueueElement hlp;
    ifstream in("D:\\Dropbox\\Politeh_labs\\C_Labs\\lab_3.txt");
    if(!in) 
        //cout<<"Error!";
        lb_ListBox.AddString("Error open file!");
    else
    {
      while(!in.eof())
      {
        in.getline(buf,100);
        int i=strlen(buf);
        hlp.name.assign(buf,i-2);
        switch(buf[i-1])
        {
          case '0': pr=LOW; break;
          case '1': pr=NORMAL; break;
          case '2': pr=HIGH; break;
        }
        qq.PutElementToQueue(hlp,pr);
      }
      in.close();
    }
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.12.2013, 17:38     Не существует подходящей функции для преобразования из std::string в LPCTSTR
Посмотрите здесь:
Функция isspace и тип string: Не существует подходящей функции преобразования из "std::string" в "int" C++
Не существует подходящей функции преобразования из "std::string" в "int" C++
C++ ошибка error: cannot convert 'std::string {aka std::basic_string<char>}' to 'std::string* {aka std::basic_stri
Передача функции указатель на элемент std::vector<std::string> C++
Существует ли эквивалент функции toupper() для типа string ? C++
Операция std::cout для Объекта типа std::string C++
C++ запрошено преобразование от ‘const std::string*’ к нескалярному типу ‘std::string’
C++ Функции-члены std::string - finde_first_of() и finde_first_not_of()
Есть ли какие то стандартные функции преобразования double в string? C++
C++ Как из string получить LPCTSTR?
C++ Как правильно перевести std::wstring в std::string ?
C++ Почему std::string_view МЕДЛЕННЕЕ, чем std::string?

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
gray_fox
What a waste!
1411 / 1140 / 55
Регистрация: 21.04.2012
Сообщений: 2,362
Завершенные тесты: 3
04.12.2013, 17:46     Не существует подходящей функции для преобразования из std::string в LPCTSTR #2
Цитата Сообщение от kestugar Посмотреть сообщение
C++
1
lb_ListBox.AddString((qwp.GetElementFromQueue()).name);
Попробуй
C++
1
lb_ListBox.AddString(qwp.GetElementFromQueue().name.c_str());
Yandex
Объявления
04.12.2013, 17:46     Не существует подходящей функции для преобразования из std::string в LPCTSTR
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru