我试图让fastMM4与C ++ Builder XE7应用程序一起工作,但我还没有成功。
为了测试fastMM4我创建了一个非常简单的vcl应用程序,我有意创建了内存泄漏。然后我按照FastMM4BCB.cpp
中给出的说明进行操作。
首先,我在编译FastMM4BCB.cpp
时遇到了问题:
[bcc64 Error] FastMM4BCB.cpp(2024):
assigning to 'GetMemFunc' (aka 'void *(*)(int) __attribute__((fastcall))')
from incompatible type 'void *(*)(NativeInt) __attribute__((fastcall))':
type mismatch at 1st parameter ('int' vs 'NativeInt' (aka 'long long'))
[bcc64 Error] FastMM4BCB.cpp(2026):
assigning to
'ReallocMemFunc' (aka 'void *(*)(void *, int) __attribute__((fastcall))')
from incompatible type 'void *(*)(void *, NativeInt) __attribute__((fastcall))':
type mismatch at 2nd parameter ('int' vs 'NativeInt' (aka 'long long'))
但是,我通过禁用DetectMMOperationsAfterUninstall
文件中的选项FastMM4Options.inc
来摆脱这些问题。但这真的不是必要的吗?
当我得到它进行编译并且我可以运行我的应用程序时,我得到一个弹出窗口,指出“由于另一个第三方内存管理器已经安装了自己,因此无法安装FastMM4。”
我试图谷歌为什么会发生这种情况,但我发现只需要取消选中动态RTL的使用,我需要在使用FastMM4BCB.cpp
和{{{{}}之前使用pragma链接USEFORM
。 1}}需要成为项目中的第一个单元。我想我已经这样做了。你能告诉我这个弹出窗口出现的原因吗?