首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在C++中转换为常量

在C++中转换为常量
EN

Stack Overflow用户
提问于 2011-05-12 08:10:08
回答 2查看 139关注 0票数 0

C++,OS X,Carbon API。

我需要向方法FSpOpenDF传递一个const FSSpec

我有以下几点意见:

代码语言:javascript
复制
const FSSpec fsSpec = fFileSpec.GetFSSpec();/* is declared as FSSpec GetFSSpec() const; */

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

但我得到了一个错误,即:

代码语言:javascript
复制
error: cannot convert 'const FSSpec' to 'const FSSpec*' for argument '1' to 'OSErr FSpOpenDF(const FSSpec*, SInt8, short int*)'

我试着定义为:

代码语言:javascript
复制
const FSSpec*  fsSpec = fFileSpec.GetFSSpec();  

这也没什么用。所以很明显我很困惑。

有人能解释一下我错过的概念吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-05-12 08:14:42

试试这个:

代码语言:javascript
复制
FSSpec fsSpec = fFileSpec.GetFSSpec();
err = ::FSpOpenDF(&fsSpec, 1, &refNumber);

您似乎理解在调用需要指针的函数时需要获取对象的地址,就像您使用refNumber所做的那样;同样的事情只需要对fsSpec对象执行,因为需要的是const FSSpec*

票数 2
EN

Stack Overflow用户

发布于 2011-05-12 08:15:03

可能FSpOpenDF函数需要一个FSSpec指针。尝试:

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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5971979

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档