如何将 窗口 封装进 MFC扩展DLL中 25
2个回答
展开全部
*1、先用mfc向导生成静态dll文件。
*2、编辑增加类;
*3、生成dll文件和lib文件;
*4、将生成的dll和lib,和类的头文件复制到需要引用的文*件exe下;
*/
//导出dll的头文件myclass.h
#define
dllimport
__declspec(dllimport)
#define
dllexprot
__declspec(dllexport)
class
dllexprot
myclass
//导出类
{
public:
myclass(void);
~myclass(void);
void
fun1();
void
fun2();
};
//导出dll的cpp文件myclass.cpp
#include
"stdafx.h"
#include
"myclass.h"
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文件
hello.cpp
#include
"myclass.h"
//引用类的头文件
#pragma
comment(lib,"mfcdll.lib")
//引用lib文件
#define
dllimport
__declspec(dllimport)
#define
dllexport
__declspec(dllexport)
class
dllimport
myclass;
//导入类
#include
using
namespace
std;
int
main()
{
cout<<"hello
world!"<
评论
0
5
加载更多
*2、编辑增加类;
*3、生成dll文件和lib文件;
*4、将生成的dll和lib,和类的头文件复制到需要引用的文*件exe下;
*/
//导出dll的头文件myclass.h
#define
dllimport
__declspec(dllimport)
#define
dllexprot
__declspec(dllexport)
class
dllexprot
myclass
//导出类
{
public:
myclass(void);
~myclass(void);
void
fun1();
void
fun2();
};
//导出dll的cpp文件myclass.cpp
#include
"stdafx.h"
#include
"myclass.h"
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文件
hello.cpp
#include
"myclass.h"
//引用类的头文件
#pragma
comment(lib,"mfcdll.lib")
//引用lib文件
#define
dllimport
__declspec(dllimport)
#define
dllexport
__declspec(dllexport)
class
dllimport
myclass;
//导入类
#include
using
namespace
std;
int
main()
{
cout<<"hello
world!"<
评论
0
5
加载更多
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
首先,你创建工程的时候,就要创建DLL工程,编译无错误后,生产DLL文件,然后在另外一个工程中引用。例如:
hInst=LoadLibrary("HELLO.dll");
if(hInst!=NULL)
{
typedef int(*ShowDlg)();
ShowDlg show=(ShowDlg)GetProcAddress(hInst,"ShowDlg");
show();
FreeLibrary(hInst);
}
else
MessageBox("未发现\"HELLLO.dll\"!");
hInst=LoadLibrary("HELLO.dll");
if(hInst!=NULL)
{
typedef int(*ShowDlg)();
ShowDlg show=(ShowDlg)GetProcAddress(hInst,"ShowDlg");
show();
FreeLibrary(hInst);
}
else
MessageBox("未发现\"HELLLO.dll\"!");
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询