草庐IT

libboost_serialization-vc

全部标签

c++ - 我如何确定拥有多个 VC++ CRT 状态是否对我的应用程序有问题?

ThisMSDNarticle说如果我的应用程序多次加载VC++运行时,因为它或它所依赖的某些DLL静态链接到VC++运行时,那么应用程序将有多个CRT状态,这可能会导致未定义的行为。p>我该如何确定这对我来说是否是个问题?例如inthisMSDNarticle提供了几个示例,基本上说明由C++运行时维护的对象(例如文件句柄)不应跨DLL边界传递。如果我希望我的项目静态链接到VC++运行时,需要检查的事项列表到底是什么? 最佳答案 只要您不做某些事情,拥有多个CRT拷贝是可以的...:CRT的每个拷贝都将管理自己的堆。如果您在模块A

c++ - boost::serialization Archive::register_type 如何工作?

boost::serialization能够序列化它们最派生类的多态对象,即使这些对象由指向基类的引用/指针指向。这不需要虚函数。要做到这一点,boost::serialization需要知道存在的多态类型:Archive::register_type必须在Archive用于序列化的对象。Thisexample展示了如何注册类型以及如何序列化它们。我想知道这是如何实现的。我试图查看boost::serialization源代码但失败了:我不太擅长模板元编程。 最佳答案 boost.serialization可以使用typeid()或

c++ - 尝试在 VC++ 中使用静态类函数编译 DLL 时出错

我正在尝试使用我在独立应用程序中制作和测试过的一些功能。现在我正在尝试创建一个DLL,我收到一些错误,指出该函数已被重新定义并且返回参数不匹配。这似乎是我唯一一次遇到这些错误,我已经通过删除此类对其进行了测试,它编译得很好,独立应用程序的main.cpp直接引用了这些错误。以下是错误以及h和cpp文件:Error7errorC2371:'Parser::parse':redefinition;differentbasictypesc:\users\seb\documents\visualstudio2005\projects\TestDLL\TestDLL\parser.cpp17Er

c++ - Boost::serialization - 如何序列化需要数据分配但没有默认构造函数的数据结构?

如问题标题所示-我需要序列化指向每个其他数据结构的复杂网络,并由可能没有默认构造函数的类表示。这些类通常有一个vectorofpointers或vectorofpairs。我认为简单地分配sizeof(SomeClass)的内存,然后用序列化例程填充它是有意义的,但这不知何故会导致与字符串相关的未初始化内存问题(resize()失败,可能未初始化的字符串对象是不愿意工作)。示例代码如下所示:friendclassboost::serialization::access;templatevoidsave(Archive&ar,constunsignedintversion)const{i

c++ - 如何在 VC++ 中重新启动我自己的应用程序

我正在开发VC++应用程序。弄清楚如何重新启动我自己的应用程序谁能举个例子 最佳答案 编写一个程序,它将:等待您的应用程序终止再次运行它。调用此程序,然后退出您的应用程序。该解决方案应用相当广泛。另一种选择:使用特定参数调用您的应用程序(例如/restarted)。新实例应等待旧实例终止,然后再执行任何任务。然后关闭旧实例。 关于c++-如何在VC++中重新启动我自己的应用程序,我们在StackOverflow上找到一个类似的问题: https://stack

c++ - vc++ 中未处理的异常 - HRESULT 失败

我知道VC++6.0是很古老的语言,但我别无选择,我只是在维护一个现有的程序,我遇到了这个错误UnhandledexceptioninAssess.exe(KERNELBASE.DLL):0xE06D7363:MicrosoftC++Exception这是我的代码HRESULThr=CoInitialize(NULL);//Createtheinterfacepointer.IModulePtrpI(__uuidof(RPTAModuleInterface));//theerrorishere调试并使用f11后,程序转到COMIP.H,这是代码explicit_com_ptr_t(co

c++ - 如何为 string_view 创建 (VC14) 调试可视化工具?

我正在使用boost::string_view。(www.boost.org/doc/libs/1_61_0/boost/utility/string_view.hpp)它有一个constchar*ptr_和一个unsignedintlen_数据成员。当调试它很麻烦时,因为默认的可视化工具将显示字符ptr_的字符数多于长度(因为string_view不是空终止的)。我尝试通过查看std::string可视化工具来创建自己的可视化工具。如果我对长度进行硬编码(比如说4),我可以获得要显示的字符串,但是我无法让它使用实际的长度变量。任何帮助表示赞赏。损坏的例子:{ptr_,4}//work

c++ - 虚拟继承——gcc 与 vc++

我在使用VisualStudio2008时遇到有关虚拟继承的问题。考虑以下示例:#includeclassPrint{public:Print(constchar*name){std::cout如果我在我的linux机器上使用gcc,这段代码编译得很好。但是,如果我尝试使用VisualStudio在Windows上构建相同的内容,编译将失败并显示错误消息“错误C2614:‘B’:非法成员初始化:‘Print’不是基数或成员。”为什么这不起作用? 最佳答案 来自标准[class.base.init]:“除非mem-initialize

c++ - VC++ 构建 directshow 基类

我是DirectXSDK、PlatfromSDK和DirectShow的新手。我下载了最新的PlatformSDK和DirectXSDKAugust'09。我试图在文件夹中构建示例项目:MicrosoftPlatformSDK\Samples\Multimedia\DirectShow\Capture\PlayCap\并且有以下构建错误:LINK:fatalerrorLNK1181:cannotopeninputfile'D:\ProgramFiles\MicrosoftPlatformSDK\samples\multimedia\directshow\baseclasses\WIN2

c++ - 文件夹复制 VC++

我想将目录从一个驱动器复制到另一个驱动器。我选择的目录包含许多子目录和文件。我如何使用vc++实现相同的功能 最佳答案 SHFileOperation()API函数是复制文件的主力函数。它支持递归目录。查看SHFILEOPSTRUCT中可用的选项控制拷贝的结构。 关于c++-文件夹复制VC++,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/2536411/