封装一个类的问题!(在线等)
网上有一段关于隐藏xp进程的代码,我想把它封装到一个HideProcess类中,可是在程序引用时出错,访问不到我这个类中定义的函数
具体封装如下:
// HideProcess.h : header file
//
#if !defined HIDEPROCESS
#define HIDEPROCESS
#include"windows.h"
#include"Accctrl.h"
#include"Aclapi.h"
#define NT_SUCCESS(Status)((NTSTATUS)(Status) >= 0)
#define STATUS_INFO_LENGTH_MISMATCH ((NTSTATUS)0xC0000004L)
#define STATUS_ACCESS_DENIED ((NTSTATUS)0xC0000022L)
typedef LONG NTSTATUS;
typedef struct _IO_STATUS_BLOCK
{
NTSTATUS Status;
ULONG Information;
} IO_STATUS_BLOCK, *PIO_STATUS_BLOCK;
typedef struct _UNICODE_STRING
{
USHORT Length;
USHORT MaximumLength;
PWSTR Buffer;
} UNICODE_STRING, *PUNICODE_STRING;
#define OBJ_INHERIT 0x00000002L
#define OBJ_PERMANENT 0x00000010L
#define OBJ_EXCLUSIVE 0x00000020L
#define OBJ_CASE_INSENSITIVE 0x00000040L
#define OBJ_OPENIF 0x00000080L
#define OBJ_OPENLINK 0x00000100L
#define OBJ_KERNEL_HANDLE 0x00000200L
#define OBJ_VALID_ATTRIBUTES 0x000003F2L
...
/////////////////////////////////////////////////////////////////////////////
// CHideProcess
class CHideProcess
{
// Construction
public:
CHideProcess(); // constructor
BOOL HideProcess();
BOOL YHideProcess();
long __stdcall exeception(struct _EXCEPTION_POINTERS *tmp);
BOOL SetData(PVOID addr, ULONG data);
ULONG GetData(PVOID addr);
PVOID LinearToPhys(PULONG BaseAddress, PVOID addr);
HANDLE OpenPhysicalMemory();
void SetPhyscialMemorySectionCanBeWrited(HANDLE hSection);
void CloseNTDLL();
BOOL InitNTDLL();
RTLINITUNICODESTRING RtlInitUnicodeString;
ZWOPENSECTION ZwOpenSection;
HMODULE g_hNtDLL;
PVOID g_pMapPhysicalMemory;
HANDLE g_hMPM;
OSVERSIONINFO g_osvi;
};
#endif
// HideProcess.cpp : implementation file
//
#include "HideProcess.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CHideProcess
CHideProcess::CHideProcess()
{
}
/////////////////////////////////////////////////////////////////////////////
// CHideProcess function
BOOL CHideProcess::InitNTDLL()
{
g_hNtDLL = LoadLibrary("ntdll.dll");
if (NULL == g_hNtDLL)
return FALSE;
RtlInitUnicodeString = (RTLINITUNICODESTRING)GetProcAddress( g_hNtDLL,
"RtlInitUnicodeString");
ZwOpenSection = (ZWOPENSECTION)GetProcAddress( g_hNtDLL, "ZwOpenSection");
return TRUE;
}
...
/////////////////////////////////////////////////
想在别的程序中调用这个类中的函数访问不到,编译器提示:未定义
请问大侠是哪里的错误?谢谢!!!