我用win32 service形式书写的应用程序,调用外部的一个第三方DLL时,会出现Access Violant错误(不是每次调用都会出错),而把同样的代码放进普通win32程序中,则不会出错,请问是出了什么问题啊?是service进程和普通win32进程在内存机制上有什么区别吗?

解决方案 »

  1.   

    我可能知道大概是怎么回事,不过问题点数好少啊,嘿嘿……
      算了,开玩笑的,呵呵。
      提供一点信息,可能跟这个有点关系:
      Windows的标准字符串格式是PChar,而在Delphi中是String,当在DLL的参数中有字符串类型时,如果不作相应的处理,可能会引起你所说的错误。如果是这样引起的错误,解决方法如下:
        在工程文件(就是Project->View Source打开的那个那个文件)包含(uses)单元文件的代码段的第一行引用Sharemem单元。并且程序发布时需把Delphi目录下的Borlndmm.dll打包。