使用C ++ - 导出的函数

时间:2013-08-07 14:28:35

标签: c++ import include export

我现在一直在谷歌搜索,我似乎无法解决这个问题。

我有一个标题,它将一些函数导出到库中。该文件名为test_extern.h,函数如下所示:

__declspec(dllexport) int aFunction(int a, int b);

我有两个其他文件,一个.h和.cpp,它们借助导出的文件计算一些东西。我已经删除了版本以显示我想要做的事情。

A.h档案:

// Include CBaseDILI_J1939 header file.
class A : public CBaseDILI_J1939
{
public:
  int bFunction(int a, int b);
}

A.cpp文件:

#include "test_extern.h"
#include "A.h"

int A::bFunction(int a, int b) {
  return aFunction(a, b);  // REturn the value of the exported function!
}

现在当我运行时,我收到“错误LNK2019:未解析的外部符号_ imp _aFunction”。

我已阅读并阅读有关导出dll的所有内容,是否有人知道我可能做错了什么?

2 个答案:

答案 0 :(得分:2)

您必须将调用模块中的dll函数声明为dllspec(dllimport)。

答案 1 :(得分:2)

@Karadur是对的。

检查此链接上的示例:http://msdn.microsoft.com/en-us/library/799kze2z.aspx。 答案在本页底部。

在A.cpp中将此添加到顶部。

__declspec(dllimport) int aFunction(int a, int b);