使用导出的C++函数

Using a C++-function that is exported

本文关键字:C++ 函数      更新时间:2023-10-16

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

我有一个头,它将一些函数导出到库中。该文件名为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的所有内容,有人知道我可能做错了什么吗?

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

@Karadur是对的。

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

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

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