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

关于PChar长度太短的有关问题

2013-07-09 
关于PChar长度太短的问题本帖最后由 EastonSoft 于 2011-07-04 22:49:55 编辑我现在需要写一个 函数,然后

关于PChar长度太短的问题
本帖最后由 EastonSoft 于 2011-07-04 22:49:55 编辑 我现在需要写一个 函数,然后将函数封装到DLL里面,在Form里面我的字符串是使用string,但是DLL里面我使用PChar后就会出现错误。后来我发现是PChar的长度不够。

函数如下:
function fun(Html:PChar):PChar;stdcall;

我在delphi里面另外做一个窗体项目,然后调用这个DLL里面的fun函数就会出现错误。我需要处理比较长的字符串,所以我现在不知道该怎么办。我的函数是用来处理HTML页面的,我需要将HTML代码传入函数。

错误代码Access violation at address 0040404B in module 'Project1.exe'. Read of address 01D39358.
[解决办法]
PChar的长度不够?
不会吧,你要处理多长

先把DLL中的函数移到主Form中看有无问题,是不是其它错误问题造成的
[解决办法]
var
  p:array[0..1023]of char;
...
  ZeroMemory(@P,1024);

再试试
[解决办法]
pChar怎么会不够,pChar是字符指针,只是给过去一个地址,函数中会自动去读那个地址开始的数据;

把Form里面定义的String 也定义成pChar试试  ;

你这个错误是访问无效内存地址啦,你跟踪调试一下,看看运行到什么地方报的错 。
[解决办法]
我以前用PCHAR也报错了,后来分配了一下内存就好了
  Response:PChar;
   GetMem(response,4200)         ;
   FreeMem(Response);
这样就没问题
[解决办法]
肯定是没有分配内存吧 Pchar不能直接用
[解决办法]
因为string的内存管理不大一样。

热点排行