Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
2 / 2 / 0
Регистрация: 19.04.2014
Сообщений: 36
1

Не работает класс

28.04.2014, 15:58. Показов 661. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем привет.Возникла очень необычная проблема.
Есть код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
static TDisplayDevice lpDisplayDevice;
 
DWORD dwFlags;
DWORD cc;
 
AnsiString b;
AnsiString c;
 
lpDisplayDevice.cb = sizeof(lpDisplayDevice);
 
EnumDisplayDevices(NULL,cc,&lpDisplayDevice,dwFlags);
 
b = lpDisplayDevice.DeviceString ;
c = lpDisplayDevice.DeviceID ;
 
Edit2->Text = b;
Edit3->Text = c;
Который работает как нужно. Проверял 100 раз.
Но как только пытаюсь сделать класс... он не работает.Пока (для проверки) реализация методов в главном файле.
Вот код 2-ух файлов :

Unit1.cpp
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
//---------------------------------------------------------------------------
 
#include <vcl.h>
#pragma hdrstop
 
#include "Unit1.h"
#include "winbase.h"
#include "multimon.h "
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::Button1Click(TObject *Sender)
{
        DeviceDisplay =new QDisplayDivice ;
        DeviceDisplay->set_Name_and_Id_Device();
        Edit1->Text = DeviceDisplay->get_DeviceName();
        Edit2->Text = DeviceDisplay->get_DeviceId();
        delete  DeviceDisplay;
}
 
//---------------------------------------------------------------------------
  __fastcall QDisplayDivice::QDisplayDivice ()
{
    NameDevice="Aaa";
    IdDevice="Bbb";
}
void  __fastcall QDisplayDivice::set_Name_and_Id_Device()
{
      static TDisplayDevice lpDisplayDevice;
      DWORD dwFlags;
      DWORD cc;
      bool   A;
 
      lpDisplayDevice.cb = sizeof(lpDisplayDevice);
      A=EnumDisplayDevices(NULL,cc,&lpDisplayDevice,dwFlags);
 
      NameDevice = lpDisplayDevice.DeviceString ;
      IdDevice = lpDisplayDevice.DeviceID ;
 
 
}
  //.....................
_______

Unit1.h
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
//---------------------------------------------------------------------------
 
#ifndef Unit1H
#define Unit1H
//---------------------------------------------------------------------------
 #include "winbase.h"
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include <string>
//---------------------------------------------------------------------------
class QDisplayDivice
{
public:
        __fastcall QDisplayDivice()  ;
 
                AnsiString NameDevice ;
                AnsiString IdDevice;
 
                void __fastcall set_Name_and_Id_Device() ;
 
                AnsiString get_DeviceName()
              {
                     return NameDevice;
               }
 
                AnsiString get_DeviceId()
               {
                      return IdDevice;
                }
 
 
 private:
};
 
class TForm1 : public TForm
{
__published:// IDE-managed Components
        TEdit *Edit1;
        TEdit *Edit2;
        TButton *Button1;
        void __fastcall Button1Click(TObject *Sender);
private:// User declarations
public:// User declarations
        __fastcall TForm1(TComponent* Owner);
        QDisplayDivice* DeviceDisplay;
 
};
//......................................
 
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif
Переменной "bool A" я пытался найти строку ,которая всё портит. И нашёл.
C++
1
EnumDisplayDevices(NULL,cc,&lpDisplayDevice,dwFlags);
Помогите класс сделать рабочим,я уже 2-ой день мучаюсь ))))
Заранее спасибо.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.04.2014, 15:58
Ответы с готовыми решениями:

Класс Стек Stack. не работает класс исключений
Здравствуйте! Решил проверить код на пригодность, но почему то класс исключений выскакивает на...

Не работает класс SQLite3Result, однако работает SQLite3 (PHP 5.3.3)
Добрый день! Пытаюсь использовать тот SQLite, который уже был предустановлен и готов к работе (в...

Создать класс строка и производный класс битовая строка, не работает переопределение операций
Здравствуйте уважаемые форумчане.Мне очень нужна помощь в разработке класса.Сам класс вроде...

Не работает класс в <td>
Первая ячейка с цифрой 25 должен быть зеленым, т.к я ему дал класс=&quot;cellRed&quot; &lt;!doctype html&gt;...

2
91 / 91 / 22
Регистрация: 02.07.2013
Сообщений: 332
28.04.2014, 16:23 2
А почему бы не проинициализировать переменные? Полагаю, что когда cc глобальная, то она инициализируется 0, и всё "работает". Когда cc становится стековой, то в ней может находиться произвольный мусор, отличный от 0.
C++
1
DWORD cc = 0;
0
2 / 2 / 0
Регистрация: 19.04.2014
Сообщений: 36
28.04.2014, 16:54  [ТС] 3
Огромное спасибо! Помогло. Только ещё DWORD dwFlags нужно проинициализировать.
На будущее запомнил. Не знал,что будут проблемы.
Ещё раз спасибо!
Ой,а мне поможете со второй проблемой? Вот ссылка на тему. Первый и восьмой пост.
0
28.04.2014, 16:54
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.04.2014, 16:54
Помогаю со студенческими работами здесь

не работает класс
функция filterFiles должна отсортировывать список файлов в указалом каталоге и возвращать новый -...

Класс не работает
есть форма, стили: .inputSelect select { width: 315px; border: 2px solid #dddddd; ...

Есть класс A и класс B, класс B вложен в класс A и вложен в него, как классу B получить доступ к переменным класса A просто по имени?
На самом деле ничё фантастического я не прошу, ведь: template &lt;class T&gt; class matrix { ...

Не работает клик на класс
Доброго всем времени суток! Не могу врубиться в чём проблема. Есть функция которая должна...


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

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