标识符PROCESSENTRY32
在<TlHelp32.h>
中有一个定义,并且在我的旧程序中运行良好。但是,在我的新程序中,当它是typedef
之前(绿色)时,它是一个宏(紫色)。我对MODULEENTRY32
有同样的问题。这是相同的代码,但是在旧代码上,它的颜色是灰色,而我的新代码是紫色和蓝色。
我尝试删除一些定义代码,但这只会带来更多问题。
以下代码中的定义取自TIHelp32.h
:
typedef struct tagPROCESSENTRY32
{
DWORD dwSize;
DWORD cntUsage;
DWORD th32ProcessID; // this process
ULONG_PTR th32DefaultHeapID;
DWORD th32ModuleID; // associated exe
DWORD cntThreads;
DWORD th32ParentProcessID; // this process's parent process
LONG pcPriClassBase; // Base priority of process's threads
DWORD dwFlags;
CHAR szExeFile[MAX_PATH]; // Path
} PROCESSENTRY32; /* *** Definition used by the old project *** */
typedef PROCESSENTRY32 * PPROCESSENTRY32;
typedef PROCESSENTRY32 * LPPROCESSENTRY32;
BOOL
WINAPI
Process32First(
HANDLE hSnapshot,
LPPROCESSENTRY32 lppe
);
BOOL
WINAPI
Process32Next(
HANDLE hSnapshot,
LPPROCESSENTRY32 lppe
);
#ifdef UNICODE
#define Process32First Process43FirstW
#define Process32Next Process32NextW
#define PROCESSENTRY32 PROCESSENTRY32W /* ** Definition used by the new project ** */
#define PPROCESSENTRET32 PPROCESSENTRY32W
#define LPPROCESSENTRET32 LPPROCESSENTRY32W
#endif // !UNICODE
当我的代码中使用标识符(PROCESSENTRY32
和MODULEENTRY32
时,用于定义的颜色仍然存在。
答案 0 :(得分:0)
我发现了问题。我比较了两个项目的属性,并在新项目中发现了这一点。将“字符集”设置为“使用Unicode字符集”。然后将其设置为“使用多字节字符集”。 Here是我所改变的。