sysXboy
驱动牛犊
驱动牛犊
  • 注册日期2009-06-22
  • 最后登录2010-02-07
  • 粉丝0
  • 关注0
  • 积分14分
  • 威望131点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2418回复:2

c++写驱动代码问题(构造and析构)

楼主#
更多 发布于:2009-06-22 23:40
用c++写了个类,但构造函数和析构函数一旦加上就编译不通过,郁闷
请大侠们赐教:

我环境是win xp sp3 +vs 2003 + wdk 6001+ddk wizard 1.2

贴出类如下:
//Cr0Cheat.cpp文件

#include "Cr0Cheat.h"

Cr0Cheat g_Cr0Cheat;

//Cr0Cheat::Cr0Cheat()
//{
//    Init();
//}
//
//Cr0Cheat::~Cr0Cheat()
//{
//    Release();
//}

void Cr0Cheat::Init()
{
    __asm
    {
        cli
        push eax
        mov eax,cr0
        and eax,0FFFEFFFFh
        mov cr0,eax
        pop eax
    }
}

void Cr0Cheat::Release()
{
    __asm
    {
        push eax
        mov eax,cr0
        or eax,NOT 0FFFEFFFFh
        mov cr0,eax
        pop eax
        sti
    }
}

//Cr0Cheat.h 文件
#pragma once
class Cr0Cheat
{
public:
    //Cr0Cheat();
    //~Cr0Cheat();
    void Init();
    void Release();
};
extern Cr0Cheat g_Cr0Cheat;



貌似在_atexit出找不到正确的名字析构了。但我确实想用全局变量,该怎么办。是不是要对函数做调用约定的特殊处理,望大侠们赐教啊

sysXboy
驱动牛犊
驱动牛犊
  • 注册日期2009-06-22
  • 最后登录2010-02-07
  • 粉丝0
  • 关注0
  • 积分14分
  • 威望131点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2009-06-25 22:57
怎么都没有人来帮助一下。我自己先顶一下。

据说是编译器在编译成驱动的时候,很多c++特性没有了,其中这个就是。

希望有高手能详细解释一下,谢谢了。。。。。
 
znsoft
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2023-10-25
  • 粉丝300
  • 关注6
  • 积分910分
  • 威望14796点
  • 贡献值7点
  • 好评度2410点
  • 原创分5分
  • 专家分100分
  • 社区居民
  • 最爱沙发
  • 社区明星
板凳#
发布于:2009-06-30 15:19
不能在全局变量中使用c++类
可以只声明一个指针,在运行时new出来一个实例。
http://www.zndev.com 免费源码交换网 ----------------------------- 软件创造价值,驱动提供力量! 淡泊以明志,宁静以致远。 ---------------------------------- 勤用搜索,多查资料,先搜再问。
游客

返回顶部