使用VLD编译C代码

时间:2012-01-08 23:56:41

标签: c++ c visual-c++ sdl visual-leak-detector

我正在尝试使用Visual C ++(2010)编译SDL库,并使用Visual Leak Detector在另一个调用SDL的程序中查找内存泄漏。

问题是vld.h是一个C ++库,而SDL.c是一个C程序。因此,当我#include时,源代码不会编译,因为VLD似乎使用C ++特定的结构:

typedef int (__cdecl * VLD_REPORT_HOOK)(int reportType, wchar_t *message, int *returnValue);

__declspec(dllimport) int VLDSetReportHook(int mode,  VLD_REPORT_HOOK pfnNewHook);

我尝试将SDL.c编译为C ++程序,但是我收到了大量错误。

我有什么办法可以在SDL中加入VLD吗?

1 个答案:

答案 0 :(得分:3)

(感谢@Matias Valdenegro)

问题是wchar_t。为了能够重新编译SDL(我假设其他C源文件)以包含VLD,请添加

#include <wchar.h>

同时发送vld.hvld_def.h。然后SDL会愉快地编译,并且可以与SDL程序一起使用来检测源自Surfaces等的内存泄漏。