教你怎样在VC中导出C++类

来源:网络时间:2011-08-04 15:03:03
  首先使用Wizard创建一个Win32 Dynamic-Link Library工程,然后定义一个简单的C++类CInDLL.由于该类会被工程之外的文件所引用,所以需要对这个类进行引出。因为只有引出后所生成的DLL中才带有供足够的信息以在连接和运行时被正确引入到进程空间中。有两种方法可以引出类,使用__declspec(dllexport)定义和使用定义文件。
  下面先讲使用__declspec(dllexport)的方法:将类定义改为:class __declspec(dllexport) CInDLL 就可以了。 这样产生的工程在编译时是正确的但是在使用时会产生错误,因为你包含的头文件中也是使用__declspec(dllexport),而使用这个DLL的工程中并没有引出这个类,而是需要引入这个类)在使用时需要将类定义改为class __declspec(dllimport) CInDLL就可以了。
  使用定义文件可以有效的避免这个问题,SXS好问提示,这种方法是利用宏定义在不同的地方产生不同的编译代码:在头文件中加入如下的代码:#ifdef _CLASSINDLL #define CLASSINDLL_CLASS_DECL __declspec(dllexport)#else #define CLASSINDLL_CLASS_DECL __declspec(dllimport)#endif#endif // ClassInDLL_H//将class __declspec(dllexport) CInDLL改为class CLASSINDLL_CLASS_DECL CInDLL{ CInDLL();……}在实现这个类的CPP文件的顶部加入#define _CLASSINDLL语句。
  #define _CLASSINDLLCInDLL::CInDLL(){}……
  这样一来在使用这个类时就可以不做任何改动了。
文章内容来源于网络,不代表本站立场,若侵犯到您的权益,可联系我们删除。(本站为非盈利性质网站) 联系邮箱:9145908@qq.com
近期热点
1正常步态的跨步长度为() 2正确理解财政监督概念应该把握的要点包括() 3正确的组织价值标准是() 4正确的现代学生观为() 5正确训练偏瘫患者穿、脱衣服的方法是() 6正确的师生关系是() 7比如由“黑”想到“白”,由“水”想到“火”,由自私想到宽容,由燥热想到清凉。许多冰箱广告、饮料广告、洗涤用品、化妆品广告都是采用对比联想展开创意。例如,MCI长途电话服务公司做过这样一幅广告:一对夫妇刚到美国电话电报公司,给千里之外的儿子打完电话,母亲双手一摊,眼泪汪汪地问:“你知道我们打这个长途电话花了多少钱吗?”这则广告告诉了我们什么 8比如由“黑”想到“白”,由“水”想到“火”,由自私想到宽容,由燥热想到清凉。许多冰箱广告、饮料广告、洗涤用品、化妆品广告都是采用对比联想展开创意。例如,MCI长途电话服务公司做过这样一幅广告:一对夫妇刚到美国电话电报公司,给千里之外的儿子打完电话,母亲双手一摊,眼泪汪汪地问:“你知道我们打这个长途电话花了多少钱吗?”这则广告告诉了我们什么() 9比尔·本巴赫所创立的DDB广告公司以其众多杰出的反传统广告而著称于世,下列选项属于其经典作品的是() 10比如,设计一句广告口号,构筑一条企业理念,命名一种新产品是头脑激荡法的哪一步骤()