音影先锋亚洲天堂网|电影世界尽头的爱完整版播放|国产 熟女 91|高清无码免费观看欧美日韩|韩国一区二区三区黄色录像|美女亚洲加勒比在线|亚洲综合网 开心五月|7x成人在线入口|成人网站免费日韩毛片区|国产黄片?一级?二级?三级

登錄 免費(fèi)注冊(cè) 首頁 | 行業(yè)黑名單 | 幫助
維庫電子市場網(wǎng)
技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng)
驅(qū)動(dòng)編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計(jì) | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe

(串口)VC++的一個(gè)簡單的編譯問題,請(qǐng)幫忙

作者:風(fēng)正帆懸 欄目:單片機(jī)
(串口)VC++的一個(gè)簡單的編譯問題,請(qǐng)幫忙

VC++的一個(gè)簡單的編譯問題,感到奇怪...

描述如下--
說明:void InitMSCOMM(void)在文件前面聲明了。

BOOL CVcMSCommDlg::OnInitDialog()
{
   ....
   InitMSCOMM();//調(diào)用初始化
   ....
}
//---------------------------------------------------------------
//function:串口初始化
void InitMSCOMM(void)
{
       /*設(shè)置端口,com1*/
    if(m_ctrlComm.GetPortOpen())
    {
       m_ctrlComm.SetPortOpen(FALSE);
    }
    m_ctrlComm.SetCommPort(1);
        .....(略)
        

}
編譯后,錯(cuò)誤提示說m_ctrlComm相關(guān)的屬性、方法等沒有定義。
但,我把ctrlComm有關(guān)的代碼直接放到OnInitDialog()里面,就編譯通過。
我試過了其他控件,如edit控件,假如變量為m_edit1,放在自己編寫的InitMSCOMM()里面,同樣編譯錯(cuò)誤。
郁悶啊,不可能吧,這個(gè)添加函數(shù)為了讓程序整潔,是最基本的啊。怎么VC++就不給呢?
我覺得不可能的。所以問下大家,看哪里是否要求設(shè)置什么的,幫我解決一下,為什么會(huì)這樣!謝謝。


2樓: >>參與討論
劍下亡魂
void CVcMSCommDlg::InitMSCOMM(void)
是不是你函數(shù)沒定義好。

3樓: >>參與討論
kelan
控件對(duì)象的聲明位置不對(duì)!


控件對(duì)象的聲明位置應(yīng)該放在項(xiàng)目xxxDlg類里.

4樓: >>參與討論
風(fēng)正帆懸
樓上2位是不是誤解了?
InitMSCOMM()是我自己的定義的普通函數(shù)而已,不是控件相關(guān)的函數(shù)。。。
(還是我自己誤解了?繼續(xù)請(qǐng)教)
就類似:

int max(int ,int);

void main()
{
  max(a,b); //定義的普通函數(shù)
}

int max(int a,int b)
{

}

5樓: >>參與討論
風(fēng)正帆懸
哦。。
突然明白了一點(diǎn):
因?yàn)橛孟驅(qū)砑拥目丶兞空fProtected類型的變量,
我自己定義的那個(gè)InitMSCOMM()沒有訪問權(quán)。
我試試調(diào)整一下看看

6樓: >>參與討論
pkballista
有問題
你在一個(gè)全局函數(shù)里用某個(gè)Class的成員變量,那當(dāng)然不行了。

要么將變量定義成全局的。
要么設(shè)計(jì)成某個(gè)Class的成員函數(shù)。

7樓: >>參與討論
pkballista
關(guān)于訪問權(quán)
關(guān)于成員函數(shù)的聲明權(quán)限。

protected:可以在本Class的子類中使用。
private:不可以進(jìn)行外部調(diào)用。
public:可以進(jìn)行外部調(diào)用。

8樓: >>參與討論
seahai
這樣可以:

要在CVcMSCommDlg 里面定義InitMSCOMM()函數(shù)聲明,
并編寫void CVcMSCommDlg::InitMSCOMM(void)函數(shù)。

//----
  class CVcMSCommDlg : public CDIALOG
{
     // Construction
    public:
    CVcMSCommDlg(CWnd* pParent = NULL);    // STANDARD constructor
    void InitMSCOMM(void);//添加聲明
   // DIALOG Data
   ...略
}

//新添加的成員函數(shù)實(shí)現(xiàn)
void CVcMSCommDlg::InitMSCOMM(void)
{
    /*設(shè)置端口,com1*/
    if(m_ctrlComm.GetPortOpen())
    {
       m_ctrlComm.SetPortOpen(FALSE);
    }
    m_ctrlComm.SetCommPort(1);
        .....(略)

}
如上,測試通過

參與討論
昵稱:
討論內(nèi)容:
 
 
相關(guān)帖子
了解NDIR紅外氣體分析技術(shù)的朋友進(jìn)來聊聊
求低成本水位檢測的方法
請(qǐng)教高手!
各位老大救命呀
24C01系列頁寫討論
免費(fèi)注冊(cè)為維庫電子開發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入


Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號(hào)