我對編寫DLL或Visual Studio沒有太多經驗。基本上我想在非VS(即Qt)項目中使用在Visual Studio中創建的DLL。該.h
文件默認DLL(VS2010)是:在非VS項目中包含VS DLL
// test-lib.h
#pragma once
using namespace System;
namespace testlib {
public ref class Class1
{
//...
};
}
我能夠生成DLL沒有任何問題,但我不知道怎麼把它列入我的Qt項目。也就是說,當我嘗試編譯它,我得到
..\test-lib.h:6: error: C2871: 'System' : a namespace with this name does not exist ..\test-lib.h:10: error: C2059: syntax error : 'public' ..\test-lib.h:11: error: C2143: syntax error : missing ';' before '{' etc.
儘管這是事實,我與VS2012的編譯器和我的Qt版本編譯與它建爲好。有誰知道我該如何做這項工作?在我的.pro
文件中,我目前已將dll添加到LIBS
,還有其他dll需要添加嗎?
您的問題被標記爲「C++」,但代碼不是。你是否想用Qt項目中的本機代碼或託管.NET程序集來使用.dll? – IInspectable
@Tim我希望我的Qt代碼儘可能不含Windows。所以如果可能的話,在Qt中沒有.NET或任何東西。沒有任何反對VS我只需要可移植性。我使用的是VS2012 C++,所以我認爲我正在使用的大多數是C++,在頂層對於VS做的任何預處理(就像Qt有一個MOC層)一樣。所以我認爲C++標記是合理的,因爲Qt是基於C++的,'#include'語法是特定於C/C++的 –
我仍然感到困惑。雖然#include預處理器指令的確是C++,但頭文件_test-lib.h_不是。它看起來像C++/CLI - 就語法而言 - 是C++的超集。但是它不會編譯爲本地代碼,並且運行它需要.NET運行時。 – IInspectable