转写东西

DLL 文件编写方法:
1、建立DLL工程
2、声明、定义要导出的函数
BOOL WINAPI InitDlg( HWND hTabctrl,TShareMem* pTshare,CRect* prc);// WINAPI 标准调用约定
void WINAPI EndDlg();
DWORD WINAPI ShowDlg(int nDlgNum);
实现部分省略。。。
3、新建.def文件
内容如下:
; TShare.def : Declares the module parameters for the DLL.

LIBRARY       "TShare"
DESCRIPTION   'TShare Windows Dynamic Link Library'

EXPORTS
    ; Explicit exports can go here
InitDlg//导出的函数名,没有括号。。。
ShowDlg
EndDlg
4、调译工程。。。


一、显式(静态)调用与调试DLL:
调用部分:
主程序需要DLL工程的 .lib文件、.dll文件、dll的头文件
1、将DLL编译后的以上三个拷贝到主程序的工程目录下(DLL文件还需要复制到Debug目录下);
2、在需要调用DLL函数的源文件中包含 dll的头文件;
3、在主程序工程设置:Project->Settings...->Object/Library Modules中输入.lib文件名
4、直接调用DLL导出的函数。

调试部分:
1、把DLL项目增加到主程序的工程中;
2、把主程序和DLL工程的输出文件设置在同一个目录( Project->Settings...->Link- >Output file name里面的路径修改到同一个目录../Debug/...);
3、在主程序或者DLL程序设置断点、F5调试运行、F11进行函数内部。


二、隐式(动态)调用与调试DLL:
调用部分:
主程序需要DLL工程的 .dll文件和导出函数原形。。。
1、 在需要调用DLL函数的源文件中 typedefDLL函数指针
typedef BOOL (WINAPI* pFuncInit)(HWND hTabctrl,TShareMem* pTshare,CRect* prc);
typedef DWORD (WINAPI* pFucShow)(int nDlgNum);
typedef DWORD (WINAPI* pFucEnd)();

2、加载DLL:LoadLibrary(_T("DLL文件名"));
HMODULE m_hDll= LoadLibrary(_T("TShare.dll"));
if (m_hDll==NULL)
{
MessageBox(_T("获取DLL失败!"),_T("提示"),MB_ICONERROR);
return;
}

pFuncInit pInit;
pInit = (pFuncInit)GetProcAddress(m_hDll,_T("InitDlg"));
(*pInit)(m_CtrlTab.m_hWnd,&m_TSahre,&rc);

3、卸载DLL:FreeModule(m_hDll);


调试部分:
1、把DLL项目增加到主程序的工程中;
2、把主程序和DLL工程的输出文件设置在同一个目录( Project->Settings...->Link- >Output file name里面的路径修改到同一个目录../Debug/...);
3、在主程序或者DLL程序设置断点、F5调试运行、F11进行函数内部。

注:在 显式(静态)调用DLL 有的在要调用DLL的源文件中加以下语句也可以
#pragma comment(lib,"TShare.lib")
extern "__stdcall"_declspec(dllimport)  BOOL  InitDlg (HWND hTabctrl,TShareMem* pTshare,CRect* prc);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值