[英]Qt: how to import dll without header and lib files
我想在這個網站http://projnet.codeplex.com/中包含一個dll但它只提供一個dll文件和一個xml文件,不包含頭文件或lib文件。 是否可以使用類似的東西導入dll
QLibrary geolib("ProjNet.dll");
geolib.load();
如果它工作(在這種情況下geolib.isloaded是真的)那么我如何在Qt中使用它?
非常感謝!!!
對於.net框架,這是一個托管DLL,它解釋了為什么它沒有頭文件。 您將無法直接使用它。 你需要把它包起來。 例如,使用COM或作為混合模式C ++ / CLI DLL。
您只能以這種方式使用導出的函數(為此您需要知道函數的名稱和原型)。 加載DLL后,您應該調用resolve方法。 例如,您想要使用MyModule.dll中的導出函數foo :
extern "C" Q_DECL_EXPORT void foo(int a)
你需要創建一個原型:
typedef void (*MyProto)(int)
而不是解決它:
QLibrary myDll("MyModule.dll");
if (myDll.load())
{
MyProto mp = reinterpret_cast<MyProro>(myDll.resolve("foo"));
}
不幸的是,ProjNet.dll沒有導出。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.