我想用託管C++包裝託管C++ DLL,並且不斷收到鏈接錯誤。用託管類包裝C++ DLL
即使我將我的library.lib包含在項目中幷包含正確的頭文件。
這是管理類:
#pragma once
#include "..\Terminal\Terminal.h"
public ref class ManagedTerminal
{
private:
Terminal * m_unTerminal;
public:
ManagedTerminal(void)
{
m_unTerminal = new Terminal();
}
};
這也是非託管類:
#include "..\Core1.h"
#include "..\Core2.h"
__declspec(dllexport) class Terminal
{
private:
CoreObj m_core;
public:
Terminal();
void Init(char* path, char* filename);
void Start();
void Stop();
void Run();
Array<Report> GetSnapshot();
~Terminal(void);
};
和錯誤,我得到的是:
錯誤5錯誤LNK2028:無法解析的標記( 0A0000B3)函數「public:__clrcall ManagedTerminal :: ManagedTerminal(void)」中引用的「public:__thiscall Terminal :: Terminal(void)」(?? 0Terminal @@ $$ FQAE @ XZ)(?? 0ManagedTerminal @@ $$ FQ $ AAM @ XZ)Ma nagedTerminal.obj TerminalWrapper
錯誤6錯誤LNK2019:解析外部符號 「公共:__thiscall終端::終端(無效)」(?? 0Terminal @@ $$ FQAE @ XZ)在函數引用「公共:__clrcall ManagedTerminal :: ManagedTerminal(void)「(?? 0 ManagedTerminal @@ $$ FQ $ AAM @ XZ)ManagedTerminal.obj TerminalWrapper
有人可以告訴我出了什麼問題嗎? 謝謝:)
非託管C++ dll是否使用boost :: thread? – 2010-10-18 20:32:54
可能的重複[我嘗試使用託管C++包裝本機C++類時獲得LNK2028](http://stackoverflow.com/questions/721387/i-get-lnk2028-when-trying-to-wrap-native-c- class-using-managed-c) – 2010-10-18 20:33:11
您可以嘗試製作可能會再現問題的小例子嗎? – Vlad 2010-10-18 20:36:14