c++ - Winbase.h 不支持创建 DLL 文件

标签 c++ winapi visual-studio-2012

我想创建一个项目,用于使用 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/

相关文章:

c# - 使用 Visual Studio 2012 部署时删除 ConnectionString

visual-studio-2012 - 有没有办法在 Visual Studio 项目模板中指定初始光标位置?

c++ - 用于创建字符串的 Variadic 模板函数

c++ - 为什么 Linux 将干净的 MAP_ANONYMOUS 内存页转储到核心转储?

c++ - 串行端口在调试中工作但不释放 c++ 代码块窗口

c - 如何将 Hook 和 Trampoline 函数合二为一以进行 WinAPI Hook

VB.NET 绝对奇怪的表单加载行为

c++ - ',' 或 ';' 之前的预期类名

c++ - 如何根据编译时参数使用内联函数的不同重载?

c++ - FreeLibrary 后堆损坏?