VC++生成动态库文件防止名字改编

testdll.h文件

#ifndef TESTDLL_H
#define TESTDLL_H

#ifdef DLL_EXPORT
#define TEST_API extern "C" __declspec(dllexport)
#else
#define TEST_API extern "C" __declspec(dllimport)
#endif

TEST_API void testfunc();

#endif

testdll.cpp文件

#define DLL_EXPORT
#include "testdll.h"
#include 
#include 
using namespace std;

void testfunc()
{
	string s1 = "test string";
	cout << s1 << endl;
}

这样在命令行下通过下面的命令
dumpbin /exports testdll.dll
就可以看到导出的函数了。
上面的__declspec(dllexport)用于生成lib文件,extern "C"是防止C++编译器名字改编。
注意.c文件中不能使用extern “C”

你可能感兴趣的:(VC++)