Форум программистов, компьютерный форум, киберфорум
Visual C++
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
2 / 2 / 1
Регистрация: 13.08.2008
Сообщений: 84
1

Функция в MFC

15.08.2008, 23:55. Показов 2005. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Создаю значит в MFC Edit Box.Присваиваю ему Member Variable m_send CString.Потом создаю функцию
C++
1
2
3
void function(){
m_send="WORKED";
}
А компилятор ругается и пишет

error C2065: 'm_send' : undeclared identifier
error C2440: '=' : cannot convert from 'char [7]' to 'int'

Подскажите пожалуйста,как это исправить

Добавлено через 11 минут 18 секунд
Написал в начале программы
C++
1
void function(void);
В конце проги написал
C++
1
2
3
void function(void){
 CSerialGateTestDlg::m_send="";
};
Теперь компилятор пишет

error C2597: illegal reference to data member 'CSerialGateTestDlg::m_send' in a static member function
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.08.2008, 23:55
Ответы с готовыми решениями:

Функция MessageBox в mfc
Всем привет! Нужно через функцию MessageBox сделать отчёт с фамилией именем и отчеством, но у меня...

MFC. Функция SetWindowPlacement
В приложении MDI MFC я сохраняю положение главного окна MainFrame в реестре. Получаю эти данные с...

Функция вызываемая после создания диалогового окна (MFC)
Добрый день Есть дилоговое приложение. Когда выполняются "долгие и тяжелые" операции, то форма...

Есть в MFC специальная функция для рисования стрелочек?
заренее спасибо за помощь))) З.Ы. имеется ввиду линия со стрелочкой на конце(вектор).

7
Эксперт С++
2256 / 771 / 25
Регистрация: 27.05.2008
Сообщений: 1,496
16.08.2008, 00:13 2
Речь идет о диалоге? m_send не глобальная переменная,она описана в классе диалога. Как следствие.... а,следствие сам знаешь,наверное.
0
2 / 2 / 1
Регистрация: 13.08.2008
Сообщений: 84
16.08.2008, 00:19  [ТС] 3
К сожалению не могу догадаться:'(.Подскажите пожалуйста.
0
Эксперт С++
2256 / 771 / 25
Регистрация: 27.05.2008
Сообщений: 1,496
16.08.2008, 00:22 4
Ты пытаешься получить доступ к переменной,объявленной в классе, с помощью глобальной функции. Нужно описать метод класса диалога,в котором она объявлена,чтобы модифицировать эту переменную.
0
2 / 2 / 1
Регистрация: 13.08.2008
Сообщений: 84
16.08.2008, 00:28  [ТС] 5
Вот здесь как я понял они обьявляются.Подскажите тупому пожалуйста,что где написать
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
// CSerialGateTestDlg dialog
CSerialGateTestDlg::CSerialGateTestDlg(CWnd* pParent /*=NULL*/)
 : CDialog(CSerialGateTestDlg::IDD, pParent)
{
 //{{AFX_DATA_INIT(CSerialGateTestDlg)
 m_port = 0;
 m_rate = 0;
 m_recieve = _T("");
 m_send = _T("");
 m_result = _T("");
 //}}AFX_DATA_INIT
 // Note that LoadIcon does not require a subsequent DestroyIcon in Win32
 m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}
0
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
16.08.2008, 00:34 6
А, как я понял, это конструктор и здесь они определяются, а не объявляются. Объявление с типом идет. Как ты можешь писать программы даже этого не зная...
Используй сам объект, чтобы добраться до его переменной. Или если static, то используется класс и ::.
0
2 / 2 / 1
Регистрация: 13.08.2008
Сообщений: 84
16.08.2008, 00:41  [ТС] 7
C++
1
2
3
void function(void){
CSerialGateTestDlg::m_send="";
};
Теперь компилятор пишет

error C2597: illegal reference to data member 'CSerialGateTestDlg::m_send' in a static member function

Добавлено через 1 минуту 37 секунд
Нашел обьявление
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
/////////////////////////////////////////////////////////////////////////////
// CSerialGateTestDlg dialog
class CSerialGateTestDlg : public CDialog
{
// Construction
public:
 CSerialGateTestDlg(CWnd* pParent = NULL); // standard constructor
 SerialGate sg;
// Dialog Data
 //{{AFX_DATA(CSerialGateTestDlg)
 enum { IDD = IDD_SERIALGATETEST_DIALOG };
 int  m_port;
 int  m_rate;
 CString m_recieve;
 CString m_send;
 CString m_result;
 //}}AFX_DATA
 // ClassWizard generated virtual function overrides
 //{{AFX_VIRTUAL(CSerialGateTestDlg)
 protected:
 virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
 //}}AFX_VIRTUAL
0
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
16.08.2008, 00:56 8
Блин, ну и в каком месте она тут как static объявлена? Я не вижу что-то... В данном случае только через объект.

Добавлено через 4 минуты 49 секунд
К слову, намекну, что тебе и надо через объект. Так как, у каждого диалога переменная будет своя.

Добавлено через 6 минут 23 секунды
Вот пытаемся писать такие приложения, а классы, как-будто первый раз видим. Бери книжку по основам С++! Не смущай VC++ своим присутсвием...
Код
 1 #include "iostream"
  2 #include "math.h"
  3 #include <iomanip>
  4 #include <string>
  5
  6 using namespace std;
  7
  8 class one
  9 {
 10    public:
 11    string m_send;
 12 };
 13
 14 one obj;
 15
 16 void func();
 17
 18 int main()
 19 {
 20    func();
 21    cout<<obj.m_send<<endl;
 22    cin.get();
 23    return 0;
 24 }
 25
 26 void func()
 27 {
 28    obj.m_send = "Hi!";
 29 }
вот как обращаются...вариаций может быть куча. Легче вообще функцию членом класса сделать...
0
16.08.2008, 00:56
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.08.2008, 00:56
Помогаю со студенческими работами здесь

MFC функция OnPaint отрисовывает только первый объект пользовательского класса
Собственно все указано в названии темы. Нужно используя библиотеку MFC создать диалоговое окно,...

При рисовании графика в приложении MFC выдает ошибку "отсутствует перегруженная функция CClientDC"
Задано создать MFC приложение которое позволяет: – находить неопределенный интеграл заданной...

Из MFC 2012 в MFC 2005
Есть прокт для студии 12, всё хорошо, писал на 8ке в VS 2012 и он отлично работает. Позже...

подключение классов MFC к не MFC
Как подключить MFC Class From ActiveX Control к не MFC проекту? т.е. пишу обычными винапи...

Building MFC application with /MD[d] (CRT dll version) requires MFC shared dll
Здравствуйте. Подключил afx.h, появилась ошибка. Из-за чего? Что делать?

MFC
Извиняюсь если попал не туда куда нужно, но можете помочь с такой проблемой: У меня есть программа...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru