我正在尝试创建一个dll,并从c#应用程序中调用该函数。
我的代码如下:
header.h
#define DllItem __declspec( dllimport )
class DllItem Access
{
public:
Access();
~Access();
bool open();
}
的.cpp
#include "header.h"
void openTracker()
{
Access access;
access.open();
}
C#
using System.Runtime.InteropServices;
namespace CSharp
{
class Access
{
[DllImport("Access.dll", CallingConvention = CallingConvention.Cdecl)]
public static extern void openTracker();
static void Main(string[] args)
{
openTracker();
}
}
}
当我构建dll时,我在__declspec(dllimport)上得到了未解决的外部符号错误。我在功能中缺少什么?
我已经按照教程进行操作,因此可能会出现一些错误。这是正确的方法吗? 感谢。
答案 0 :(得分:1)
那是你所有的代码吗? Access :: open函数定义在哪里?
来自Using dllimport and dllexport in C++ Classes
您必须在同一程序中提供所有此类成员的定义。否则,将生成链接器错误
我希望你会发现它有用。