我正在嘗試創建一個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)上。我在功能中缺少什麼?
我跟着教程,所以可能犯了一些錯誤。這是正確的方式去做這件事嗎? 謝謝。
您是否在dhc#項目中添加了dll作爲參考? –
當您使用dllimport時,您承諾該類的*實現*位於另一個模塊中。也許你確實在另一個DLL中編寫了代碼並正確使用了dllexport,這似乎不太可能。如果你確實忘了告訴鏈接器它需要鏈接另一個DLL的導入庫。 –
啊,我有一個x64 lib鏈接,當它應該是32.謝謝大家! – anti