2016-02-27 78 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