2012-08-06 33 views
0

我想實現一個Windows窗體應用程序使用Visual Studio C++鏈接到一個CUDA項目。使用Visual Studio C++的Windows窗體應用程序,鏈接到一個CUDA項目

  1. 我創建了WFA。

  2. 然後,我嘗試通過瀏覽項目屬性的添加引用部分中的.dll動態鏈接應用程序到CUDA項目。但它表示「無法添加...它不是.NET程序集或註冊的ActiveX控件」。

  3. 因此,我將CUDA項目的.obj添加到鏈接器 - >輸入 - >附加依賴項部分,並使用在WFA項目中運行CUDA所需的.lib文件。然後我得到了「致命錯誤LNK1313:檢測到純模塊;無法與ijw/native模塊鏈接」錯誤。

  4. 我將Common Language Runtime Support從「Pure MSIL Common Language ...」改爲「Common Language ...」,但是msvcrtd.lib和libcmt.lib有衝突。當CUDA項目的.obj文件從「附加相關性」中刪除時,此錯誤消失。

由於CUDA項目的運行時間是MT,WFA項目是MT dll,因此會發生此錯誤。我將WFA的運行時間更改爲MT,但隨後出現「錯誤D8016:'/ MTd'和'/ clr'命令行選項不兼容」錯誤。

由於「系統::」被識別需要/ clr,所以我無法擺脫/ clr選項。

你有任何建議使用Windows C++創建一個Windows窗體應用程序,它以最簡單的方式鏈接到cuda項目嗎?或者如果有更簡單的方法,我會很高興聽到他們。

+2

您的問題難以置信地以目前的形式閱讀。爲了大家的眼睛,你能把它分成幾段嗎? – talonmies 2012-08-06 12:18:13

回答

1

我認爲你的WFA應用程序是一個託管的使用CLR的C++ .NET應用程序。您試圖將非託管CUDA DLL包含爲CLR程序集或COM對象。因此VS在說/ MT(使用非託管多線程C運行時)和/ CLR不兼容。

因此,您需要將CUDA DLL包裝在CLR對象中,或者在項目中使用.NET Binding for CUDA。嘗試下載CUDA.NET並將其納入您的項目中作爲參考。

http://www.hoopoe-cloud.com/Solutions/CUDA.NET/

相關問題