Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > как в WINAPI WinMain(.. использовать переменную


Автор: Teran 20.7.2006, 15:24
еть код
Код

#include <vcl.h>
#pragma hdrstop
//---------------------------------------------------------------------------
USEFORM("Unit1.cpp", Form1);
//---------------------------------------------------------------------------
WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
        try
        {
                 Application->Initialize();
                 Application->CreateForm(__classid(TForm1), &Form1);
                 // Вот здесь нужно использовать переменую, которая обьявлена в Form1
                 Application->Run();
        }
        catch (Exception &exception)
        {
                 Application->ShowException(&exception);
        }
        catch (...)
        {
                 try
                 {
                         throw Exception("");
                 }
                 catch (Exception &exception)
                 {
                         Application->ShowException(&exception);
                 }
        }
        return 0;
}


где мне нужно обьявить переменную которая была бы видна и сдесь и в Form1?
 smile  smile  smile  

Автор: _hunter 20.7.2006, 15:35
в Form1 

Автор: Teran 20.7.2006, 15:38
Цитата(_hunter @  20.7.2006,  15:35 Найти цитируемый пост)
Form1  

а как и где мне еёе обьявить чтоб было видно в WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
 smile  smile  smile  

Автор: _hunter 20.7.2006, 15:47
да, в принципе, где хочеш. объявляй как extern (и про реализацию не забудь) 

Автор: Teran 20.7.2006, 15:48
Цитата(_hunter @  20.7.2006,  15:47 Найти цитируемый пост)
и про реализацию не забудь

?? а что это ?

Добавлено @ 15:59 
Обьяыляю в .h файле но почемуто не работает 
Код

.........
};
//---------------------------------------------------------------------------
extern bool Cont=true;
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif

не идет это
Код

WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
        try
        {
                 Application->Initialize();
                 Application->CreateForm(__classid(TForm1), &Form1);
                 if(Cont)....
.....
 

Автор: _hunter 20.7.2006, 16:44
говорил же "реализацию не забудь"...
в .cpp нужно прописать bool Cont=true; (а в .h -- extern bool Cont) 

Автор: Teran 20.7.2006, 16:54
как я ни стараюсь не получается делаю:
.cpp:
Код

#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1; 
bool Cont=true;    //Вот тут
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
......

.h
Код

//---------------------------------------------------------------------------
#ifndef Unit1H
#define Unit1H
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published:    // IDE-managed Components
private:    // User declarations
public:        // User declarations
        __fastcall TForm1(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern bool Cont; 
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif

Но вот тут это не видно:
Код

//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
//---------------------------------------------------------------------------
USEFORM("Unit1.cpp", Form1);
//---------------------------------------------------------------------------
WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
        try
        {
                 Application->Initialize();
                 Application->CreateForm(__classid(TForm1), &Form1);
                 if(Cont)   //ВОТ ТУТ НЕ ВИДИТ
                 Application->Run();
        }
        catch (Exception &exception)
        {
                 Application->ShowException(&exception);
        }
        catch (...)
        {
                 try
                 {
                         throw Exception("");
                 }
                 catch (Exception &exception)
                 {
                         Application->ShowException(&exception);
                 }
        }
        return 0;
}
//---------------------------------------------------------------------------
 

Автор: Romikgy 20.7.2006, 17:04
Цитата(Teran @  20.7.2006,  15:54 Найти цитируемый пост)
Но вот тут это не видно:

в него это добавь
Цитата(Teran @  20.7.2006,  15:54 Найти цитируемый пост)
extern bool Cont; 

 

Автор: dumb 20.7.2006, 17:06
либо напиши в модуле с WinMain extern bool Cont;, либо там же #include "Unit1.h"

ps. совсем азы, однако. может книжку какую полистать? smile

edit: часто хочется кнопку "убить свой пост"... smile 

Автор: Teran 20.7.2006, 17:11
Цитата(dumb @  20.7.2006,  17:06 Найти цитируемый пост)
ps. совсем азы, однако. может книжку какую полистать?

может это и примитив- не спорю, просто ранше с этим не сталкивался 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)