我试图了解使用C++进行的西门子扫描仪的编程,并且由于我的C++技能有限,因此在理解供应商提供的代码的许多部分时遇到了问题。

问题1

例如,代码使用引用(rMrProt)来对象MrProt,而符号(例如().()[].的使用)对我来说却很困惑。
例如:

ImageSamples = rMrProt.kSpace().baseResolution()
ImageSize = rMrProt.sliceSeries()[0].readoutFOV()

这些陈述的一些解释将不胜感激。

有关对象MrProt的所有信息都在“MrProt.h”,“MrProt.dll”,“MrProt.lib”中。所有这些文件已在以下位置共享:
https://docs.google.com/open?id=0B0Ah9soYnrlIYWZkNDU2M2EtYTNmNC00YTc5LTllMzItYzIyMWU4M2ZhY2Fi

问题2

另外,我一直在尝试读取MrProt.dll和MrProt.lib,但没有成功。只是现在,我才知道转储。任何帮助,将不胜感激。

问题3

我的另一个困惑与MrProt.h本身的某些部分有关。 MrProt.h中有一个声明:
class __IMP_EXP MrProt: public MrProtocolData::MrProtDataDelegate
{
   typedef MrProtocolData::MrProtDataDelegate BasicImplementation;
   public:
   MrProt();
   MrProt(const MrProt& rSource);
   …
   ….
}

在这里__IMP_EXP,我想这是一些编译器特定的东西..一些装饰等。但是,我仍然不知道该怎么做。

最佳答案

问题1

rMrProt.sliceSeries()[0].readoutFOV()

手段
  • 接受rMrProtsliceSeries成员并对其进行调用。显然,它返回一个类似数组的对象,可以对其进行索引。
  • 从结果中获取第一个元素([0])。那是某种对象。
  • 在该元素/对象上,调用readoutFOV

  • 问题2。您实际上不应该读取二进制文件。他们应该有文件。

    关于c++ - C++: “().”和 “()[].”的使用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8790291/

    10-10 03:10