实际上动态数组就是一个指针,所以
CopyMemory(@Buffer,sTemp,3);应当改为CopyMemory(Buffer,sTemp,3);
同样
CopyMemory(PChar(sStr),Buffer,2);
就应当可以了
CopyMemory(@Buffer,sTemp,3);应当改为CopyMemory(Buffer,sTemp,3);
同样
CopyMemory(PChar(sStr),Buffer,2);
就应当可以了
解决方案 »
- 问大家个数据库语句的问题~~急啊 在线等~~
- Delphi2006中怎样开发CORBA
- 请帮忙分析一段程序
- 高手帮我,怎样在程序中重命名目录?(调用cmd的方法除外)另:如调用cmd是否在9x下调用command.exe xp或win2000下调用cmd.exe?
- dbgrid的问题,谢谢
- 关于程序调试的问题
- 这个问题困扰我很久了!解决就是100分
- 用DELPHI如何编写ISAPI过滤器(IIS)
- 关于QUERY1的问题
- 哪位有为DELPHI开发的UML工具?
- 请问有计算两个日期间相差天数的函数吗??
- 我程序的目的是从sql server中的三张表中分别导数据至本地dbf库(也是三个),请问用多线程做是否可行?
var
sTemp,pTemp:PChar;
sStr:string;
Buffer:array of byte;
begin
sTemp:='123';
SetLength(Buffer,10);
CopyMemory(Buffer,sTemp,3);
SetLength(sStr,2);
CopyMemory(PChar(sStr),Buffer,2);
ShowMessage(sStr);
end;
可以看一下:
procedure CopyMemory(Destination: Pointer; Source: Pointer; Length: DWORD);
begin
Move(Source^, Destination^, Length);
end;
copymemory的参数已经是地址,所以不用再用@.
sTemp,pTemp:string;
sStr:string;
Buffer:array of byte;
begin
sTemp:='12345';
SetLength(Buffer,10);
CopyMemory(@Buffer,@sTemp[1],3);
SetLength(sStr,2);
sStr:=Copy(Buffer,1,2);
ShowMessage(sStr);
end;试试吧!应该可以的!