问题-关于sharemem程序访问WEB出现内存错误处理
[delphi技术] 关于sharemem造成dll错误的处理办法
问题现象:如果程序和dll之间用string作为参数传递时容易出现错误
问题处理:需要在程序的uses中使用sharemem。
这个sharemem需要用在调用和被调用的情况时候都使用。往往我们会在主程序的时候忘掉了引用。切记主程序的.dpr文件中也要引用。
具体方法 project-view source 在uses后边加入 sharemem,这中情况只发生在传递参数未string情况下(还有动态数组,还没研究到,呵呵)。其他情况下不用调用。
注意:我们需要注意一个问题。你用sharemem编译出的dll和程序,可能在你的机子上运行很正常,但是在一台没有安装delphi的机子上就会出问题。这是因为,你咋安装delphi的同时,把所需要的dll都安装了。
怎么解决这个问题?都安装一遍delphi?!!呵呵,理论上是可以的,当然世界上没有这么笨的人。
当 uses sharemem, 时,请把borlndmm.dll拷贝到应用文件的同一路径下。borlndmm.dll在delphi的安装路径下,可以搜索一下。
[delphi技术]关于DELPHI程序访问WEB出现内存错误处理方法(2012-10-11)
问题现象:在多线程中用HTTP控件取WEB数据一直正常。但改为函数方式后,多线程同时访问WEB时,就出现错误。
代码例句{(HTTPRIO as CEMAISoap).GetDataSet('cemAIkey2008_*#',HLCJ_WebGetDataSet_Ssql);
只能单个线程使用,始终无法开启多个线程。报某内存出错。
问题处理:
1.后由同事发现每个单元由入uses sharemem 可以解决问题。
2.在技术交流群中发现。可以将函数参数中的STRING改为PCHAR()也可以解决问题。