错误C4430:缺少类型说明符 - 假设为int?

时间:2014-06-23 09:59:44

标签: windows visual-c++ visual-studio-2012 mfc

我编写了一个回调方法,当我尝试在vs2012中编译项目时,我收到以下错误:

 error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
 error C2143: syntax error : missing ',' before '&'

同一行中存在两个错误。

以下是我正在尝试的代码:

#include <windows.h>
#include "atlstr.h"

///////////////////////////////////////////////////////////////////////////////
class CInf;
typedef BOOL (*PENUMDEVCALLBACK)(CInf* inf, const CString& devname, const CString& instsecname, const CStringArray& devid, PVOID context, DWORD& code);

我认为错误将出现在CStringArray&参数中,因为当我包含afxcoll.h时。

the fatal error C1189: #error : WINDOWS.H already included. MFC apps must not #include <windows.h>.

当我删除windows.h时。上面的错误消失但我也需要windows.h头。

知道如何将windows.hafxcoll.h包含在同一个文件中。

1 个答案:

答案 0 :(得分:0)

不可能只包含MFC的隔离部分。如果要使用CStringArray,则需要包含afx.h或afxwin.h文件。

可以单独使用CString。如果你只是想要一个CString数组,并且你不需要完整的MFC,那么使用std :: vector会更容易。 CString适用于所有STL容器。