我想创建一个项目,用于使用 C# 调用 C++ 方法。所以,我需要为我的所有 C++ 函数创建一个 dll 文件。但是当我在 y sqlite 源代码中遇到错误时,例如“AreFileApisASNSI 未声明的标识符”。因此,我将作为 mingw-w64 运行时包的一部分的 winbase.h 导入到我的 visual studio 2012 express DLL 项目中。导入文件后,出现许多错误,如下所示:-
错误 c4430:缺少类型说明符 - 假定为 int。注意:C++不支持默认-int
错误 C2143:语法错误:缺少“;”在“_stdcall”之前
error c1003 错误计数超过100;停止编译
错误 c2061:语法错误:标识符“WINBOOL”
错误 c2086:“int_CRT_INLINE”:重新定义
error c2143: 语法错误: 缺少 ';'在''之前
错误 C2146:语法错误:缺少“;”在标识符“LONGLONG”之前
错误 C2146:语法错误:缺少“;”在标识符“PVOID”之前
这些错误有什么解决办法吗?请帮忙!!
最佳答案
documentation因为该函数具有此 header 要求:
WinBase.h (include Windows.h)
这告诉您该函数是在 WinBase.h
中声明的,但是您应该包含 Windows.h
,而 Windows.h
又会包含 WinBase.h
。因此,您需要将包含更改为
#include <Windows.h>
考虑到您的编译器是 MSVC,我还想知道您为什么要谈论 mingw。该编译器附带一个全面的 Windows SDK。为什么要使用 mingw 的 SDK?
关于c++ - Winbase.h 不支持创建 DLL 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19048410/