windows dll的符号导出

testdll3.h

#ifndef TESTDLL3
#define TESTDLL3

//#define API __stdcall
#define API __cdecl

#ifdef __cplusplus
extern "C" {
#endif

	__declspec(dllexport)  int API  add(int x, int y);

#ifdef __cplusplus
}
#endif 

#endif // !TESTDLL3

testdll3.cpp

#include "testdll3.h"

int API add(int x, int y)
{
	return x + y;
}

查看导出符号(省略了不重要信息)

dumpbin  /exports testdll3.dll

         1    0 000110E6 add = @ILT+225(_add)

另一种简便的方法是使用def文件

testdll.def

LIBRARY

EXPORTS
	add

testdll3.h

#ifndef TESTDLL3
#define TESTDLL3

int add(int x, int y);

#endif // !TESTDLL3

testdll3.cpp

#include "testdll3.h"

int add(int x, int y)
{
	return x + y;
}

编译时添加参数 /DEF:"testdll.def" 即可,这种方式相对前者更简洁

猜你喜欢

转载自blog.csdn.net/niu91/article/details/85598261