0

我想创建一个项目用于使用 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”:重新定义

错误 c2143:语法错误:缺少 ';' 前 ''

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

错误 C2146:语法错误:缺少“;” 在标识符“PVOID”之前

这些错误的任何解决方案?请帮忙!!

4

1 回答 1

1

该函数的文档具有此标头要求:

WinBase.h(包括 Windows.h)

这告诉您该函数是在 中声明的WinBase.h,但您应该包含Windows.h该函数,而该函数又将包含WinBase.h. 因此,您需要将包含更改为

#include <Windows.h>

考虑到您的编译器是 MSVC,我还想知道您为什么要谈论 mingw。该编译器附带一个全面的 Windows SDK。为什么要使用 mingw 的 SDK?

于 2013-09-27T10:25:05.883 回答