如何将动态库(DLL)中的类导出
1个回答
展开全部
�0�1 开发系统:Windows 2000 + Service Pack 4�0�1 开发工具:C++ Builder 6.0 + Service Pack 4�0�1 前言首先我要感谢所有在CSDN中帮助过我的人,特别是季世平和谢伟! 谢谢你们的帮助与支持!我想如何写动态库(DLL)就不必多说了吧!!如果这方面还不太了解的话可以在网上找找“BCB 编写 DLL 终极手册”这篇文章,写得很祥细!!当我会写动态库(DLL)和类的时候我就在想如何在动态库(DLL)中写个类,让程序(EXE)可以像“自己”的类一样调用,这样不就可以隐藏自己写类的代码了吗!但这个想法一直没有实现!后来因为工作的需要所以就慢慢摸索出三种方法来,下面分别介绍给大家!n 方法1:(由谢伟提供)将类的句柄写成导出函数让EXE调用,要解决的问题就是将这个类的句柄传给EXE即它的HANDLE传出,这种方法比较复杂,要为类的每个成员函数写个导出函数,并且EXE必须加入动态库(DLL)的lib文件! DLL文件:MainDll.cpp//--------------------------------------------------------------------------- #include #include #pragma hdrstop#pragma argsused //---------------------------------------------------------------------------int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void* lpReserved){ return 1;} //---------------------------------------------------------------------------//这句不要忘记加上! 定义DLL的导出函数#include "MakeDll.h" //---------------------------------------------------------------------------//MakeDll类,相当于平时自己定义的类(一个简单的类)class MakeDll{private: int mNumber;public: MakeDll(); int SetNumber(int iValue); void ShowOldValue(); void ShowNewValue();}; //---------------------------------------------------------------------------//以下是类的定义//---------------------------------------------------------------------------MakeDll::MakeDll(){ mNumber = 100;} //---------------------------------------------------------------------------int MakeDll::SetNumber(int iValue){ mNumber = iValue; &n
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询