草庐IT

dynamics-ax-2012

全部标签

c++ - 使用 dynamic_pointer_cast 时无法动态转换

为什么这段代码不起作用?std::shared_ptre=ep->pop();std::shared_ptrt;t=std::dynamic_pointer_cast(e);我收到以下错误:/usr/include/c++/4.6/bits/shared_ptr.h:386:error:cannotdynamic_cast'(&__r)->std::shared_ptr::.std::__shared_ptr::get[with_Tp=Event,__gnu_cxx::_Lock_policy_Lp=(__gnu_cxx::_Lock_policy)2u]()'(oftype'clas

c++ - VS2012 错误 : The application was unable to start correctly (0xc000007b)

在尝试运行我在VisualStudio2012中构建的C++SFML32位程序的exe文件后,我收到错误“应用程序无法正确启动(0xc000007b)”。我在我的项目中静态链接了SFMLdll,但将以下dll与我的程序结合在一起:libsndfile-1.dllopenal32.dllmsvcp110.dllmsvcp110d.dllmsvcr110.dllmsvcr110d.dll问题是什么? 最佳答案 您遇到的实际错误代码是0xC000007B。那就是NTSTATUS错误代码STATUS_INVALID_IMAGE_FORMAT

c++ - dynamic_cast 失败

我有一个基类和一个派生类。每个类都有一个.h文件和一个.cpp文件。我在下面的代码中将基类对象动态转换为派生类:h文件:classBase{public:Base();virtual~Base();};classDerived:publicBase{public:Derived(){};voidfoo();};classAnother{public:Another(){};voidbar(Base*pointerToBaseObject);};cpp文件:Base::Base(){//dosomething....}Base::~Base(){//dosomething....}voi

c++ - 如何编写自己的 dynamic_cast

这个在面试中被问到了。如何编写自己的dynamic_cast。我想,基于typeid的name函数。现在如何实现自己的typid?我对此一无所知。 最佳答案 你没有任何线索是有原因的,dynamic_cast和static_cast不像const_cast或reinterpret_cast,它们实际上执行指针运算并且在某种程度上是类型安全的。指针运算为了说明这一点,请考虑以下设计:structBase1{virtual~Base1();chara;};structBase2{virtual~Base2();charb;};struc

c++ - 用于遍历继承层次结构的 Static_cast 与 dynamic_cast

我看到一本关于C++的书提到使用静态转换在继承层次结构中导航比使用动态转换更有效。例子:#include#includeusingnamespacestd;classShape{public:virtual~Shape(){};};classCircle:publicShape{};classSquare:publicShape{};classOther{};intmain(){Circlec;Shape*s=&c;//Upcast:normalandOK//Moreexplicitbutunnecessary:s=static_cast(&c);//(Sinceupcastingis

c++ - dynamic_cast 是否在重载的运算符删除中工作?

我遇到了这个:structBase{void*operatornew(size_t);voidoperatordelete(void*);virtual~Base(){}//(p);if(dynamic_cast(pB)!=0){/*...NOTreachinghere?...*/}free(p);}现在如果我们这样做,Base*p=newDerived;deletep;令人惊讶的是,conditioninsidetheBase::deleteisnotsatisfied我做错了什么吗?或者从void*进行转换会丢失Derived*的信息? 最佳答案

c++ - 在 VS2012 上禁用 C++11 功能

是否可以在VS2012上禁用C++11功能?我的代码还没有准备好,我不想引入更多的困惑 最佳答案 从VisualC++2015Update3开始,现在可以为语言行为指定语言版本(显然它不仅仅影响一致性检查):https://blogs.msdn.microsoft.com/vcblog/2016/06/07/standards-version-switches-in-the-compiler/不幸的是,唯一的选项是“C++14”(不准确,它包括以前发布的后C++14功能)和“C++Latest”(C++14加上C++17的部分实现和

c++ - Visual Studio 2012 的 Windows 用户模式调试器传输

我阅读了一篇关于VisualStudio2012能够在即时窗口中支持Windbg命令的帖子。这需要在选择“附加到进程”选项下的传输时选择“Windows用户模式调试器”选项。虽然这似乎适用于本地主机限定符,但我很想知道我是否可以使用这种方法调试远程目标进程,就像我们通过选择远程传输所做的那样。我使用的是VisualStudio2012Premium。我尝试在选择了“Windows用户模式调试器”传输的限定符部分提供机器的IP,但我收到了“无法连接到机器”消息。我也尝试了这个链接中提到的步骤:http://msdn.microsoft.com/en-us/library/windows/

c++ - 为什么发布版本 memset 比 visual studio 2012 中的调试版本慢?

为什么在visualstudio2012中发布版本的memset比调试版本慢?在visualsutido2010中,也是这个结果。我的电脑:英特尔酷睿i7-37703.40GHz8G内存操作系统:Windows7SP164位这是我的测试代码:#includeintmain(){constintSize=1000*1024*1024;char*Data=(char*)malloc(Size);#ifdef_DEBUGprintf_s("debug\n");#elseprintf_s("release\n");#endifboost::progress_timertimer;memset(

c++ - dynamic_cast 何时因隐藏符号而失败?

根据关于可见性的gccwiki(https://gcc.gnu.org/wiki/Visibility,请参阅“C++异常问题(请阅读!)”)部分,但似乎也是一个示例(dynamic_castfailedwhenhidingsymbol),隐藏类可以导致有效的dynamic_cast失败。我想通过示例准确了解这种情况何时发生:任何人都可以给我一个小示例来正确理解效果吗?这是我的尝试和理解(在Linux上使用gcc>7):据我了解,我需要的是vaguelinkage发生,当基类没有关键方法时发生。所以我尝试了这个基本层次结构:classA{virtual~A();virtualvoidp