Я пытаюсь создать dll и вызвать функцию из приложения C#.C# dllImport неразрешенный внешний символ
мой код выглядит следующим образом:
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). что мне не хватает в функции?
Я следил за учебником, поэтому, возможно, некоторые ошибки. Правильно ли это? Спасибо.
Вы добавили dll в качестве ссылки в проект C#? –
Когда вы используете dllimport, вы обещаете, что * реализация * класса находится в другом модуле. Возможно, вы записали этот код в другой DLL и правильно использовали dllexport, это кажется маловероятным. Если вы это сделали, вы забыли рассказать об этом компоновщику, ему нужно связать библиотеку импорта этой другой DLL. –
ах, у меня была связанная с x64 lib, когда ей должно было быть 32. Спасибо всем! – anti