高分急问:VC6里面的语法
环境:VC6.0首先,有一个已经定义了的类classCALCINFO{...........};在编写dll的过程中又有以下语句__declspec(dllexport)...
环境:VC6.0
首先,有一个已经定义了的类
class CALCINFO
{
...........
};
在编写dll的过程中又有以下语句
__declspec(dllexport) int WINAPI MYMACLOSE(CALCINFO* pData)
{
if ( pData->m_pfParam1 && //参数1有效
pData->m_nParam1Start<0 && //参数1为常数
pData->m_pfParam2==NULL ) //仅有一个参数
{
float fParam = *pData->m_pfParam1;
其他语句略
我的问题:请看上面提到的两句
pData->m_pfParam1;
*pData->m_pfParam1;
pData不是一个类的指针吗,如果要通过指针使用类里面的东西,那不是应该用*pData->xxx或者*pData.xxx这样的格式吗?
为什么会有pData->m_pfParam1;这种句子?为什么不加*
请详细解释。必加分
谢谢提供帮助的朋友 展开
首先,有一个已经定义了的类
class CALCINFO
{
...........
};
在编写dll的过程中又有以下语句
__declspec(dllexport) int WINAPI MYMACLOSE(CALCINFO* pData)
{
if ( pData->m_pfParam1 && //参数1有效
pData->m_nParam1Start<0 && //参数1为常数
pData->m_pfParam2==NULL ) //仅有一个参数
{
float fParam = *pData->m_pfParam1;
其他语句略
我的问题:请看上面提到的两句
pData->m_pfParam1;
*pData->m_pfParam1;
pData不是一个类的指针吗,如果要通过指针使用类里面的东西,那不是应该用*pData->xxx或者*pData.xxx这样的格式吗?
为什么会有pData->m_pfParam1;这种句子?为什么不加*
请详细解释。必加分
谢谢提供帮助的朋友 展开
4个回答
展开全部
这个地方他写错了.CALCINFO* pData是把pData定义成了CALCINFO结构体的指针,pData->m_pfParam1这样写是对的,如果是结构体指针就用->,如果是CALCINFO pData这样定义的话就要用pData.m_pfParam1这种写法.
后边的 *pData不是指针,所以*pData->m_pfParam1这种写法是错误的
后边的 *pData不是指针,所以*pData->m_pfParam1这种写法是错误的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
楼上说的是正确的 如果是类指针就用-> 如果不是就用. 这个和C语言是一样的语法
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
pData->m_pfParam1是一个float指针啊,所以
float fParam = *pData->m_pfParam1是正确的,相当于
float fParam = *(pData->m_pfParam1)
float fParam = *pData->m_pfParam1是正确的,相当于
float fParam = *(pData->m_pfParam1)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询