С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.62/21: Рейтинг темы: голосов - 21, средняя оценка - 4.62
 Аватар для kestugar
9 / 9 / 6
Регистрация: 15.05.2010
Сообщений: 184

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

04.12.2013, 17:38. Показов 4307. Ответов 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();
    }
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
04.12.2013, 17:38
Ответы с готовыми решениями:

Функция isspace и тип string: Не существует подходящей функции преобразования из "std::string" в "int"
Добрый день! Я только начинаю изучать язык c++ по книге &quot;Язык программирования С++. Базовый курс 5-е изд 2014(Стэнли Б....

Не существует подходящей функции преобразования из "std::string" в "int"
Я только начинаю изучать язык c++ по книге &quot;Язык программирования С++. Базовый курс 5-е изд 2014(Стэнли Б. Липпман)&quot;. Упр.3.17 ...

Не существует подходящей функции преобразования из "std::string" в "System::String ^"
Имею массив типа string и хочу перенести текст из него в переменную String^ для дальнейшего выведения через textBox. Но выдает ошибку.

1
What a waste!
 Аватар для gray_fox
1610 / 1302 / 180
Регистрация: 21.04.2012
Сообщений: 2,733
04.12.2013, 17:46
Цитата Сообщение от kestugar Посмотреть сообщение
C++
1
lb_ListBox.AddString((qwp.GetElementFromQueue()).name);
Попробуй
C++
1
lb_ListBox.AddString(qwp.GetElementFromQueue().name.c_str());
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
04.12.2013, 17:46
Помогаю со студенческими работами здесь

Не существует подходящей функции преобразования
Всем привет! Не получается реализовать функцию fwrite(stud, sizeof(stud), 1, fstudDat) - ругается на название файла. Пишет &quot;&quot;не...

Как преобразовать std::string в LPCTSTR?
Вопрос задан в названии темы.

Как исправить ошибку не существует подходящей функции
Здравствуйте, я не знаю как решить эту проблему. Жалуется на PData(str,types,tmp); Подскажите пожалуйста, как это исправить. Ошибка...

ошибка error: cannot convert 'std::string {aka std::basic_string<char>}' to 'std::string* {aka std::basic_stri
на вод поступают 2 строки типа string. определить количество вхождений строки 2 в строку 1 ошибка error: cannot convert 'std::string {aka...

Передача функции указатель на элемент std::vector<std::string>
Доброй ночи тем, кому не спится (или живет в другом часовом поясе:p)! Есть функция, требующая в качестве параметра указатель на...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru