0

私の C++ プログラムでは、私の a* アルゴリズムの機能を収容する dll を作成しようとしています。マップを渡そうとすると問題が発生します。最初に 2 次元配列を使用しようとしましたが、マップのサイズが制限されたため、ベクターでベクターを使用しようとしていますが、奇妙な問題が発生し続けています。

私のdlls .hファイルでは:

namespace IInterface
{
class IInterface
{
public:
    // Sets the map
    static __declspec(dllexport) void setMap(int h, int w,vector<vector<byte>> &myarray);
private:
    static vector<vector<byte>> mymap;
}

私が持っている.cppで最後に:

#include "IInterface.h"
#include <Windows.h>
#include <stdexcept>
#include <vector>
using namespace std;

namespace IInterface
{
void IInterface::setMap(int h, int w,vector<vector<byte>> &myarray)
{
    mymap = myarray;
}
}

コードが問題ないように見えても、コンパイル時にいくつかのエラーが発生します。

error C2061: syntax error : identifier 'vector' c:\users\steven\documents\github\schooladvgdproject\game code\deathastardll\iinterface.h    7   1   DMAstarDLL
error C2143: syntax error : missing ';' before '<'  c:\users\steven\documents\github\schooladvgdproject\game code\deathastardll\iinterface.h    21  1   DMAstarDLL
error C2238: unexpected token(s) preceding ';'  c:\users\steven\documents\github\schooladvgdproject\game code\deathastardll\iinterface.h    21  1   DMAstarDLL
error C2511: 'void IInterface::IInterface::setMap(int,int,std::vector<_Ty> &)' : overloaded member function not found in 'IInterface::IInterface'   c:\users\steven\documents\github\schooladvgdproject\game code\deathastardll\iinterface.cpp  13  1   DMAstarDLL
error C4430: missing type specifier - int assumed. Note: C++ does not support default-int   c:\users\steven\documents\github\schooladvgdproject\game code\deathastardll\iinterface.h    21  1   DMAstarDLL

いくつかのサンプルを見ましたが、このシナリオに一致するものは実際にはありませんでした。何か重要なことを忘れているのではないかとこっそり疑っていますが、それを見ることができません。これを機能させるためのアイデアはありますか?

4

1 に答える 1