2017-02-10 40 views
0

基本上,我有一個構建DLL(VST音頻插件)的Visual Studio項目。在過去爲我設置了這種類型的項目場景的情況下,我將能夠構建,運行和調試插件。 Visual Studio會自動啓動我用來託管插件的任何程序。我正在嘗試在當前項目中實現同樣的效果,但我不知道如何設置它。目前,當我在Visual Studio中構建並運行我的DLL時,出現錯誤「無法啓動程序」。該DLL仍在構建中,我仍然可以運行它,但是我無法從Visual Studio中調試它,因爲我不知道在項目設置中需要做什麼才能做到這一點。我怎樣才能做到這一點?如何設置Visual Studio來調試DLL(「無法啓動程序錯誤」)

更多信息:

我所知道的是,在這成功地工作,也有到Visual Studio下的字段項目設置標有「預生成事件」和「生成後做了一些修改項目事件',所以我想要做的就是編輯這些以某種方式告訴Visual Studio以下內容:「嘿,在你嘗試運行和調試這個DLL之前,你必須啓動另一個程序(我的程序叫做Max.exe ),然後你必須等到該程序加載DLL。然後你可以調試!不要成爲一個愚蠢的計算機,並試圖在Max.exe甚至加載之前進行調試......「

什麼我不知道:其他一切。這實際上就是我所知道的關於我想要做的事情,而不是用英語與電腦交談的豐富多彩的嘗試。

目前,當我在Visual Studio中構建並運行我的DLL時,出現錯誤「無法啓動程序」。這並不令人驚訝,因爲該項目對我想用來測試DLL的環境一無所知,但問題是我不知道Visual Studio需要知道什麼。我對編程知之甚少,無法理解我正在嘗試做什麼的含義。是的,我確實提到了那些標記爲預構建和後構建的領域,因爲我記得它們很重要,但我不知道在這些領域中究竟寫什麼或如何寫,而且我也不知道是否會有更多的東西在此之前,我需要告訴Visual Studio。

Q.E.D我不確定事前和事後編譯事件是什麼,或者它們是如何工作的。我幾乎不瞭解定製VS項目設置的第一件事。我所知道的是如何編寫音頻處理代碼。我覺得需要這個免責聲明,因爲通常我的問題都會遇到憤怒的程序員,他們認爲我不做我自己的研究;他們沒有意識到我是一名跳過編程101的音頻工程師。是的,如何調試dll是我確定的一個常見問題,但對這些問題的回答往往假定我沒有的先決條件知識。

+1

轉到配置屬性 - >調試,並將「命令」更改爲將加載您的DLL的可執行文件。 – PaulMcKenzie

+0

您也可以附加到現有流程調試 - >附加到流程 – Unick

回答

1

您將需要編輯項目的調試屬性中的命令字段。在解決方案資源管理器中右鍵單擊您的項目,然後單擊屬性(通常是最後一項)。打開配置屬性下的調試頁面。命令字段指示調試時要啓動的可執行文件。

默認情況下,它包含引用您的項目編譯的最終二進制文件的$(TargetPath)。由於DLL不可執行,所以這對於DLL是無用的。將其更改爲您正在編寫插件的任何第三方應用程序的路徑。

通過此次更改,啓動調試將實際啓動第三方應用程序並將調試器附加到它。一旦應用程序加載您的插件,您將能夠正常進行調試。

1

對於Visual Studio,

  1. Solution Explorer,右鍵單擊項目並選擇Properties
  2. Properties中,選擇Configuration Properties -> Debugging
  3. 對於Command,請輸入將加載您的DLL的可執行文件的完整路徑。相應地填寫Command ArgumentsWorking Directory

此外,您需要確保可執行文件實際加載您正在構建的DLL。一個很大的錯誤是啓動它們的可執行文件,而沒有意識到可執行文件正在加載他們正在嘗試調試的另一個DLL版本。這可能是由於Windows搜索使用DLL搜索邏輯(exe目錄,路徑等)找到的第一個DLL所致。

相關問題