首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

这个简单的东西困扰小弟我一个礼拜了.问出来你们别嘲笑小弟我(D2010).

2012-03-23 
这个简单的东西困扰我一个礼拜了...问出来你们别嘲笑我(D2010)...ShowMessage(WideCharToString(PWideChar

这个简单的东西困扰我一个礼拜了...问出来你们别嘲笑我(D2010)...
ShowMessage(WideCharToString(PWideChar(byName)));
  //能正常show出来。
  btnNewClientname.Text := WideCharToString(PWideChar(byName));
  //给这个edit赋值出现错误:
----------
Debugger Fault Notification
----------
Project F:\Yolo-E8HotelMis\YoloE8HotelMis.exe faulted with message: 'access violation at 0x00da664a: read of address 0x000006ad'. Process Stopped. Use Step or Run to continue.
----------
OK  
----------


太郁闷了.....招揽高手  

环境是【Win7+delphi2010】
---------------------------------------------- 
byName 是一个 PAnsiChar 类型的全局变量。

软件装载时:
getmem(byName, 30);
软件退出时:
FreeMem(byName);

这个东西赋值是这样:
for i := 0 to 29 do
  byName[i] := AnsiChar(Readbuf[i + 7]);

至于Readbuf是调用一个Dll函数的回传值。dll的delphi函数这样定义的:
function OneCommand(cmd: integer; dLength: integer; pBuff: PByte;
  nTypeAB: integer; nOutOfTime: integer): integer; stdcall;
External 'DllCom.dll' name 'OneCommand';
里面的pBuff就是Readbuf.

Readbuf.的delphi的定义是这样的:
Readbuf: array [0 .. 2047] of Byte;


[解决办法]
可以的話,你發source過來我調試看看...
mail我短信息給你

热点排行