我想创建一个项目用来使用c#调用c ++方法。所以,我需要为我所有的c ++函数创建一个dll文件。但是当我在sqlite源代码中遇到错误时,例如“AreFileApisASNSI未声明的标识符”。所以,我导入winbase.h,它是mingw-w64运行时包的一部分到我的visual studio 2012 express DLL项目。导入文件后,我收到许多错误,如下所示: -
错误c4430:缺少类型说明符 - 假定为int。注意:C ++不支持default - int
错误C2143:语法错误:缺少';'在'_stdcall'之前
错误c1003错误计数超过100;停止编译
错误c2061:语法错误:标识符'WINBOOL'
错误c2086:'int_CRT_INLINE':重新定义
错误c2143:语法错误:缺少';'在''
之前错误C2146:语法错误:缺少';'在标识符'LONGLONG'之前
错误C2146:语法错误:缺少';'在标识符“PVOID”之前
针对这些错误的任何解决方案?请帮助!!
答案 0 :(得分:1)
该函数的documentation具有此标头要求:
WinBase.h(包括Windows.h)
这告诉您该函数已在WinBase.h
中声明,但您应该包含Windows.h
,而WinBase.h
将包含#include <Windows.h>
。因此,您需要将包含更改为
{{1}}
我也想知道为什么你在考虑你的编译器是MSVC而mingw。该编译器附带了一个全面的Windows SDK。你为什么要使用mingw的SDK?