1在VC6中新建MFC
Appwizard(dll)工程。
2添加一个新类(CMyClass)。
3在类的头文件里加一句话,用来发布:Class
_declspec(dllexport)
CMyClass。
4编译后在Debug里找dll和lib文件。
5调用方法:把这两个文件考入要调用的工程根目录下,头文件里引用:
#include
"MyClassh"
#pragma
comment(lib,"Dlllib")
试试吧,没人指导是挺难的,我也是新手,以后多交流。有两种方法,分别叫做显示链接和隐式链接。
我只说隐式链接吧,因为这是最常用的一种方法,我们使用MFC库都是用这种方法的。这种方法需要头文件和lib文件。两步1,先包含函数声明的头文件。
2。用#pragma comment(lib, libPath )定位lib文件路径。这步也可以这样做:Tools--->Options--->Directory-->在Show Directories for下选择library files,然后在下面增加你的lib文件的路径。
然后就可以调用了。
显示链接不需要头文件和lib文件,可以在网上找一下很多的。link /lib /list xxxlib
可以列出这个lib文件里的所有obj文件
link /lib /extract:xxxobj xxxlib
可以从lib里拆解出一个obj文件
配合/nologo参数和for命令
把里面的obj文件全部拆出来
for /f "delims=" %a in ('link /lib /list /nologo xxxlib') do link /lib /extract:"%a" xxxlib
然后根据h文件自己写个def文件,用link重新链接一下就行了。
def文件还是要自己写的……
或者你看看能不能用dumpbin把lib导出的函数名字都列出来,然后处理一下做成def文件1、先用mfc向导生成静态dll文件。
2、编辑增加类;
3、生成dll文件和lib文件;
4、将生成的dll和lib,和类的头文件复制到需要引用的文件exe下;
/
//导出dll的头文件myClassh
#define
DLLimport
__declspec(dllimport)
#define
DLLexprot
__declspec(dllexport)
class
DLLexprot
myClass
//导出类
{
public:
myClass(void);
~myClass(void);
void
fun1();
void
fun2();
};
//导出dll的cpp文件myClasscpp
#include
"StdAfxh"
#include
"myClassh"
myClass::myClass(void)
{
}
myClass::~myClass(void)
{
}
void
myClass::fun1()
{
::MessageBox(NULL,_T("fun1()"),_T("MessageBox"),MB_OKCANCEL);
}
void
myClass::fun2()
{
::MessageBox(NULL,_T("fun2()"),_T("MessageBox"),MB_OK);
}
//实现调用dll文件
hellocpp
#include
"myClassh"
//引用类的头文件
#pragma
comment(lib,"MFCdlllib")
//引用lib文件
#define
DLLimport
__declspec(dllimport)
#define
DLLexport
__declspec(dllexport)
class
DLLimport
myClass;
//导入类
#include
<iostream>
using
namespace
std;
int
main()
{
cout<<"hello
world!"<<endl;
myClass
a;
afun1();
//调用类的成员函数
afun2();
}望采纳。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)