2010-05-26 63 views
0

我需要能夠編寫C#或VC++中的DLL,這些DLL可以通過Visual Studio 2003 VC++編寫的代碼訪問。它看起來像代碼是非託管的(使用*指針)VC++和這個DLL需要能夠直接進入和被當前代碼訪問。編寫一個可從VS 2003訪問的DLL VC++代碼

該DLL是一個RS232驅動程序,需要能夠返回一個錯誤代碼的int並通過引用返回一些測量值到調用程序。

我可以在C#中編寫它嗎?如果沒有,我只能訪問Visual Studio 2005或2008.我是否可以在我的代碼中編寫代碼,並且能夠從當前代碼庫調用該DLL?或者我必須去看ebay上的VS 2003的副本嗎?

回答

0

在VS2008/2005中用C/C++編寫的非託管DLL應該可以很好地調用VS2003 C/C++項目中的代碼。這也可能是阻力最小的路徑。如果您的DLL引用了其他可能不適用於VS2003的DLL,請確保如果可以重新分發它們,或者以其他方式進行靜態鏈接。

託管的DLL也是可能的,但需要一點點glue code to bridge the managed/unmanaged gap。確保定位VS2003支持的.NET運行時版本(1.1)。

+0

嗨,感謝您的回覆, 我唯一的問題是,調用代碼是VS 2003 VC++。當前的代碼必須使用我的DLL來訪問我將用VC++編寫的幾個RS232函數。我能在VS 2005或2008中編譯一個VC++非託管DLL,它可以直接被VS 2003代碼訪問嗎? – John 2010-05-26 12:23:23

+0

是的。 DLL二進制格式現在已經很多年了(甚至幾十年了).DDL經常在創建它們的工具版本上工作。 – 2010-05-26 18:15:40