c#dllImport未解析的外部符号

时间:2015-11-11 12:28:40

标签: c# c++ dllimport

我正在尝试创建一个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)上得到了未解决的外部符号错误。我在功能中缺少什么?

我已经按照教程进行操作,因此可能会出现一些错误。这是正确的方法吗? 感谢。

1 个答案:

答案 0 :(得分:1)

那是你所有的代码吗? Access :: open函数定义在哪里?

来自Using dllimport and dllexport in C++ Classes

  

您必须在同一程序中提供所有此类成员的定义。否则,将生成链接器错误

我希望你会发现它有用。