0

c# を使用して c++ メソッドを呼び出すためのプロジェクトを作成したいと思います。したがって、すべての C++ 関数の dll ファイルを作成する必要があります。しかし、「AreFileApisASNSI宣言されていない識別子」などのy sqliteソースコードでエラーが発生した場合。そこで、mingw-w64 ランタイム パッケージの一部である winbase.h を Visual Studio 2012 Express DLL プロジェクトにインポートします。ファイルをインポートした後、以下のような多くのエラーが発生します:-

エラー c4430: 型指定子がありません - int と見なされます。注: C++ はデフォルトをサポートしていません - int

エラー C2143: 構文エラー: ';' がありません 「_stdcall」の前

エラー 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 に答える