问个和sharemem有关的有关问题,请高手相助

问个和sharemem有关的问题,请高手相助。
我只知道,如果往dll里传入string参数,得uses sharemem,但是如果传入的参数是个record,包含了string类型的字段,又或者是类,比如TForm,这些都包含了string类型变量,需要uses sharemem吗?更或者,如果我传入的是pointer,指向的是一个string变量,在dll中转换为string类型变量使用,这样需要sharemem吗?为什么?谢谢。

------解决方案--------------------
如果是string类型字段,要再增加一个字段标识该string字段实际存储的长度,以便根据此长度读取数据
当然建议你别用string,干吗给自己找麻烦那
------解决方案--------------------

------解决方案--------------------
建议使用FastMM内存管理,替换原自带的内存管理,好处见FastMM说明
------解决方案--------------------
内存管理器是保证内存的申请和释放的一致性!看一下ShareMem.pas单元即可
------解决方案--------------------
带sharemem
------解决方案--------------------
所以在接口部分最好用一些基础数据类型,DLL内部使用string没有问题
------解决方案--------------------
你好,請改用pchar代替string,這樣可以減少不必要的問題發生,謝謝。
只要調用到string就一定要將sharemm放在第一個。
------解决方案--------------------
楼主是用FastMM吧,彻底摆脱ShareMem的烦恼
网上有下载,搜索下

FastMM 在外国 Delphi 社区非常有名,其主要目的就是重新实现一个高效、安全、稳定的内存管理器(Borland 的内存管理器问题多多,如 Dll 和 Exe 间无法共享,多线程下效率底--一些情况下甚至于低一个数量级!),在代号为 Dexter 的 Delphi 2006 没 release 之前已经听李维大肆鼓吹说 Dexter 如何出色,还在 **** 上说他 Demo 证明 FastMM 在 Delphi 和 BCB 下能提高 NNN% 的效率!

例子中在 Dll 和 Exe 之间传递 string 而不需要引用任何的 ShareMem 或 FastMM!
------解决方案--------------------
探讨
其实我是问,如果string变量不是直接参数,而是在class或record里,是否需要sharemem?

------解决方案--------------------
探讨
呃,那也从来不在exe、dll之间传递vcl组件吗?一般vcl都要用到string的。

------解决方案--------------------
用PChar...