1

我已经用谷歌搜索了好几天了,我似乎无法解决这个问题。

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

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

我还有另外两个文件,一个 .h 和 .cpp,它们在导出文件的帮助下计算了一些东西。我已经剥离了这些版本来展示我想要做什么。

啊文件:

// 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 的所有内容,有没有人知道我可能做错了什么?

4

2 回答 2

2

@Karadur 是对的。

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

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

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

于 2013-08-07T14:37:23.390 回答
2

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

于 2013-08-07T14:33:17.860 回答