7得票4回答
构造函数结束括号处存在无法访问的代码

我正在处理一款使用VC9构建的应用程序,遇到了一个我不太理解的警告:为什么在构造函数的结束括号处会出现“无法访问的代码”警告? 最小化的测试用例如下: __declspec(noreturn) void foo() { // Do something, then terminate t...

13得票3回答
如何在预处理器中检测“使用MFC”

对于一个静态Win32库,我怎样才能检测出任何一个 "Use MFC" 选项是否已设置? 例如:#ifdef ---BuildingForMFC--- .... #else ... #endif

7得票3回答
基于ATL的链接器错误

我最近遇到了一个与atls.lib相关的链接问题。我使用以下代码更新我的链接器附加依赖项行: comctl32.lib C:\WinDDK\7600.16385.1\lib\ATL\i386\atls.lib C:\WinDDK\7600.16385.1\lib\ATL\i386\atl.l...

13得票2回答
使用宏_BIND_TO_CURRENT_VCLIBS_VERSION会有任何副作用吗?

我们正在将一个VC++项目从Visual Studio 2003迁移到Visual Studio 2008 SP1(9.0.30729.4148)。相关的外部依赖库也是用Visual Studio 2008 SP1编译的。MainApp - Main application Compiled ...

16得票3回答
在C++中使用枚举作为模板类型参数

在C++中,使用枚举作为模板(类型)参数是否有任何限制/问题? 示例: enum MyEnum { A, B, C, D, E }; template <typename _t> class MyTemplate { public: _t value; ...

10得票2回答
如何调试或修复涉及boost::interprocess managed_shared_memory的无限循环和堆栈破坏问题?

我收到了一个“第一次机会异常”信息,它来自于我编写的一个DLL,这个DLL正在运行在一个非我所编写的可执行文件中。也就是说,这个DLL是一个插件。当这个异常第一次触发时,尝试打开一个共享内存映射文件失败了。如果我忽略第一次机会异常并继续运行,应用程序最终会冻结或崩溃。First-chance ...

8得票1回答
C++03下的引用折叠

我需要从绑定成员函数创建谓词,因此我将其包装在一个boost::function<bool(SomeObject const &)>中。这似乎很好,但在某些情况下我还需要对其进行取反。然而 boost::function<bool(SomeObject const ...

8得票6回答
VS2008:我能否在不同文件夹中使用相同名称的2个CPP文件构建项目?

这是我的文件夹结构: / | -- program.cpp -- utility.h -- utility.cpp | -- module/ | -- utility.h -- utility.cpp // Note that I have two fi...

7得票1回答
如何返回一个不透明句柄(void*或dword),可以将其强制转换回存储在boost::interprocess映射中的值元素?

我对堆和按值与按引用语义感到有些困惑,这涉及将std::string键和大型struct值放入像boost::interprocess::map这样的容器中。 这是我的情况和我正在使用的一些typedef: typedef std::string AreaKeyType; ...

13得票2回答
如何使VC++的调试器在异常发生时中断?

我正在尝试调试一个用C语言编写的DLL中出现的访问冲突问题。我正在使用Visual C++ 2008,但是代码是纯C。 我习惯了Delphi,在其中如果在调试器下运行时发生异常,程序会立即停止并进入调试器让你有机会检查程序状态。然而,在Visual C++ 中,我只能在输出选项卡中看到一条消...