首页
社区
课程
招聘
怎么得到参数nCmdShow
发表于: 2008-12-14 03:19 5660

怎么得到参数nCmdShow

2008-12-14 03:19
5660
int WINAPI WinMain(
  HINSTANCE hInstance, 
  HINSTANCE hPrevInstance,
  LPSTR lpCmdLine, 
  int nCmdShow );

RT:GetModuleHandle(NULL)可以得到自身的HINSTANCE
本来是(还是应该是??)由系统传递的参数nCmdShow,用什么API函数可以得到呢??
(因为某种原因,我直接用ShowWindow(hwnd,nCmdShow);无法调用了)

???????

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 6075
活跃值: (2236)
能力值: (RANK:1060 )
在线值:
发帖
回帖
粉丝
2
[B]VOID GetStartupInfo(
  LPSTARTUPINFO[/B][I] [U][COLOR=#800080]lpStartupInfo[/COLOR][/U][/I]   // startup information
[B]);[/B]
[B]


[/B]
typedef struct _STARTUPINFO { 
    DWORD   [U][COLOR=#800080]cb[/COLOR][/U]; 
    LPTSTR  [U][COLOR=#800080]lpReserved[/COLOR][/U]; 
    LPTSTR  [U][COLOR=#800080]lpDesktop[/COLOR][/U]; 
    LPTSTR  [U][COLOR=#800080]lpTitle[/COLOR][/U]; 
    DWORD   [U][COLOR=#800080]dwX[/COLOR][/U]; 
    DWORD   [U][COLOR=#800080]dwY[/COLOR][/U]; 
    DWORD   [U][COLOR=#800080]dwXSize[/COLOR][/U]; 
    DWORD   [U][COLOR=#800080]dwYSize[/COLOR][/U]; 
    DWORD   [U][COLOR=#800080]dwXCountChars[/COLOR][/U]; 
    DWORD   [U][COLOR=#800080]dwYCountChars[/COLOR][/U]; 
    DWORD   [U][COLOR=#800080]dwFillAttribute[/COLOR][/U]; 
    DWORD   [U][COLOR=#800080]dwFlags[/COLOR][/U]; 
    WORD    [U][COLOR=#800080]wShowWindow[/COLOR][/U]; 
    WORD    [U][COLOR=#800080]cbReserved2[/COLOR][/U]; 
    LPBYTE  [U][COLOR=#800080]lpReserved2[/COLOR][/U]; 
    HANDLE  [U][COLOR=#800080]hStdInput[/COLOR][/U]; 
    HANDLE  [U][COLOR=#800080]hStdOutput[/COLOR][/U]; 
    HANDLE  [U][COLOR=#800080]hStdError[/COLOR][/U]; 
} STARTUPINFO, *LPSTARTUPINFO; 


[B]wShowWindow[/B] Ignored unless [B]dwFlags[/B] specifies STARTF_USESHOWWINDOW. The [B]wShowWindow[/B] member can be any of the SW_ constants defined in WINUSER.H. For GUI processes, [B]wShowWindow[/B] specifies the default value the first time [URL="javascript:hhobj_4.Click()"][B][U][COLOR=#0000ff]ShowWindow[/COLOR][/U][/B][/URL] is called. The [I]nCmdShow[/I] parameter of [B]ShowWindow[/B] is ignored. In subsequent calls to [B]ShowWindow[/B], the [B]wShowWindow[/B] member is used if the [I]nCmdShow[/I] parameter of [B]ShowWindow[/B] is set to SW_SHOWDEFAULT. 
2008-12-14 06:29
0
雪    币: 205
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
谢谢版主先,不过现在又遇到一件诡异滴事,我这样修改代码:
LPSTARTUPINFO lpStartupInfo;
...
GetStartupInfo(lpStartupInfo);
...
ShowWindow (hDialog, (int)lpStartupInfo->wShowWindow);
VC6编译通过,有一警告:local variable 'lpStartupInfo' 未初始化
然后程序只能在VC下点执行(!)运行,双击运行显示“0x00000038”内存不能写?
是我代码写错了还是怎么回事呢?

晕,换成这样就可以了:
STARTUPINFO StartupInfo;
GetStartupInfo(&StartupInfo);
ShowWindow (hDialog, StartupInfo.wShowWindow);

应该是指针滴问题吧?能指点下下?
2008-12-14 14:22
0
雪    币: 371
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
hyp
4
你要知道前面那lp的含义
2008-12-14 14:35
0
雪    币: 7651
活跃值: (523)
能力值: ( LV9,RANK:610 )
在线值:
发帖
回帖
粉丝
5
STARTUPINFO si;GetStartupInfo(&si);then si.nCmdShow is what you want~~
2008-12-14 18:57
0
游客
登录 | 注册 方可回帖
返回
//