2016-02-27 41 views
0

我試圖使這個控制檯程序,它具有調整控制檯本身把我想在它的文本,所以我用這個方法來調整它的大小:調整大小的Windows控制檯和MFC靜態庫

#include <windows.h> 
using namespace std; 
int main() 
{ 
HWND console = GetConsoleWindow(); 
RECT r; 
GetWindowRect(console, &r); //stores the console's current dimensions 

MoveWindow(console, r.left, r.top, 775, 575, TRUE); // 775 width, 575 height 

} 

它與我的其他代碼完美配合。唯一的問題是,當我將我的程序發送給朋友時,他的PC中缺少「MSVCP140.dll」。 所以要解決這個問題,我總是做的是將Visual Studio的項目設置從「使用標準Windows庫」更改爲「使用靜態MFC庫」,這樣就不會要求「MSVCP140.dll」。這裏唯一的問題是,當我將它設置爲使用靜態MFC庫,它拋出這個錯誤:

Unresolved external symbol _imp_GetWindowRect 
Unresolved external symbol _imp_MoveWindow 

如果我刪除控制檯上面resize命令,它會工作沒有問題。所以問題基本上是,如果我使用控制檯調整大小,我必須使用標準庫,如果我不使用MFC庫。但我需要使用Console調整大小與MFC,所以它不會要求在其他計算機上打開.dll。

我在這裏瘋了。任何想法/想法?

+0

請問您的應用程序中使用MFC或只是本地的Win32 API ? – MerickOWA

+0

我甚至不知道。來源字面上#include #include #include 和一些系統(「暫停」),一些cout,getlines,這就是它(和控制檯調整大小thingy)。我只是想讓它不要求MSVCP140.dll。而已。 (順便說一句,我不知道這是否回答你的問題,但我是新來的,希望它有幫助。 – Aaron

+0

然後不,你的應用程序不包括一個GUI是什麼MFC是什麼。請參閱我的答案。 – MerickOWA

回答

2

我相信你正在改變錯誤的設置。如果您不使用MFC,請在「使用標準Windows庫」中保留「使用MFC」選項。

相反,看在「C/C++ /代碼生成」,改變從「多線程DLL」中的「運行時庫」選項設置爲「多線程」

同樣,在調試模式下,你會從「多線程調試DLL」開關只是「多線程調試」

你可以讓你的朋友下載&安裝Visual C++ Redistributable for Visual Studio 2015

+0

嗨,我剛剛檢查了代碼生成選項,它已經在「多線程「,如果我離開」使用標準Windows庫「它仍然會問人MSVCP140.dll:/ – Aaron

+0

@Aaron您是否在發佈和調試模式切換它?不知道爲什麼切換運行時庫wouldn沒有工作我會仔細檢查構建輸出目錄,以確保你得到正確的exe,並使用[dependency walker](http://dependencywalker.com)程序來驗證它是否有效 – MerickOWA

+0

你是對的先生,它現在工作,現在我雙重檢查d。非常感謝你。 – Aaron