使用 NetMessageBufferSend 函数时,  Uses中已经包含了ShellAPI,但是编译时提示NetmessageBufferSend没有定义,请问还要包含什么库之类的吗?

解决方案 »

  1.   

    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls;
    function ToUnicode(str:string;dest:PWideChar):integer;
    function SendMsg(Toh,From,Msg:string):integer;
    function NetMessageBufferSend(servername:PWideChar;
                                  MsgName:PWideChar;
                                  FromName:PWideChar;
                                  Buf: PWideChar;
                                  var BufLen:integer):integer;cdecl;
    type
      TForm1 = class(TForm)
        Button1: TButton;
        ComboBox1: TComboBox;
        Memo1: TMemo;
        procedure Button1Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation
    {$R *.dfm}////////////////////////////////////////
    function NetMessageBufferSend; external 'netapi32.dll' name 'NetMessageBufferSend';
    function ToUnicode(str:string;dest:PWideChar):integer;
    var
      len:integer;
    begin
      StringToWideChar(str,dest,len);
      Result:=len;
    end;
    function SendMsg(Toh,From,Msg:string):integer;
    var
      ToName :array [0..64] of WideChar;
      WMsgText:array [0..1000] of WideChar;
      MsgLen, i:integer;
    begin
      for i := 0 to 64 do ToName[i] := #0;
      ToUnicode(Toh,ToName);
      for i := 0 to 1000 do WMsgText[i] := #0;
      ToUnicode(Msg,WMsgText);
      Result:=NetMessageBufferSend(nil,ToName,nil,@WMsgText,MsgLen);
    end;
    procedure TForm1.Button1Click(Sender: TObject);
    var
    size:integer;
    begin
     sendmsg('192.168.2.16',',192.168.2.16','kjjkkjkjkj');
    end;end.