Форум: "Начинающим";
Текущий архив: 2006.01.08;
Скачать: [xml.tar.bz2];
ВнизОтправка почты из dll Найти похожие ветки
← →
yk © (2005-12-20 11:01) [0]library smtp;
уважаемые мастера!
хочу отправить почту из dll.
Для отправки почты использую Indy, которые лежат в dll
uses
ShareMem,
SysUtils,
Classes,
IdBaseComponent, IdComponent,
IdRawBase,IdRawClient,
IdIcmpClient, IdMessage,
IdTCPConnection,IdTCPClient,
IdMessageClient, IdSMTP, Forms,
Unit1 in "Unit1.pas" {Form1};
{$R *.res}
function SendMail(MailAddress:string;MailText:TStrings):string;cdecl;export;
begin
Form1:=TForm1.Create(Application);
with Form1 do begin
try
Result:="no";
IdSMTP.Host:="myhost";
IdSmTP.Port:=25;
IdSmtp.Username:="myuser";
Idsmtp.Password:="123";
idsmtp.AuthenticationType:=atnone;
IdSMTP.Connect(5000);
Msg.Clear;
Msg.Clear;
Msg.Subject:="Snabg";
Msg.From.Address:="myuser@myhost;
Msg.Recipients.EMailAddresses:="";
Msg.Recipients.EMailAddresses:=MailAddress;
Msg.Body.Clear;
Msg.Body.Text:=MAilText.Text;
IdSMTP.Send(msg);
IdSMTP.Disconnect;
Form1.Free;
except
begin
Result:="error";
Form1.Free;
end;
end;
end;
end;
exports
SendMail;
begin
isMultiThread:=True;
end.
-----------------
....
function SendMail(MailAddress:string;MailText:TStrings):string;cdecl; external "smtp";
procedure TForm1.Button1Click(Sender: TObject);
var
str:string;
begin
Str := SendMail("eyolkina@polygon.local",Memo1.Lines);
ShowMessage(Str);
end;
проблема: почта отправляется. Но когда хочу закрыть программу - выскакивает access violation. предположительно изза неправильной работы с памятью в dll.
Соответственно подключить эту библиоткеу как udf к IB не могу.
Подскажите где ошибка
← →
alex_*** © (2005-12-20 11:04) [1]парамерами передавай PChar или собери с runtime пакетами или пользуй sharemem
← →
alex_*** © (2005-12-20 11:05) [2]совет: используй TForm по назначению, а не в качестве DataModule
← →
yk © (2005-12-20 11:36) [3]странно.
но ошибка вылезает даже когда
uses
ShareMem,
SysUtils,
Classes,
IdBaseComponent,
IdComponent,
IdRawBase,
IdRawClient,
IdIcmpClient,
IdMessage,
IdTCPConnection,
IdTCPClient,
IdMessageClient,
IdSMTP,
Forms,
Unit1 in "Unit1.pas" {Form1};
function SendMail(MailAddress:pcHAR;MailText:pcHAR):pcHAR;cdecl;export;
begin
Result:="no";
end;
← →
umbra © (2005-12-20 11:40) [4]ShareMem должен быть первым в uses модуля проекта (*.dpr)
← →
yk © (2005-12-20 11:46) [5]
> umbra © (20.12.05 11:40) [4]
спасибо - ступила :))
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2006.01.08;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.009 c