2013-09-27 24 views
0

我想创建一个使用c#调用C++方法的项目。所以,我需要为我的所有C++函数创建一个dll文件。但是,当我在y sqlite源代码中出现错误,如“AreFileApisASNSI未声明的标识符”。因此,我将作为mingw-w64运行时包的一部分的winbase.h导入到我的visual studio 2012 express DLL项目中。导入文件后,出现如下错误: -Winbase.h不支持创建DLL文件

错误c4430:缺少类型说明符 - int假定。注意:C++不支持默认值 - int

错误C2143:语法错误:缺少';' '_stdcall'前

错误c1003错误计数超过100;停止汇编

错误C2061:语法错误:标识符 'WINBOOL'

错误c2086: 'int_CRT_INLINE':重新定义

错误C2143:语法错误:缺少 ';' '

错误C2146:语法错误:缺少';'在标识符'LONGLONG'之前

错误C2146:语法错误:缺少';'之前标识符'PVOID'

对于那些错误的任何解决方案?请帮忙!!

回答

1

documentation的功能有这个头要求:

WinBase.h (include Windows.h)

这是告诉你该函数在WinBase.h声明,但你应该包括Windows.h这反过来将包括WinBase.h。所以,你需要改变你的包括

#include <Windows.h> 

我也想知道为什么你说的mingw考虑到你的编译器是MSVC。该编译器附带了一个全面的Windows SDK。你为什么要使用mingw的SDK?

+0

我有包括windows.h但它仍然得到相同的错误。我不知道如何解决它。 – tontontv

+0

你通过做我说的来解决它。第1步:删除'#include '。第2步:添加'#包括'。 –

+0

谢谢。但我完全遵循你的步骤,但它仍然得到相同的错误。 – tontontv