一个很急的问题,大家帮帮我(200分)

  • 主题发起人 主题发起人 yanweidong
  • 开始时间 开始时间
Y

yanweidong

Unregistered / Unconfirmed
GUEST, unregistred user!
我想写一个用NetMessageBufferSend发送消息的程序。可是就是不行。大家帮我看看错在那里
_______________________________________________________________________
procedure HKSendread.Execute;
begin
Self.NetSend('newp4','127.0.0.1','哈哈');
end;

function HKSendread.NetSend(dest, Source, Msg: string): Longint;
type
TNetMessageBufferSendFunction = function(servername, msgname, fromname: PWideChar;
buf: PWideChar; buflen: Cardinal): Longint;
stdcall;
var
NetMessageBufferSend: TNetMessageBufferSendFunction;
SourceWideChar: PWideChar;
DestWideChar: PWideChar;
MessagetextWideChar: PWideChar;
Handle: THandle;
begin
Handle := LoadLibrary('NETAPI32.DLL');
if Handle = 0 then
begin
Result := GetLastError;
Exit;
end;
@NetMessageBufferSend := GetProcAddress(Handle, 'NetMessageBufferSend');
if @NetMessageBufferSend = nil then
begin
Result := GetLastError;
Exit;
end;

MessagetextWideChar := nil;
SourceWideChar := nil;
DestWideChar := nil;

try
GetMem(MessagetextWideChar, Length(Msg) * SizeOf(WideChar) + 1);
GetMem(DestWideChar, 20 * SizeOf(WideChar) + 1);
StringToWideChar(Msg, MessagetextWideChar, Length(Msg) * SizeOf(WideChar) + 1);
StringToWideChar(Dest, DestWideChar, 20 * SizeOf(WideChar) + 1);

if Source = '' then
Result := NetMessageBufferSend(nil, DestWideChar, nil,
MessagetextWideChar, Length(Msg) * SizeOf(WideChar) + 1)
else
begin
GetMem(SourceWideChar, 20 * SizeOf(WideChar) + 1);
StringToWideChar(Source, SourceWideChar, 20 * SizeOf(WideChar) + 1);
Result := NetMessageBufferSend(nil, DestWideChar, SourceWideChar,
MessagetextWideChar, Length(Msg) * SizeOf(WideChar) + 1);
FreeMem(SourceWideChar);
end;
finally
FreeMem(MessagetextWideChar);
FreeLibrary(Handle);
end;
end;
 
沒有問題,執行完全正確.
Self.NetSend('newp4','127.0.0.1','哈哈');
newp4-->127.0.0.1測試通過
 
有可能你發送消息的機器newp4不存在的原因
 
啊,你测试通过。为什么我这里不行呀!

我是用的多线程。兄弟我把程序给你。你帮我看一下,好吗?

http://www.adhome.net/hkmessager.rar
 
就差最后一步了。

在怎么都不行。唉!
 
你的問題會不會出在多线程上.
下載不了您的東西.
 
我想也是。
http://www.szshownet.com/HKMessager.rar

现在这个可以下载了。
我的那个服务器出问题了~!
唉~!,麻烦兄弟了~!
 
問題解決了嗎?
問題一定出在多線程的調用了.
 
Messager_SendRead.HKSendread.Create(True);
这样线程是挂起的,应该为Messager_SendRead.HKSendread.Create(False);
 

Similar threads

I
回复
0
查看
546
import
I
I
回复
0
查看
825
import
I
I
回复
0
查看
1K
import
I
I
回复
0
查看
611
import
I
I
回复
0
查看
758
import
I
后退
顶部