科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件利用VC调用动态链接库中的函数

利用VC调用动态链接库中的函数

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

在Windows操作系统中使用DLL有很多优点,最主要的一点是多个应用程序、甚至是不同语言编写的应用程序可以共享一个DLL文件。

作者:刘涛 来源:天极开发 2007年10月16日

关键字:

  • 评论
  • 分享微博
  • 分享邮件
三、程序代码

///////////////////////////////////////////////////////////////////////
// DLL.cpp : Defines the initialization routines for the DLL.
#include "stdafx.h"
#include "DLL.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
BEGIN_MESSAGE_MAP(CDLLApp, CWinApp)
 //{{AFX_MSG_MAP(CDLLApp)
 // NOTE - the ClassWizard will add and remove mapping macros here.
 // DO NOT EDIT what you see in these blocks of generated code!
 //}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////// CDLLApp construction
CDLLApp::CDLLApp()
{}
/////////////////////////////////////////////////////////////////////////////// The one and only CDLLApp object
CDLLApp theApp;
extern "C" _declspec(dllexport) int Test(int i)
{
 AFX_MANAGE_STATE(AfxGetStaticModuleState());
 return ++i;
}
/////////////////////////////////////////////////////////////////////////DLL.def文件
; DLL.def : Declares the module parameters for the DLL.
LIBRARY "DLL"
DESCRIPTION 'DLL Windows Dynamic Link Library'
EXPORTS
////////////////////////////////////////////////////////////
void CTestDlg::OnBtest()
{
 UpdateData(true);
 typedef int(_cdecl *Connect)(int i);
 HINSTANCE hinstDLL=NULL;
 hinstDLL=LoadLibrary("dll.dll");
 if (hinstDLL)
 {
  Connect Proc;
  Proc = (Connect)GetProcAddress (hinstDLL,"Test");
  int iValue = Proc(m_i);
  FreeLibrary(hinstDLL);
  char * p = new char[10];
  sprintf(p,"%d",iValue);
  AfxMessageBox(p);
 }
 else
 {
  AfxMessageBox("没找到dll");
 }
}

  四、小结

  在文介绍了DLL技术,并给出了调用DLL中函数的实现代码,仿效这个例子,还可以编制出更多的适合自己应用系统所需的DLL,例如,用于数据采集卡的端口操作及扩展内存区访问、视频区缓冲区及BIOS数据区操作等许多实际应用的编程任务。必要时只需直接更新DLL,而用不着对应用程序本身作任何改动就可以对应用程序的功能和用户接口作较大的改善,实现版本升级。因此,掌握好DLL技术对Windows程序开发者很有裨益。

查看本文源

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章