2011-10-03 28 views
-1

我的DWORD和LPCTSTR設置有什麼問題?我的標題設置有什麼問題

class myApp : public CApplication 
{ 
public: 
    unsigned int DWORD; 
    const char *LPCTSTR; 


    myApp(CApplication::ApplicationByteAware theAppByte = CApplication::AB_SINGLEBYTE); 
    virtual ~myApp(void); 

    DWORD IsProcessRunning(LPCTSTR procname); 
    bool TerminateProcess(LPCTSTR procname); 
} 
+2

你收到了什麼錯誤信息?這是整個頭文件嗎?源文件是什麼樣的?總之,這裏沒有足夠的信息來幫助你。 –

+0

您使用的變量名稱已經是''中某處聲明的類型的名稱。另外,在你的類聲明之後不要忘記';'。 – dreamlax

回答

0

您聲明DWORDLPCTSTR爲成員變量,但試圖將它們用作類型。你想要做的是

// declare the typedefs here 
typedef unsigned int DWORD; 
typedef const char *LPCTSTR; 

class myApp : public CApplication 
{ 
public: 

    myApp(CApplication::ApplicationByteAware theAppByte = CApplication::AB_SINGLEBYTE); 
    virtual ~myApp(void); 

    // then you can use them here  
    DWORD IsProcessRunning(LPCTSTR procname); 
    bool TerminateProcess(LPCTSTR procname); 
}; 
+0

實際上他不應該包含定義這些typedef的。否則,如果在同一翻譯中包含,則會出現雙重定義衝突。 –

0

通常一個Windows程序將包括<windows.h>又包括定義這些廣泛使用的宏的其他文件。

+0

DWORD和LPCTSTR不是宏。他們是typedef。另請參閱KQ的答案。 –

6

您已將DWORD聲明爲變量名稱(成員名稱),然後嘗試將其指定爲IsProcessRunning的返回類型。後者應該返回無符號整型。如果您想要別名類型名稱,請使用typedef。