C ++,OS X,Carbon API。

我需要将const FSSpec传递给方法FSpOpenDF

我有如下内容:

const FSSpec fsSpec = fFileSpec.GetFSSpec();/* is declared as FSSpec GetFSSpec() const; */

err = ::FSpOpenDF(fsSpec, 1, &refNumber);


但是我得到一个错误是:

error: cannot convert 'const FSSpec' to 'const FSSpec*' for argument '1' to 'OSErr FSpOpenDF(const FSSpec*, SInt8, short int*)'


我尝试定义为:

const FSSpec*  fsSpec = fFileSpec.GetFSSpec();


那没有帮助。所以很显然我很困惑。

谁能解释我所缺少的概念?

最佳答案

尝试这个:

FSSpec fsSpec = fFileSpec.GetFSSpec();
err = ::FSpOpenDF(&fsSpec, 1, &refNumber);


您似乎理解在调用想要指针的函数时需要使用对象的地址,就像使用refNumber一样;由于需要使用fsSpec,因此只需对const FSSpec*对象执行相同的操作。

关于c++ - 在C++中转换为const,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5971979/

10-08 22:07