请问一个简单的问题?
我在查软件开发包的时候有这样一人函数
getcomputername
它的第一个参数类型是lptstr,返回值是bool,而我不知该怎么接收这值.请问这个lptstr是个什么值,要怎么样才能运用.
我觉得这是一类型的问题它还有lpdword,lcid,dword,lpctstr,currencyfmt,ulong
之类的,这些在delphi中都没有,要用怎么转换啊!

解决方案 »

  1.   

    function GetPCName: string;
    var
      buffer: array[0..MAX_COMPUTERNAME_LENGTH + 1] of Char;
      Size: Cardinal;
    begin
      Size := MAX_COMPUTERNAME_LENGTH + 1;
      Windows.GetComputerName(@buffer, Size);
      Result := StrPas(buffer);
    end;
      

  2.   

    //  yurenjf(极限)的不错,
    //  GetComputerName的第一个参数是PChar型,第二个参数是无符号整形;
    //  返回是是否调用成功
    function GetPCName: string;
    var
      Buffer: PChar;                         // Buffer 为字符指针;
      Size: DWORD;
    begin
      Size := MAX_COMPUTERNAME_LENGTH + 1;
      Buffer := AllocMem(Size);              // 分配内存;
      if Buffer = nil then Exit;             // 分配失败,退出;
      try
        Windows.GetComputerName(Buffer, Size); // 调用 GetComputerName;
        Result := Buffer;
      finally
        FreeMem(Buffer, Size);               // 释放内存;
      end;
    end;
      

  3.   

    [Error] Unit1.pas(37): Unsatisfied forward or external declaration: 'TForm1.GetPCName'我试了两个的做法,都有这样的错误.,请问这是什么回事.?