首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

C++ DLL内存在大局类

2013-12-20 
C++ DLL内存在全局类如何在DLL里面 使用一个全局类变量?MyClass asdasd这里出错、不知道为何.求高手指点代

C++ DLL内存在全局类
如何在DLL里面 使用一个全局类变量?


MyClass asdasd;   这里出错、不知道为何.求高手指点

代码如下:


#include "stdafx.h"


int aaa =10;
MyClass asdasd; //编译时出错、

class MyClass
{
public:
MyClass();
~MyClass();
int  adaad(int a, int b);
int adasad(int a, int b);
private:

};

MyClass::MyClass()
{
MessageBoxA(NULL,"构造函数","提醒",MB_OK);
}

MyClass::~MyClass()
{
MessageBoxA(NULL,"析构函数","提醒",MB_OK);
}

int  MyClass::adasad(int a, int b)
{
  return a*b;
}


int  MyClass::adaad(int a, int b)
{
  return a+b;
}


int _stdcall asdasdasdasdasd(int a, int b)
{

MyClass  bbb ;//如果直接使用全局的话,直接出错,(存在全局类根本都编译不了)
aaa =111;//全局int变量   可以编译,可以使用

return bbb.adaad(a,b);
}

int _stdcall asdasdasdasdasdasdsadasd(int a, int b)
{

MyClass  bbb ; //如果直接使用全局的话,直接出错,(存在全局类根本都编译不了)
return bbb.adasad(a,b);
}

[解决办法]
MyClass * asdasd;

此时你的MyClass还没完整定义,当然不能直接用啦。如果你实在不想用指针,头文件里这样写
extren MyClass asdasd;

包含类定义的cpp文件里这样写
MyClass asdasd;

或者你直接将MyClass asdasd;
移到你MyClass类的定义后面。但这不推荐,头文件里最好不要定义全局变量,容易导致变量冲突。
[解决办法]
引用:
MyClass * asdasd;

此时你的MyClass还没完整定义,当然不能直接用啦。如果你实在不想用指针,头文件里这样写
extren MyClass asdasd;

包含类定义的cpp文件里这样写
MyClass asdasd;

或者你直接将MyClass asdasd;
移到你MyClass类的定义后面。但这不推荐,头文件里最好不要定义全局变量,容易导致变量冲突。


引用:
MyClass * asdasd;

此时你的MyClass还没完整定义,当然不能直接用啦。如果你实在不想用指针,头文件里这样写
extren MyClass asdasd;

包含类定义的cpp文件里这样写
MyClass asdasd;

或者你直接将MyClass asdasd;
移到你MyClass类的定义后面。但这不推荐,头文件里最好不要定义全局变量,容易导致变量冲突。


对鸟,头文件里不要定义全局变量这条规则也包括用指针~

热点排行