Ardexx
Newbie | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Так и не смог решить эту проблему. Но пока её опустим. Возникла очень необычная проблема))) Есть код: Код: 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 Код: //--------------------------------------------------------------------------- #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 Код: //--------------------------------------------------------------------------- #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 я пытался найти строку ,которая всё портит. И нашёл. Код: EnumDisplayDevices(NULL,cc,&lpDisplayDevice,dwFlags); | Помогите класс сделать рабочим,я уже 3 дня мучаюсь )))) Заранее спасибо | Всего записей: 10 | Зарегистр. 21-03-2014 | Отправлено: 11:50 28-04-2014 | Исправлено: Ardexx, 11:52 28-04-2014 |
|