c#dllImport未解析外部符号
我试图创建一个dll,并从c#应用程序调用该函数 我的代码如下: 标题.hc#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)上得到未解决的外部符号错误。我在函数中缺少了什么 我遵循了教程,因此可能会犯一些错误。这是正确的方法
#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();
}
}
}