要实现的功能:C#作为服务端接收文本   delphi作为客户端发送文本我从网上找了两份管道通信,C#服务端和客户端通信没问题,delphi也没问题。现在我要用C#作为服务端 delphi作为客户端实现通信,创建管道实例和创建管道连接都没问题,问题是delphi写进去的文本C#解析不出来, 代码参考如下:
注:C#的api函数参数的定义
[DllImport("kernel32.dll", SetLastError = true)]
public static extern bool ReadFile(
            IntPtr hHandle,    byte[] lpBuffer,    
            uint nNumberOfBytesToRead,
            byte[] lpNumberOfBytesRead,
            uint lpOverlapped,
            uint lpOverlapped
            );
delphi写入的参数:
bytesWrite:DWORD;
WriteFile(pipeHandle,pchar('文本')^,length('文本'),bytesWrite,nil);C#去读参数的时候
     byte[] numReadWritten = new byte[4];
     byte[] intBytes = new byte[4];     NamedPipeNative.ReadFile(pipeHandle, intBytes, 4, numReadWritten, 0);     int len = BitConverter.ToInt32(intBytes, 0);     byte[] recBuffer=new byte[len];     NamedPipeNative.ReadFile(pipeHandle, recBuffer, (uint)len, numReadWritten, 0);     // 取得客户端发送的信息
     string str=Encoding.UTF8.GetString(recBuffer);//解析二进制?程序走到此处鼠标放到str显示\0\0\0\0\0\0\0\0点进去显示空。现在C#是读不出来delphi写进去的pchar('文本')^ ,我现在的理解是C#处理的是二进制,delphi传入的是指针?C#定义api函数readfile的时候定义的第二个参数类型是byte数组,那么delphi需要传入什么样的值呢?二进制?我想C#和delphi在符合api函数接口的条件下,把数据类型一致了是不是就行了?请高手帮忙!