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 просто кинуть на форму, то все работает, но дело как раз в том, что хочу запускать енто без формы.
Здравствуйте 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, что не всегда хорошо
Здравствуйте 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 создать надо...
В жизни мало быть умным, надо еще быть не дураком.
Здравствуйте Trantor, Вы писали:
T>Не знаю как на счет билдера, но думаю объект NMSMTP1 создать надо... T>
Да создавал я объект. Писал NMSMTP = new TNMSMTP;
ругается, говорит, что после "=" должно быть название типа.
Видел похожий исходник на дельфях, там идет обращение к методу Create().
В билдере такого метода не оказалось. Вот такая грусть..........
Здравствуйте 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 обьект надо убить самим
}
Здравствуйте Denis-st, Вы писали:
DS>Здравствуйте Trantor, Вы писали:
T>>Не знаю как на счет билдера, но думаю объект NMSMTP1 создать надо... T>> DS>Да создавал я объект. Писал NMSMTP = new TNMSMTP; DS>ругается, говорит, что после "=" должно быть название типа. DS>Видел похожий исходник на дельфях, там идет обращение к методу Create(). DS>В билдере такого метода не оказалось. Вот такая грусть..........
А там в конструкторе нужно указывать параметр TComponent* owner. Так что так как ты написал точно не получится. Попробуй что-нибудь типа NMSMTP = new TNMSMTP(NULL); (извини, самому проверять лень ). Но в любом случае, не создавая объект, ждать, что с ним будут какие-то вызовы работать несколько наивно...
Здравствуйте 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;