Помогите чайнику в билдере!!!!
От: Denis-st  
Дата: 30.01.02 13:42
Оценка:
Такая проблема. Исходник:

#include <NMsmtp.hpp>
#pragma hdrstop

TNMSMTP *NMSMTP1;
#pragma argsused
WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
NMSMTP1->Host = "16.20.0.2";
NMSMTP1->UserID = "uvarov";
NMSMTP1->Connect();
и т.д.
Строка Connect() выдает ошибку Access violation....
что ей надо-то? Если объект NMSMTP1 просто кинуть на форму, то все работает, но дело как раз в том, что хочу запускать енто без формы.

Если вопрос глупый, то сильно не бейте.
Re: Помогите чайнику в билдере!!!!
От: VVV Россия  
Дата: 30.01.02 14:00
Оценка:
Здравствуйте Denis-st, Вы писали:

DS>Такая проблема. Исходник:


DS>#include <NMsmtp.hpp>

DS>#pragma hdrstop

DS>TNMSMTP *NMSMTP1;

DS>#pragma argsused
DS>WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
DS>{
NMSMTP1->>Host = "16.20.0.2";
NMSMTP1->>UserID = "uvarov";
NMSMTP1->>Connect();
DS>и т.д.
DS>Строка Connect() выдает ошибку Access violation....
DS>что ей надо-то? Если объект NMSMTP1 просто кинуть на форму, то все работает, но дело как раз в том, что хочу запускать енто без формы.

DS>Если вопрос глупый, то сильно не бейте.

DS>

А кто создаёт NMSMTP1? Может, надо сначала сделать что-то в этом роде NMSMTP1=new TNMSMTP(...)? Иначе, обращаешься по NULL, что не всегда хорошо
Re: Помогите чайнику в билдере!!!!
От: Trantor Россия  
Дата: 30.01.02 14:02
Оценка:
Здравствуйте Denis-st, Вы писали:

DS>Такая проблема. Исходник:


DS>#include <NMsmtp.hpp>

DS>#pragma hdrstop

DS>TNMSMTP *NMSMTP1;

DS>#pragma argsused
DS>WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
DS>{
NMSMTP1->>Host = "16.20.0.2";
NMSMTP1->>UserID = "uvarov";
NMSMTP1->>Connect();
DS>и т.д.
DS>Строка Connect() выдает ошибку Access violation....
DS>что ей надо-то? Если объект NMSMTP1 просто кинуть на форму, то все работает, но дело как раз в том, что хочу запускать енто без формы.

DS>Если вопрос глупый, то сильно не бейте.

DS>

Не знаю как на счет билдера, но думаю объект NMSMTP1 создать надо...
В жизни мало быть умным, надо еще быть не дураком.
Re[2]: Помогите чайнику в билдере!!!!
От: Denis-st  
Дата: 30.01.02 14:22
Оценка:
Здравствуйте Trantor, Вы писали:

T>Не знаю как на счет билдера, но думаю объект NMSMTP1 создать надо...

T>
Да создавал я объект. Писал NMSMTP = new TNMSMTP;
ругается, говорит, что после "=" должно быть название типа.
Видел похожий исходник на дельфях, там идет обращение к методу Create().
В билдере такого метода не оказалось. Вот такая грусть..........
Re[3]: Помогите чайнику в билдере!!!!
От: Holms США  
Дата: 30.01.02 14:55
Оценка:
Здравствуйте Denis-st, Вы писали:

DS>Здравствуйте Trantor, Вы писали:


T>>Не знаю как на счет билдера, но думаю объект NMSMTP1 создать надо...

T>>
DS>Да создавал я объект. Писал NMSMTP = new TNMSMTP;
DS>ругается, говорит, что после "=" должно быть название типа.
DS>Видел похожий исходник на дельфях, там идет обращение к методу Create().
DS>В билдере такого метода не оказалось. Вот такая грусть..........

Вопросы по Билдеру лучше задавать здесь.

А создается обьект так.


NMSMTP = new TNMSMTP((TComponent*)NULL); //владелец NULL, так как покуда я вижу у тебя приложение без формы
try
{
....
}
__finally
{
 NMSMTP->Free();//так как владелец NULL обьект надо убить самим
}
The life is relative and reversible.
Re[3]: Помогите чайнику в билдере!!!!
От: grs Россия  
Дата: 30.01.02 14:57
Оценка:
Здравствуйте Denis-st, Вы писали:

DS>Здравствуйте Trantor, Вы писали:


T>>Не знаю как на счет билдера, но думаю объект NMSMTP1 создать надо...

T>>
DS>Да создавал я объект. Писал NMSMTP = new TNMSMTP;
DS>ругается, говорит, что после "=" должно быть название типа.
DS>Видел похожий исходник на дельфях, там идет обращение к методу Create().
DS>В билдере такого метода не оказалось. Вот такая грусть..........

А там в конструкторе нужно указывать параметр TComponent* owner. Так что так как ты написал точно не получится. Попробуй что-нибудь типа NMSMTP = new TNMSMTP(NULL); (извини, самому проверять лень ). Но в любом случае, не создавая объект, ждать, что с ним будут какие-то вызовы работать несколько наивно...
Re[4]: Помогите чайнику в билдере!!!!
От: Flamer Кипр http://users.livejournal.com/_flamer_/
Дата: 31.01.02 06:12
Оценка:
Здравствуйте Holms, Вы писали:

H>Здравствуйте Denis-st, Вы писали:


DS>>Здравствуйте Trantor, Вы писали:


T>>>Не знаю как на счет билдера, но думаю объект NMSMTP1 создать надо...

T>>>
DS>>Да создавал я объект. Писал NMSMTP = new TNMSMTP;
DS>>ругается, говорит, что после "=" должно быть название типа.
DS>>Видел похожий исходник на дельфях, там идет обращение к методу Create().
DS>>В билдере такого метода не оказалось. Вот такая грусть..........

H>Вопросы по Билдеру лучше задавать здесь.


H>А создается обьект так.



H>
H>NMSMTP = new TNMSMTP((TComponent*)NULL); 
H>try
H>{
H>....
H>}
H>__finally
H>{
H> NMSMTP->Free();//так как владелец NULL обьект надо убить самим
H>}
H>


Да, и лучше все-таки не NMSMTP->Free() (этот метод в открытую юзать не рекомендует сам Багланд), а delete NMSMTP;
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.