使用ADO封装一个类,结果调试了我一整天。原来问题出在DLL里面有一个函数,这个函数返回TDataSet对象。所以现在总结DLL的编写要注意的地方如下:
1、DLL以及调用该DLL的应用程序,其第一个Uses必须为ShareMem或FastMM4。
2、绝对不能在DLL中创建一个对象后,返回该对象给调用的应用程序使用,否则释放对象时总会出问题(用的时候没有问题的)。
3、如果真的需要创建对象,则应该返回该对象的类(如:class of TComponent),然后由调用DLL的应用程序进行创建和释放。
4、DLL内部使用的对象可以自由在DLL里面创建和释放。