主程序调用一个DLL,DLL生成一系列SQL语句,类型是TStringList,大概是8M左右。现在DLL可以很好的生成,我希望用PChar类型传回
DLL中:
Result :=slSQL.gettext;
slSQL.clear;
主程序中
pBuffer :=abcdefg(*,*,*,*);//生成SQL的函数,引用DLL中的。
slSQL.Text :=pBuffer;
StrDispose(pBuffer);结果SQL太长导致内存管理器疯了。调试结果是同样的测试环境,出错的问题不同,有时提示主程序访问错误,有时提示dll访问错误。我现在快疯了,改成返回一个临时文件名的方式。没错误。请问如果我不希望在硬盘上生成临时文件,该怎么办?
DLL中:
Result :=slSQL.gettext;
slSQL.clear;
主程序中
pBuffer :=abcdefg(*,*,*,*);//生成SQL的函数,引用DLL中的。
slSQL.Text :=pBuffer;
StrDispose(pBuffer);结果SQL太长导致内存管理器疯了。调试结果是同样的测试环境,出错的问题不同,有时提示主程序访问错误,有时提示dll访问错误。我现在快疯了,改成返回一个临时文件名的方式。没错误。请问如果我不希望在硬盘上生成临时文件,该怎么办?
是不想有硬盘读写损耗,还是不想他人取得此sql?
如果是后者,dll可以生成加密的文件,使用函数先解密再使用
是我一个callback函数写错了。dll声明是PChar,而主程序写成string了。