能帮我看一下,下面的错误是怎么回事吗?

newman0708 2003-12-04 10:31:10
error C2143: syntax error : missing ';' before '*'
error C2501: 'TransferAccountThread' : missing storage-class or type specifiers
error C2501: 'lptq' : missing storage-class or type specifiers
Error executing cl.exe.

TransferAccountThread.obj - 3 error(s), 0 warning(s)



missing storage-class or type specifiers?????

这是什么错误啊?

...全文
28 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
syl5005 2003-12-05
  • 打赏
  • 举报
回复
来晚了。
newman0708 2003-12-05
  • 打赏
  • 举报
回复
光从错误信息来找错误(没有完整代码),真是难为大家了。

谢谢。

问题已经解决了。

我在CMyThreadDlg中声明成员变量指针TransferAccountThread* lptq;
而在TransferAccountThread类中又声明变量指针CMyThreadDlg* me;

在创建时,就会进入重复了声明,所以发生错误。
真是低级错误啊,基础功不扎实。
chenhua790618 2003-12-04
  • 打赏
  • 举报
回复
应该加入#include "TransferAccountThread.h"就行了吧
flyelf 2003-12-04
  • 打赏
  • 举报
回复
#include "TransferAccountThread所在的头文件"
keiven 2003-12-04
  • 打赏
  • 举报
回复
在MyThreadDlg.h 文件的前面加下面一句看看:
Class TransferAccountThread;//声明这一句,后面要用到的这个类。
yifengling0 2003-12-04
  • 打赏
  • 举报
回复
这种错误多半是类声明没有找到,你看看头文件是不是正确的载入了!~
newman0708 2003-12-04
  • 打赏
  • 举报
回复
// MyThreadDlg.h : header file

class CMyThreadDlg : public CDialog
{
// Construction
public:
CMyThreadDlg(CWnd* pParent = NULL); // standard constructor
...
CCriticalSection ccs;
CWinThread* pMyThread;
void transfer(int from,int to ,int amount);
TransferAccountThread* lptq;//这里会出现报错
CCustom* lpcus;
};

// MyThreadDlg.cpp
CMyThreadDlg::CMyThreadDlg(CWnd* pParent /*=NULL*/)
: CDialog(CMyThreadDlg::IDD, pParent)
{
...
this->lpcus =NULL;
this->lptq =NULL;
}

void CMyThreadDlg::OnButtonstart()
{
// TODO: Add your control notification handler code here
if(this->m_bRun){//run now
GetDlgItem(IDC_BUTTONSTART)->SetWindowText("start");
if (this->pMyThread){
this->lptq->terminate();
delete this->lptq;
delete this->lpcus;
}
}
else{//not run now
GetDlgItem(IDC_BUTTONSTART)->SetWindowText("stop");
this->lpcus=new CCustom("aaa");
this->lptq=new TransferAccountThread(this,*this->lpcus);
}
this->m_bRun=!this->m_bRun;
}




我主要是想把CMyThreadDlg对话框类传给线程,让线程来这断更新CEdit中的值。

好果我的方法不好,请高手指点一下,我应该怎么传?
newman0708 2003-12-04
  • 打赏
  • 举报
回复
MyThreadDlg是我的对话框类

TransferAccountThread从CThread类派生的。
我想启动一个多个TransferAccountThread线程来对我的对话框类MyThreadDlg中的list进行值变化(就是把每次的交易数量记录到list中)所以在每个线程中交易完都会对list进行追加操作。
现在的问题就是
要传一个MyThreadDlg指针给类TransferAccountThread(LPVOID pParam,CCustom& custom);
但是,编译不通过,错误好上面,我不知道怎么回事。
syntax error : missing ';' before '*'



// Thread.h
class CThread
{
public:
CThread();
CThread(int SleepTime);

virtual ~CThread();
private:
int m_nSleepTime;
BOOL m_bRun;
CWinThread* m_pMyThread;

void init(int SleepTime);
virtual void run();
public:
static UINT MyThreadProc( LPVOID pParam);
CWinThread* getThread();
void start();
void stop();
void terminate();
};

// TransferAccountThread.h
class TransferAccountThread: public CThread{
private:
CMyThreadDlg* me;
public:
TransferAccountThread(); // standard constructor
TransferAccountThread(LPVOID pParam,CCustom& custom);
virtual ~TransferAccountThread();
void run();
};

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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