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/