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

请给出实例。谢谢。要详解

假设名为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); //释放
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-03-07
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;
}
相似回答