std::map::operator[]违规访问windows上的内存
std::map::operator[] Violation access memory on windows
我的一个项目遇到了一个大问题。这个项目是跨平台的。它在Linux上运行得很好,但在windows上,当填充映射时,我有一个违规访问内存。
我的main.cpp看起来像这样:
Server *s = new Server;
s->init(4253);
SERVER.CPP:
this->_commandManager.addFunction(C_CREATEROOM, &Server::createRoom);
this->_commandManager.addFunction(C_JOINROOM, &Server::joinRoom);
this->_commandManager.addFunction(C_LAUNCHGAME, &Server::createGame);
最后是我的指挥官:
bool CommandManager::addFunction(E_COMMAND type, bool (Server::*cmd)(ANetwork::t_frame frame, void *data))
{
_commands[type] = cmd;
return true;
}
_命令是std::map<E_COMMAND, bool (Server::*)(ANetwork::t_frame, void*)>
的类型
将cmd添加到_commands[type]在Linux(ubuntu和opensuse)上运行良好,但在带有VS Entreprise 2015的Windows 10上会引发违规访问内存。
如果使用VS,请尝试在编译程序中使用/vmg选项。
相关文章:
- 为什么 Windows 拒绝访问某些进程的名称?
- Windows C++:文件夹移动访问被拒绝错误
- AWS AMI 中的 Windows DPAPI 失败,访问被拒绝
- 如何在 Windows 2016 Server 版本 1607 中访问 SetThreadDescription()
- Windows 后台服务(系统配置文件)无法使用 C++ 访问 win 10 上的用户 appData 文件夹?
- 确实可以提高directory_iterator在Windows上按字母顺序访问文件和文件夹
- Windows C++静态库在初始化期间无法访问外部方法
- C++ Windows:从主进程和 CallWndProc 进程访问相同的变量
- 如何:监视Windows中另一个进程的文件访问?
- C++ Windows - 以编程方式检查软件是否访问互联网?
- Windows错误:异常:使用从C++到Python的ctypes创建DLL时出现访问冲突或Windows错误193
- 如何在Qt中为任何QLabel设置可访问的名称,我们可以使用Windows讲述人读取
- 设置Windows计时器,访问被拒绝
- Windows 10 是否保护您不访问其他程序正在使用的内存?
- 通过UWP应用程序定位Windows 10,通过OpenNi 2访问构造传感器
- 如何在 Windows 10 应用程序中访问C++默认线程池?
- 使用 NamedPipe 访问 Windows 服务之间的安全性
- Windows C++程序中的访问冲突是否总是立即崩溃
- 从Windows*访问小部件
- 从主循环windows访问线程变量