`
hanyezhiyu8
  • 浏览: 153885 次
  • 性别: Icon_minigender_1
  • 来自: 沈阳
社区版块
存档分类
最新评论

VC中处理命令行参数:GetCommandLine()与m_lpCmdLine

 
阅读更多

對於VC程序无论是SDI、MDI还是基于Dialog的程序,主类都是继承自CWinApp,在CWinApp中,有命令行参数的成员变量 - m_lpCmdLine

m_lpCmdLine 是一个LPTSTR,也就是一个32位的字符串,也就是整个命令行参数(不带应用程序可执行文件的名字)。举例来说,如果应用程序是Hello.exe,那么运行用命令運行Hello world,此时的m_lpCmdLine就是world,得到了这个命令行参数。

 

MSDN:

 

CWinApp::m_lpCmdLine

Remarks

Corresponds to the lpCmdLine parameter passed by Windows to WinMain. Points to a null-terminated string that specifies the command line for the application. Use m_lpCmdLine to access any command-line arguments the user entered when the application was started. m_lpCmdLine is a public variable of type LPTSTR.

说明:
对应于Windows传递给WinMain的lpCmdLine参数。指向一个以null结尾的字符串,指定了应用程序的命令行。用m_lpCmdLine可以访问当应用程序启动时用户输入的命令行参数。m_lpCmdLine是LPSTR类型的公有变量。


Example 
 

 

BOOL CMyApp::InitInstance()
{
   // ...


   //通过判断第一个字符是不是字符串结尾标志来判断是否有命令行参数的输入
   if (m_lpCmdLine[0] == _T('\0'))      {
      // Create a new (empty) document.
      OnFileNew();
   }
   else
   {
      // Open a file passed as the first command line parameter.
      OpenDocumentFile(m_lpCmdLine);
   }
  
   // ...
}

  

而對於::GetCommandLine():

主进程中函数CreateProcess和ShellExcute传给子进程的命令行参数,在子进程中均可以::GetCommandLine()获取,但CWinApp::m_lpCmdLine仅可以获取ShellExcute传命令行参数.

 

 

 

 

參考與:

http://www.cnblogs.com/super119/archive/2011/04/10/2011331.html

http://blog.csdn.net/lala_achun/article/details/6119572

分享到:
评论

相关推荐

    让VC++ MFC支持命令行参数commandline

    VC++ MFC 支持 命令行参数 command line good

    mfc程序获得命令行参数

    mfc程序获得命令行参数,vc6.0实现 // 获取命令行 CString strCommandLine = "获得的命令行参数为:"; strCommandLine += GetCommandLine(); MessageBox(strCommandLine);

    VB命令行参数解析(CommandLineToArgvW)

    vbMain(argc As Long, argv() As String)——VB自己的类C"主"函数 http://blog.csdn.net/dahual/archive/2011/04/16/6327958.aspx

    VB处理命令行参数的演示代码

    内容索引:VB源码,字符处理,字符处理 VB处理命令行参数的演示代码,本示例在某个函数中用 Command 函数获得命令行参数,并将命令行参数以 Variant 类型之数组返回。  Function GetCommandLine(Optional MaxArgs)  ...

    delphi获取程序的启动参数GetCommandLine

    delphi获取程序的启动参数GetCommandLine

    CCmdLine命令行分析的类

    一个分析命令行参数的类,我修改了下.单件模式.支持ANSI UNICODE模式.

    mfc皮肤轻松换肤 告别复杂

    CString cmdline = GetCommandLine(); int nFind = cmdline.Find(SKINSPACE); if(nFind != -1) { cmdline.Delete(0,nFind + _tcslen(SKINSPACE)); if(cmdline.GetAt(cmdline.GetLength()-1) == _T('\"')) { ...

    课程设计信用卡授权

    课程设计信用卡授权,CWinApp theApp; using namespace std; int _tmain(int argc, TCHAR...AfxWinInit(::GetModuleHandle(NULL), NULL, ::GetCommandLine(), 0)) { // TODO: change error code to suit your needs

    简单债务管理(32位汇编)

    invoke GetCommandLine mov CommandLine,eax invoke WinMain, hInstance,NULL,CommandLine, SW_SHOWDEFAULT .endif invoke ExitProcess,eax WinMain proc hInst:HINSTANCE,hPrevInst:HINSTANCE,CmdLine:...

    GetCommandLineTest

    适用GetCommandLine的示例程序

    进程通信之三 父进程传参数与子进程返回值

    《进程通信之三 父进程传参数与子进程返回值》 http://blog.csdn.net/morewindows/article/details/8683830 配套程序。本篇介绍一个简单而又实用的进程通信方式——父进程向子进程传入参数并获取子进程返回值。这个...

    汇编语言代 码 风 格(Code style).chm

    为了分清变量的作用域,命名中对全局变量、局部变量和参数应该有所区别,所以我们需要对匈牙利表示法做一些补充,以适应Win32汇编的特殊情况,下面的补充方法是笔者提出的,读者可以参考使用: ● 全局变量的定义...

    操作系统实验实验进程管理

    实验二 进程管理   Windows所创建的每个进程都从调用CreateProcess() ...例如API函数GetModuleFileName() 和GetCommandLine() ,可以给出用在CreateProcess() 中的参数以启动应用程序。在创建应用程序时可使用的另一个

    API之网络函数---整理网络函数及功能

    GetMessagePos 取得消息队列中上一条消息处理完毕时的鼠标指针屏幕位置 GetMessageTime 取得消息队列中上一条消息处理完毕时的时间 PostMessage 将一条消息投递到指定窗口的消息队列 PostThreadMessage 将一条...

    GetCmdline取命令参数

    用于获取游戏窗口启动命令行参数 实现跳过登录器 直接进入游戏功能!

    操作系统课程设计—进程控制

    例如API函数GetModuleFileName() 和GetCommandLine() ,可以给出用在CreateProcess() 中的参数以启动应用程序。 用GetGuiResources() 来查看进程的GUI资源。此函数既可返回指定进程中的打开的GUI对象的数目,也可...

    易语言枚举隐藏的进程

    易语言枚举隐藏的进程源码,枚举隐藏的进程,进程信息,EnumPro,取公司名称,GetCommandLine,数值到时间,GetUser_WTS,DOS路径转换_,处理事件_,LoadLibrary,GetProcAddress,FreeLibrary,loadDll,GetActiveWindow,...

    易语言图标进程管理

    易语言图标进程管理源码,图标进程管理,取进程列表,EnumPro,GetUser_WTS,GetCommandLine,数值到时间,取公司名称,DOS路径转换_,处理事件_,干进程,取得ID,强力打开进程,取字节集指针,刷新进程列表,ImageList_Destroy,...

    useffmpeg.rar

    1.解决了ffmpeg录制视频不完整的问题。createprocess调用了进程,且使用管道重定向了输入,并通过管道向进程模拟键盘输入。...而且第二个参数,子进程可以使用getcommandline()解析。 3.使用的32位的ffpmeg.exe

Global site tag (gtag.js) - Google Analytics