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

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

Восстановить пароль Регистрация
 
kestugar
 Аватар для kestugar
7 / 7 / 0
Регистрация: 15.05.2010
Сообщений: 184
04.12.2013, 17:38     Не существует подходящей функции для преобразования из std::string в LPCTSTR #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
Посмотрите здесь:

Аналог метода Split для std::string C++
Ошибка: отсутствует оператор ">>"; типы операндов: std::istream >> std::string C++
C++ std::string + std::remove
Существует ли эквивалент функции toupper() для типа string ? C++
C++ Как привести std::wstring к std::string?
C++ Std::string and std::wstring convert
Есть ли какие то стандартные функции преобразования double в string? C++
Не существует подходящей функции преобразования из "std::string" в "int" C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
gray_fox
What a waste!
 Аватар для gray_fox
1244 / 1127 / 53
Регистрация: 21.04.2012
Сообщений: 2,350
Завершенные тесты: 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
Ответ Создать тему
Опции темы

Текущее время: 17:39. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru