为什么Delphi下编写的控件在Delphi下比较稳定,但是到了VC的环境中就变得很不稳定。而且VC的环境会自动退出,总是返回异常内存位置XXXXX不能读.....

解决方案 »

  1.   

    控件内的变量类型是不是WINDOWS标准?比如string与pchar之类的转化
      

  2.   

    楼上的,我是通过Delphi的转换工具来转换的,如果不是标准的类型,转换工具应该不转换而已,应该不会出现内存读写错误吧
      

  3.   

    楼上的,VC我不是很熟,所以只有用Delphi写。
    我用的是Delphi自己的新建ACtiveX Control,然后转换~!
      

  4.   

    总的来说,vc写的dll是比较通用的,delphi写要要注意那些数据类型问题
      

  5.   

    还有一个要注意的地方就是,pascal和C的参数入栈方式是不同的,pascal用的是register,C用的是stdcall,一个从左到右,一个从右到左,而且pascal是优先考虑用寄存器保存参数,然后再用栈.所以在你的方法中应该加入stdcall关键字然后再给C调用,否则真的会有内存读写错误的
      

  6.   

    楼上的,我的事件和方法都加上了safecall,应该都没有问题了。我怀疑是资源释放的问题,我有几个几十个TList没有及时释放,但是资源释放不干净也应该是内存泄漏,不应该出现内存读错误啊?