草庐IT

c++ - 如何从 dll 内部找到 dll 的父 exe?

我需要根据加载它的进程在dll中做一些事情。因此,作为Windows编程的新手,我需要帮助弄清楚如何找到加载当前dll的exe。到目前为止,我一直在对exe文件名进行硬编码,这是最愚蠢的做法:D1)有人建议使用GetModuleFileName()函数。但这似乎使我的应用程序崩溃了。(我使用0作为模块句柄)。我什么都没做。我使用了以下语法GetModuleFileName(0,&fileName,MAX_PATH)编辑:我从here了解到我无法通过此调用获取.exe名称,因为它仅返回dll名称:(2)在DllMain中执行此操作是个好主意吗??我知道DllMain不是做复杂事情的地方。

c++ - 模板实例化的范围解析

我有以下一组类(class)(对我的真实情况的最小复制):namespaceParent{classA{};namespaceNested{classA{};}templateclassB{AmyA;};}我希望成员Parent::B::myA应该被明确解析为Parent::A类型。但是,在我项目的其他地方我有这个:namespaceParent{usingnamespaceNested;voidfoo(){BmyB;}}无法在MSVC2003下编译:errorC2872:'A':ambiguoussymbolcouldbe'Test.cpp(5):Parent::A'or'Test.

c++ - 如何在单独的线程上设置 QSerialPort?

按照官方文档,我正在尝试这样做:MainWindow::MainWindow(QWidget*parent):QMainWindow(parent){QThread*thread=newQThread;Worker*worker=newWorker();worker->moveToThread(thread);//initconnectionsthread->start();}worker构造函数:Worker::Worker(QObject*parent):QObject(parent){serial=newQSerialPort(this);//passingtheparent,w

c++ - 多重继承中的构造函数调用顺序

我试图找到很多如果在多重继承中只有一个类是虚拟的怎么办?在这种情况下,我不清楚构造函数调用的行为。比方说代码-#includeusingnamespacestd;classgrand{public:grand(){cout这段代码的输出是grandfatherparent1grandfatherparent2child但是在上面的代码中如果我们改变这个classparent1:virtualpublicgrand{public:parent1(){cout为此classparent1:publicgrand{//virtualremovedfromherepublic:parent1(

C++ : Calling a child method from parent instantiation

在我的代码中,我实现了这些类:classA{public:virtualintfun(){return0;}}classB:publicA{public:virtualintfun(){return1;}}还有这些函数:voidoperation(Aa){printf("%d\n",a.fun());}intmain(){Bb;operation(b);return0;}可以看到,B类继承了A类,并实现了虚继承方法fun()。主类调用一个以A为参数的函数,并调用fun()方法,参数为B对象。在执行时,我希望打印字符串"1",但它是"0"(即使它是传递给的B对象操作()).我需要这样做,

c++ - 如何让 QML 容器中的最后一项填充剩余空间?

我想要一个可动态调整大小的窗口,该窗口具有列布局,以便任何剩余空间都由列中的最后一项填充。我可以通过动态计算javascript中最后一项的高度来做到这一点。我也可以将最后一个项目移出列并将顶部绑定(bind)到列的底部和容器的底部,但是我还必须根据其内容计算列的新大小。importQtQuick2.0importQtQuick.Controls1.1Rectangle{id:rectanchors.fill:parentColumn{id:myColumnanchors.fill:parentRectangle{id:containersignalclickedwidth:label

c++ - 从 Derived* 转换为 Base*&

我试图回答提到的问题here通过传递对指针的引用而不是像这样指向指针的指针:classParent{};classChild:publicParent{};voidRemoveObj(Parent*&pObj){deletepObj;pObj=NULL;}intmain(){Parent*pPObj=newParent;Child*pCObj=newChild;pPObj=newParent();pCObj=newChild();RemoveObj(pPObj);RemoveObj(pCObj);//Thisisline32return1;}但这会在第32行产生以下编译器错误:erro

c++ - 查找父节点在二叉树中的位置

所以我需要帮助想出一个表达式,该表达式将始终为我提供子节点在二叉树中的父节点的位置。这是我的老师将在我们的考试中提出的问题示例:“考虑一棵恰好有10,000个节点的完整二叉树,用从索引0开始的数组实现。通过从树中从左到右一次一级地提取元素来按顺序填充数组。假设一个节点具有它的值存储在位置4999。该节点的父节点的值存储在哪里?"我的老师没有告诉我们如何解决这样的问题。她只是说“画一棵二叉树并找到一个模式”。我就是这么做的,但我什么也想不出来!请帮忙。谢谢。 最佳答案 下面完全是用整数除法。IE。小数余数被丢弃。对于任何给定的节点索引

c++ - 我可以在 C++11 中使用具有值语义的多态容器吗?

这是relatedpost的续集提出了永恒的问题:CanIhavepolymorphiccontainerswithvaluesemanticsinC++?问题问得有点不对。它应该更像是:CanIhaveSTLcontainersofabasetypestoredby-valueinwhichtheelementsexhibitpolymorphicbehavior?如果您问的是C++方面的问题,答案是否定的。在某些时候,您将对按值存储的对象进行切片。现在我再次提出这个问题,但严格按照C++11。随着语言和标准库的变化,现在是否可以在STL容器中按值存储多态对象?我很清楚在容器中存储指

c++ - 有没有简单的方法来公开私有(private)父类 C++ 的方法

有没有办法直接暴露私有(private)父类的一些方法。在下面的示例中,如果我有一个Child类型的对象,我希望能够直接调用其父对象的方法a(),而不是b();当前的解决方案会生成大量样板代码,尤其是在存在大量参数的情况下。classParent{public:voida(intp1,doublep2,intp3,std::vector&p4);voidb();};classChild:privateParent{public:voida(intp1,doublep2,intp3,std::vector&p4){Parent::a(p1,p2,p3,p4);}};