error C2228: left of '.GetLength' must have class/struct/union type问题

VC小小小菜鸟 2014-07-30 11:19:50
--------------------Configuration: VC - Win32 Debug--------------------
Compiling...
Hard.cpp
C:\Documents and Settings\Administrator\桌面\SDK_DSO3202A\Demo\VC\Hard.cpp(371) : error C2228: left of '.GetLength' must have class/struct/union type
C:\Documents and Settings\Administrator\桌面\SDK_DSO3202A\Demo\VC\Hard.cpp(373) : error C2228: left of '.GetLength' must have class/struct/union type
C:\Documents and Settings\Administrator\桌面\SDK_DSO3202A\Demo\VC\Hard.cpp(378) : error C2228: left of '.GetLength' must have class/struct/union type
执行 cl.exe 时出错.

Hard.obj - 1 error(s), 0 warning(s)



代码:void CHard::CollectData()
{
USHORT nReturn;
if(m_bStartNormalCollect == TRUE)
{
//Start Collecting
nReturn = dsoHMStartCollectData(m_nDeviceIndex,0);
//Clear Flag
m_bStartNormalCollect = FALSE;
//Clear
m_nWaitTimes = 0;
}
//Get Collected State
m_nCollectState = dsoHMGetYTNormalCaptureState(m_nDeviceIndex);

if(m_nCollectState == 7)
{
//Read Collect Data
int i;
USHORT* pReadData[4];
ULONG nDataLen = m_stControl.nReadDataLen;

for(i=0;i<MAX_CH_NUM;i++)
{
pReadData[i] = new USHORT[nDataLen];
}

if(m_stControl.nTimeDIV > MAX_INSERT_TIMEDIV)
{

//Normal Collect,No Insert Data
m_nReadOK = dsoHMGetNormalData(m_nDeviceIndex,pReadData[0],pReadData[1],pReadData[2],pReadData[3],&m_stControl,&m_stRelayControl);
CFile file;
file.Open( "D:\\shuju.txt",CFile::modeCreate|CFile::modeNoTruncate|CFile::modeReadWrite);
file.Write(pReadData[0],pReadData[0].GetLength());
file.SeekToEnd(); //将指针移至文件末尾进行追加
file.Write(pReadData[0],pReadData[0].GetLength());
file.Close();
try
{
CFile file(_T("D:\\shuju.txt"), CFile::modeCreate | CFile::modeWrite);
file.Write(pReadData[0], pReadData[0].GetLength()*sizeof(TCHAR));
file.Close();
}
catch(CException* e)
{
e->ReportError();
e->Delete();
}



}
...全文
606 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
VC小小小菜鸟 2014-07-30
  • 打赏
  • 举报
回复
引用 2 楼 caozl 的回复:
pReadData[i] = new USHORT[nDataLen]; 这个 pReadData[i] 没有GetLength()的接口。 建议你把pReadData[i].GetLength()换成 nDataLen
为什么我这样该编译是通过了,但是文件TXT没有生成。。这是怎么回事?
caozl 2014-07-30
  • 打赏
  • 举报
回复
pReadData[i] = new USHORT[nDataLen]; 这个 pReadData[i] 没有GetLength()的接口。 建议你把pReadData[i].GetLength()换成 nDataLen
VC小小小菜鸟 2014-07-30
  • 打赏
  • 举报
回复
求大神帮主。。没人么
SiGoYi 2014-07-30
  • 打赏
  • 举报
回复
USHORT* pReadData[4]; 是指针啊,你不能用“.”,应该用“->”
robertbo 2014-07-30
  • 打赏
  • 举报
回复
返回错误后马上调用 int aa = GetLastError(); 看看返回的aa是什么值,然后去http://baike.baidu.com/view/1730168.htm#6中对比看看是什么错误。 【0】-操作成功完成。 【1】-功能错误。 【2】-系统找不到指定的文件。 【3】-系统找不到指定的路径。 【4】-系统无法打开文件。 【5】-拒绝访问。 【6】-句柄无效。
VC小小小菜鸟 2014-07-30
  • 打赏
  • 举报
回复
引用 4 楼 robertbo 的回复:
file.Open增加个返回值,单步跟踪看看是否进行到了file.Open处,如果到了,看看返回值是多少。
加返回值直接出错了。。还是我加的有问题。。求指点。。
robertbo 2014-07-30
  • 打赏
  • 举报
回复
file.Open增加个返回值,单步跟踪看看是否进行到了file.Open处,如果到了,看看返回值是多少。

64,649

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧