2011-10-03 40 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。