有.h和.lib 如何生成DLL

来源:互联网 发布:js 定时器 刷新 编辑:程序博客网 时间:2024/06/05 05:21

整理自:http://social.msdn.microsoft.com/Forums/zh-TW/230/thread/fdf1dba3-3804-4bb4-95c3-c54758fb3358

 

==============================================================

 

Q:

我有一份硬體廠商給的SDK,裡面有 xxxx.h 和 xxxx.lib 還有VC6.0的操作範例..

不過我目前要是使用C#來開發我的應用程式,我找了一下,C#似乎是無法直接使用lib,必須轉換成DLL使用。

我現在不知道如何轉換成標準的DLL。

感謝大家的幫忙

 

A:

如果原廠不提供DLL, 您就需要使用VC++建立DLL型態的專案, 在專案中呼叫廠商提供的LIB中的功能, 並在這個專案中引入必要的.H, 做好之後建置專案會得到DLL, 再把DLL拿給VB專案, 由VB程式透過DllImport引用

 

A:

請廠商提供DLL, 不然就自己使用VC++建一個使用LIB的DLL專案, 再把做好的DLL拿給C#使用

 

Q:

小弟現在遇到類似的問題,軟體廠商提供一組以C撰寫的API

但是小弟希望能夠以VB2005撰寫,請問該怎麼做呢?

 

A:

早期的 Link32.exe 其實可以將 lib 跟 dll 互轉,應該是 VC4 以前吧~

 

但是這邊後來發現有智慧財產權的問題,因為 lib 跟 dll 用途不同,是分別賣的,所以後來 link32.exe 就不能將這兩種格式互轉了。

 

請廠商提供是最快的,廠商要賺錢,通常解決方案都有了,只是會不會提供給你而已,沒有解決方案只是把客戶推給別人,所以問原始廠商比較快。

 

A:

如果您是要在VB.NET的程式中呼叫C函數, 可以使用平台呼叫的技巧, 請參考:

 

http://www.freevbcode.com/ShowCode.Asp?ID=2707

 

Q:

由於原始廠商不提供dll檔案,且依據您的範例

   我查了msdn,DllImport屬性似乎沒有提到該如何引入.h與.lib,

   那是否意味著無法直接引入呢?

 

A:

如果原廠不提供DLL, 您就需要使用VC++建立DLL型態的專案, 在專案中呼叫廠商提供的LIB中的功能, 並在這個專案中引入必要的.H, 做好之後建置專案會得到DLL, 再把DLL拿給VB專案, 由VB程式透過DllImport引用

 

S:

看來這是目前唯一的方法了...

原创粉丝点击