如何用c/c++编写和调用dll动态链接库。

请给出实例。谢谢。要详解... 请给出实例。谢谢。要详解 展开
 我来答
DefInt
推荐于2016-10-17 · TA获得超过406个赞
知道小有建树答主
回答量:268
采纳率:83%
帮助的人:205万
展开全部
假设名凯陵为a.dll导出了函数int sum(int a, int b);
应这样调用:
HMODULE hLib = LoadLibrary("a.dll"); /盯隐戚/加载a.dll,这里是假设a.dll与程序放在同携谈一目录
typedef int (*funcSum)(int,int); // 定义函数指针
funcSum sum = (funcSum) GetProcAddress(hLib, "sum"); //获取函数地址
int ret = sum(1,2); //调用
FreeLibrary(hLib); //释放
zfl65535
2012-03-07
知道答主
回答量:45
采纳率:0%
帮助的人:28.6万
展开全部
DLL函州脊腊数导出方式有多册滑野唯种方式,这里介绍的是其中一种方式
头文件gptsqlite.h:
#ifndef _GPTSQLITE_H__
#define _GPTSQLITE_H__

#ifdef __cplusplus
extern "C" {
#endif

#ifdef _EXPORTING
#define CLASS_DECLSPEC __declspec(dllexport)
#else
#define CLASS_DECLSPEC __declspec(dllimport)
#endif

CLASS_DECLSPEC int Add(int i, int j);

#undef _DLL_GPTSQLITE

#ifdef __cplusplus
}
#endif

#endif

 源文件gptsqlite.cpp
#include "StdAfx.h"
#define _EXPORTING

#include "gptsqlite.h"

CLASS_DECLSPEC int Add(int i, int j)
{
return i+j;
}
  调用函数

#include "stdafx.h"
#include<cstdlib>
#include <iostream>
#include "gptsqlite.h"
#pragma comment(lib, "dlldatabase.lib")
int _tmain(int argc, _TCHAR* argv[])
{
int i = Add(1, 2);
std::cout << i << std::endl;
system ("pause");
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式