我变得疯了。我只有一个标题和cpp而且它没有编译:
.h如下:
#pragma once
#include <string>
#include <map>
#include <windows.h>
class Activate
{
public:
Activate();
~Activate();
int accion(map<string, string>& mapa);
};
和cpp这一个:
#include "Activate.h"
using namespace std;
Activate::Activate()
{
}
Activate::~Activate()
{
}
int Activate::accion(map<string, string>& mapa){}
我得到上面提到的错误:
1&gt; c:\ users \ dani.roca \ desktop \ autocad files \ mfc dll \ project1 \ project1 \ activate.h(19):错误C2061:语法错误: 标识符&#39; map&#39;
中找到
1&gt; c:\ users \ dani.roca \ desktop \ autocad files \ mfc dll \ project1 \ project1 \ activate.cpp(13):错误C2511:&#39; int 激活:: accion(std :: map&lt; _Kty,_Ty&gt;&amp;)&#39; :重载的成员函数 未在&#39;激活&#39;
#include "Activate.h"
using namespace std;
Activate::Activate()
{
}
Activate::~Activate()
{
}
int Activate::accion(std::map<string, string>& mapa){}
和这个
class Activate
{
public:
Activate();
~Activate();
int accion(std::map<std::string, std::string>& mapa);
};
然后出现了新的错误:
1&gt; LINK:致命错误LNK1561:必须定义入口点
答案 0 :(得分:3)
将int accion(map<string, string>& mapa);
替换为
int accion(std::map<std::string, std::string>& mapa);
// ^^^^^ ^^^^^ ^^^^^
如果您加入标题,则using namespace std
尚未生效。
作为替代方案,您可以在班级中添加using std::map;
和using std::string;
。
class Activate
{
public:
Activate();
~Activate();
using std::map;
using std::string;
int accion(map<string, string>& mapa);
};