2013-03-04 50 views
1

我在Windows 7上使用Visual Studio 2010編寫C++。在我的程序中,我有一個包含我在程序中經常使用的一系列函數的.dll。最近,我在修改.dll時遇到了一些麻煩。無論何時我更改在DLL中定義的函數,程序構建並運行時,這些更改似乎都不起作用。也就是說,我相信每次成功構建(或重建)我的解決方案時,我的DLL都沒有正確更新。我的調試器似乎運行的代碼不同於我正在編譯的代碼

如果我嘗試在.cpp文件中的任何函數中設置斷點(從用戶代替DLL中隱藏的斷點),visual studio會告訴我代碼將不會執行,並且a斷點不能在那裏設置。不過,今天早些時候我可以在那裏設置一個斷點。

此外,我的一個功能打印「幀接收」到Visual Studio中的調試輸出。這仍然在發生,所以這個功能的某些版本仍然有效。所以我想讓它連續打印10次「Frame Received」,看看我的更改是否真正生效。奇怪的是,即使在構建和清理/重建之後,該程序仍然只寫入「幀接收」一次,就好像它忽略了我的更改。

我不確定是什麼導致了這一點,但正如我所說,它只是顯示我的.dll沒有被更新和/或Visual Studio使用舊版本的.dll而不是最新版本。無論哪種方式,我不知道如何解決這個問題。有任何想法嗎?

編輯:我忘了,更不用說更早,在調試時,我試圖踏入的,我不能把內部斷點的功能之一,而我與此錯誤消息打擊:

error

+0

這太奇怪了,那好像你錯過了一些非常基本的東西。重建後,該dll文件是否有適當的創建日期?即現在?你確定這是你的應用程序正在使用的文件嗎?你可能在PATH的某個地方有相同的DLL。檢查它與依賴沃克。 – Mikhail 2013-03-04 21:23:24

+0

舊的VimbaBridgeAPI.dll .dlls搜索路徑中的某處? SYSTEM32等 – user928204 2013-03-04 21:25:09

+0

好了之後重建解決方案,並檢查創建日期和時間,它說1小時前。所以這意味着它沒有被正確更新,我猜。我如何強制它再次更新dll? – xcdemon05 2013-03-04 21:27:48

回答

2

大概,build的輸出會進入其他目錄。 - 檢查你的outdir設置。