2016-04-29 36 views
0

嗨我想創建一個我的C程序的DLL,我的程序發送和接收消息到USB設備。我使用libusb1.0作爲C程序的庫。現在我想讓我的程序變成一個dll以供其他程序使用,我無法想象如何導入或捆綁libusb的dll。在C DLL上使用C靜態庫(.lib)

因此,研究我的問題,我發現libusb提供了一個靜態庫,並且我已經看到了有關使用C++鏈接DLL上的靜態庫的文章。

所以我的問題是...是否有可能將靜態庫(.lib文件)鏈接到C環境中的動態鏈接庫(.dll)?

P.S.如果可以的話,我可以問問鏈接/教程讓我開始開發這個?

+0

搜索包裝指南。通常會將[tag:c] .lib包裝到例如[tag:C++] DLL中。 – LPs

回答

1

在Windows DLL中基本上只是一個特殊的入口點(的WinMainmainDllMain代替)一個正常的可執行文件,以及任何其他正常的可執行文件,您可以使用靜態和動態庫。

+0

有了這個概念,我的dll會調用靜態庫。那麼,即使沒有靜態庫在他們的終端,保證使用我的DLL的程序將工作? – pejobear

+0

@pejobear簡化來說,靜態庫只不過是一個目標文件的集合。與靜態庫鏈接就像鏈接實際的目標文件。這也是靜態庫的一個重點,它們被靜態鏈接到生成的可執行文件/ DLL中,它們成爲可執行文件/ DLL的一部分。 –

+0

這很有道理。謝謝。 – pejobear