2012-01-08 56 views
1

我想使用Visual C++(2010)編譯SDL庫,並使用Visual Leak Detector在另一個調用SDL的程序中查找內存泄漏。使用VLD編譯C代碼

問題是vld.h是一個C++庫,而SDL.c是一個C程序。因此,當我#包括,源不編譯爲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?

+0

什麼是C++特定結構?在代碼中我沒有看到任何特定於C++的東西。 – 2012-01-09 00:19:24

+0

我不確定(我只做過C++,而且我不擅長)。我認爲這是代碼。它編譯在C++程序中,但是在SDL.C中時,它會創建以下錯誤: 1> c:\ program files(x86)\ visual leak detector \ include \ vld_def.h(44):error C2143:syntax錯誤:在'*'之前缺少')' 1> c:\ program files(x86)\ visual leak detector \ include \ vld_def.h(44):錯誤C2081:'wchar_t':正式參數列表中的名稱非法 1 > c:\ program files(x86)\ visual leak detector \ include \ vld_def.h(44):error C2143:syntax error:missing'{'before'*' – lochok 2012-01-09 00:22:39

+0

1> c:\ program files(x86)\ visual泄漏檢測器\ include \ vld_def.h(44):錯誤C2059:語法錯誤:'type' 1> c:\ program files(x86)\ visual leak detector \ include \ vld_def.h(44):error C2059:syntax錯誤:')' – lochok 2012-01-09 00:22:47

回答

3

(與感謝@Matias Valdenegro)

問題是wchar_t。爲了能夠重新編譯SDL(我假設其他的C源文件),包括VLD,加

#include <wchar.h> 

vld.hvld_def.h。然後,SDL將很高興地進行編譯,並且可以與SDL程序一起使用來檢測源自Surfaces等的內存泄漏。

+1

或者,在#include 之前放置#include mloskot 2012-04-21 00:21:10