Win32控制台应用程序怎样使用MFC中的CFile类?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Win32控制台应用程序怎样使用MFC中的CFile类?相关的知识,希望对你有一定的参考价值。

参考技术A 非MFC工程使用MFC库时,可参考以下步骤
1、工程设置中,将MFC的使用由原来的“使用标准windows库”改为“在共享DLL中使用MFC”(VC71)
如果是英文版,相关选项是:
Microsoft
Foundation
Classes:
Use
MFC
in
a
shared
dll,
no
using
MFC(VC6)
2、头文件包含
不同的MFC类需包含的头文件是不一样的。
常用的类,如Cstring,
Cedit
等,包含afxwin.h就可以了
使用CFile类,则包含afx.h
如果不清楚包含什么头文件的话,可以同msdn进行查询,msdn中,对于MFC类的介绍中,都会给出相应的header
file
requirement.
3、#include
语句一定要写在首行
另外还要注意的是,如果#include语句是在一个头文件里,那么对应头文件的包含也要写在首行。示例如下:
=============
test.h文件的内容如下:
#include
<afxwin.h>
//保证该语句在首行
test.cpp的文件内容如下:
#include
“test.h”
//同样也要保证该语句在首行
=============
如果要用CFile
就#include
<afx.h>

在mfc下怎么调用一个win32控制台?并且自动向该控制台输入一段信息?

用WinExec()函数。
详细说明见
http://baike.baidu.com/view/1286882.htm
例如调用系统的notepad.exe程序打开C:\\test.txt文件
WinExec("notepad.exe C:\\test.txt", SW_SHOW );
第一个字符串参数里面要调用的程序和变量用空格分隔追问

可以打开控制台了,但是我想打开控制台的同时自动输入“d://text"并回车,怎么办?

追答

打开控制台后就不能再自动往控制台输入信息了,要输入的只能通过WinExec的第一参数的字符串里面输入,你可以有多个参数,通过控制台程序Main()函数的argv变量访问

追问

不行啊 我输入WinExec("某某.exe d://text",SW_SHOW);
虽然那个exe调用出来了
但是并没有接收"d://text"这个参数
我的控制台文件时这么写的:
int main(int argc, char* argv[])

argv显示依然是某某.exe文件的路径啊?why?

参考技术A int nRetCode = 0;

// initialize MFC and print and error on failure
if (!AfxWinInit(::GetModuleHandle(NULL), NULL, ::GetCommandLine(), 0))

// TODO: change error code to suit your needs
cerr << _T("Fatal Error: MFC initialization failed") << endl;
nRetCode = 1;

else

// TODO: code your application's behavior here.
CString strHello;
strHello.LoadString(IDS_HELLO);
cout << (LPCTSTR)strHello << endl;
参考技术B 用system 加cmd命令
例如 system("test.exe name pass");

以上是关于Win32控制台应用程序怎样使用MFC中的CFile类?的主要内容,如果未能解决你的问题,请参考以下文章

从 Win32 控制台应用程序驱动 MFC 应用程序

vc,mfc,api,windows编程,win32(sdk),gui学习的顺序是怎样的,本人迷茫中!!

如何在 Visual C++ 2008 中将 MFC 应用程序项目添加到 Win32 应用程序项目

VS2008新建MFC程序时提示:当前页面的脚本发送错误 不是有效的Win32应用程序的解决办法

WTL强制资源从非mfc应用程序中的dll加载的方式? (我们使用的是 WTL/ATL,不是直接的 win32)

Qt 中的 Win32 API