C++,OS X,Carbon API。
我需要向方法FSpOpenDF传递一个const FSSpec
我有以下几点意见:
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(); 这也没什么用。所以很明显我很困惑。
有人能解释一下我错过的概念吗?
发布于 2011-05-12 08:14:42
试试这个:
FSSpec fsSpec = fFileSpec.GetFSSpec();
err = ::FSpOpenDF(&fsSpec, 1, &refNumber);您似乎理解在调用需要指针的函数时需要获取对象的地址,就像您使用refNumber所做的那样;同样的事情只需要对fsSpec对象执行,因为需要的是const FSSpec*。
发布于 2011-05-12 08:15:03
可能FSpOpenDF函数需要一个FSSpec指针。尝试:
err = ::FSpOpenDF(&fsSpec, 1, &refNumber);
https://stackoverflow.com/questions/5971979
复制相似问题