c#dllImport未解析外部符号

c#dllImport未解析外部符号,c#,c++,dllimport,C#,C++,Dllimport,我试图创建一个dll,并从c#应用程序调用该函数 我的代码如下: 标题.h #define DllItem __declspec( dllimport ) class DllItem Access { public: Access(); ~Access(); bool open(); } .cpp c# 当我构建dll时,我在_declspec(dllimport)上得到未解决的外部符号错误。我在函数中缺少了什么 我遵循了教程,因此可能会犯一些错误。这是正确的方法

我试图创建一个dll,并从c#应用程序调用该函数

我的代码如下:

标题.h

#define DllItem __declspec( dllimport )
class DllItem Access
{
public:

    Access();
    ~Access();

    bool open();

}
.cpp

c#

当我构建dll时,我在_declspec(dllimport)上得到未解决的外部符号错误。我在函数中缺少了什么

我遵循了教程,因此可能会犯一些错误。这是正确的方法吗?
谢谢。

这就是你的全部代码吗?Access::open函数定义在哪里

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


我希望您会觉得它很有用。

您是否在c#project中添加了dll作为参考?当您使用dllimport时,您承诺该类的实现位于另一个模块中。也许您确实在另一个DLL中编写了该代码并正确使用了dllexport,这似乎不太可能。如果你这样做了,那么你忘了告诉链接器,它需要链接另一个DLL的导入库。啊,我链接了一个x64库,当时它应该是32。谢谢大家!如上所述,我愚蠢地链接了x64库而不是32库。谢谢你的链接,当然很有帮助。
#include "header.h"


void openTracker()
{
    Access access;

    access.open();
}
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();
        }
    }
}