类型转换提示有内存错误,请教,马上给分
var i:pchar;
s:cardinal ;
str:string ;
begin
s:=100;
if getcomputername(i,s) then
str := StrPas(i);
问题点数:100、回复次数:8Top
1 楼Little2000(rainy)回复于 2003-12-02 12:09:10 得分 1
var i:pchar;
s:cardinal ;
str:string ;
begin
s:=100;
if getcomputername(i,s) then
str := i;Top
2 楼aiirii(ari-http://spaces.msn.com/members/aiirii/)回复于 2003-12-02 12:09:54 得分 10
不是吧??發了三個貼??
begin
SetLength(str, 1000);
GetComputername(s, 1000);
str := pchar(str);
Top
3 楼aiirii(ari-http://spaces.msn.com/members/aiirii/)回复于 2003-12-02 12:11:51 得分 6
在msdn:
BOOL GetComputerName(
LPTSTR lpBuffer, // computer name
LPDWORD lpnSize // size of name buffer
);
第一個參數是放緩衝區的, 第二個是放接收緩衝區大小的, 你參數都錯了, 然後, 指針i又沒分配內存!!!
Top
4 楼angle097113(深思不解)回复于 2003-12-02 12:13:50 得分 10
应该是你的参数类型的错误吧!Top
5 楼hacking(hacking)回复于 2003-12-02 12:14:00 得分 35
procedure TForm1.Button1Click(Sender: TObject);
var
Size: DWORD;
LocalMachine: array [0..MAX_COMPUTERNAME_LENGTH] of char;
Str:String;
begin
Size := Sizeof(LocalMachine);
if GetComputerName(LocalMachine, Size) then
Str:=strpas(LocalMachine);
showmessage(str);
end;Top
6 楼liunini(妮妮)回复于 2003-12-02 12:16:04 得分 35
procedure TForm1.Button1Click(Sender: TObject);
var i:pchar;
s:Dword ;
str:string ;
begin
s:=100;
getmem(i,101);
if getcomputername(i,s) then
str := StrPas(i);
form1.caption:=str;
end;
你竟然发了许多:oTop
7 楼47522341(睡到8:30)回复于 2003-12-02 12:19:09 得分 3
var str: string;
begin
SetLength(str, 1000);
GetComputername(s, 1000);
str := pchar(str);
end;
Top
8 楼lizhu(丽珠)回复于 2003-12-02 13:11:36 得分 0
各位对不起,我多发了几次,完全是因为发了之后,屏幕刷新了也看不到我的问题所致,
请多包含!Top




