Форум: "Сети";
Текущий архив: 2002.07.18;
Скачать: [xml.tar.bz2];
ВнизГде зарыта собака? Найти похожие ветки
← →
spiderman (2002-05-07 15:42) [0]Надо отправить сообщение на другой комп. Из Internet"а много прог, одна из них:
implementation
type TNetMessageBufferSend = function(servername,
msgname,fromname:PWideChar; Buf:Pointer;
BufLen:DWord):word;
var NetMessageBufferSend:TNetMessageBufferSend;
procedure TForm1.Button1Click(Sender: TObject);
var
rname:lpcwstr;
buf:pointer;
text:string;
size:integer;
begin
@netmessagebuffersend:=nil;
rname:="128.1.5.2";
text:="Message from Sasha";
size:=sizeof(widechar)*length(text)+1;
getmem(buf,size);
pwidechar(buf):=stringtowidechar(text, buf, length(text)+1);
if netmessagebuffersend(nil,rname,nil,buf,size) <> no_error then
showmessage("error");
freemem(buf,size);
end;
Но работать не хочет и выдаёт:
... exception class EAccessViolation with message "Access Violation" at address 00000000. Read of address 00000000. ...
Пожалуйста помогите!
← →
ZZ (2002-05-07 16:08) [1]Уже срисовывать не могут по нормальному :)
см. http://delphi.xonix.ru/faq/show.php?m=lan&n=2
...PWideChar; Buf:Pointer; BufLen:DWord):word; STDCALL;
@netmessagebuffersend:=nil; - А это полный бред :)
← →
spiderman (2002-05-07 17:20) [2]Хорошо, но почему пишет "Файл связан с отсутствующим компонентом NETAPI32.dll:netmessagebuffersend"? Если он имеется C:\WIN\SYSTEM, и я помещал его в корневую папку.
← →
ZZ (2002-05-07 18:09) [3]Если в WinNT, то каталог System обычно для нее ничего не значит ( надо system32).
Если win9x, то посылай сообщения через mail-слоты (поищи примеры например на яндексе)
← →
Digitman (2002-05-07 18:23) [4]Имена экспортируемых PE-файлом ф-ций чувствительны к символьному регистру. Данная ф-ция представлена в netapi32.dll именно как "NetMessageBufferSend", ты же пытаешься импортировать ф-цию "nttmessagebuffersend", коей и в помине нет в данной библиотеке, о чем, собственно, системный PE-загрузчик тебя и извещает.
← →
MMarat (2002-05-08 13:00) [5]Лови рабочую:
function NetSend(const MsgName,SendMsg: string): Boolean;
var
PWCMsgName, PWCSendMsg: PWideChar;
Error: Word;
begin
try
Error := 1;
GetMem(PWCMsgName, 2*Length(MsgName)+2);
GetMem(PWCSendMsg, 2*Length(SendMsg)+2);
StringToWideChar(MsgName, PWCMsgName, Length(MsgName)+2);
StringToWideChar(SendMsg, PWCSendMsg, Length(SendMsg)+2);
Error := NetMessageBufferSend(nil, PWCMsgName, nil, PWCSendMsg, 2*Length(SendMsg));
finally
FreeMem(PWCMsgName);
FreeMem(PWCSendMsg);
Result := Error = 0;
end;
end;
if NetSend(komy, text)
then form1.StatusBar1.SimpleText:="Мессага отправлена"
else form1.StatusBar1.SimpleText:="Ошибка отпраки";
Страницы: 1 вся ветка
Форум: "Сети";
Текущий архив: 2002.07.18;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.008 c