簡體   English   中英

問:如何在沒有頭文件和lib文件的情況下導入dll

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM