- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个小的 win32 程序,它使用给定的 lpCmdLine
调用 CommandLineToArgvW
int APIENTRY _tWinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPTSTR lpCmdLine,
int nCmdShow)
{
(void)hInstance;
(void)hPrevInstance;
(void)nCmdShow;
int argc;
LPTSTR* argv = CommandLineToArgvW(lpCmdLine, &argc);
MessageBoxW(0, lpCmdLine, TEXT("lpCmdLine"), MB_OK );
for(int i=0; i<argc;++i){
MessageBoxW(0, argv[i], TEXT("argv"), MB_OK );
}
return 0;
}
我观察到的奇怪的事情是:
lpCmdLine
是空字符串,CommandLineToArgvW
返回 1 个参数 - 可执行路径。CommandLineToArgvW
返回准确数量的参数,没有可执行文件我找不到这种奇怪行为的记录。
我错过了什么?我是否以意外的方式使用了该命令?
最佳答案
根据 CommandLineToArgvW()
:
lpCmdLine
Type:
LPCWSTR
Pointer to a null-terminated Unicode string that contains the full command line. If this parameter is an empty string the function returns the path to the current executable file.
这意味着 CommandLineToArgvW()
仅当 lpCmdLine
参数为 null 或如果它显式包含可执行文件名称时才返回调用可执行文件名称.
请注意,CommandLineToArgvW()
需要完整的命令行。但是,根据 WinMain()
:
lpCmdLine
Type:
LPSTR
The command line for the application, excluding the program name. To retrieve the entire command line, use the
GetCommandLine
function.
因此,当您执行不带参数的程序时,WinMain
的lpCmdLine
参数为空,CommandLineToArgvW()
仅返回可执行文件姓名。但是,如果您使用参数执行程序,lpCmdLine
参数不是空的,但不包含可执行文件名称,因此 CommandLineToArgvW()
仅返回参数而没有可执行文件名称。
因此,您需要按照 WinMain()
文档中的说明进行操作,并使用 GetCommandLine()
而不是 lpCmdLine
。 CommandLineToArgvW()
文档中也说明了这一点:
The
GetCommandLineW
function can be used to get a command line string that is suitable for use as thelpCmdLine
parameter.
所以,改用这个:
LPWSTR* argv = CommandLineToArgvW(GetCommandLineW(), &argc);
关于windows - CommandLineToArgvW 怪癖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55544279/
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
我有一个小的 win32 程序,它使用给定的 lpCmdLine 调用 CommandLineToArgvW int APIENTRY _tWinMain(HINSTANCE hInstance,
我有一个小的 win32 程序,它使用给定的 lpCmdLine 调用 CommandLineToArgvW int APIENTRY _tWinMain(HINSTANCE hInstance,
这是我为演示古怪行为而创建的示例。我希望 bash 按原样传递引用的命令行参数。 john@doe:~/tmp$ cat script.sh #! /bin/bash set -o xtrace $1
假设我定义了一个什么都不做的简单函数:function fn() { } 现在,当我运行 toString(fn) 时,我得到“[object Object]”。当我运行 toString.call(
我们面临以下检查在 IE 中间歇性失败的问题: 伪代码: setCookie("name","value", "1d"); if(getCookie("name") === "value"){ r
我安装了 Apache 2.4 以发布一个使用 Tomcat 8 作为 AS 的 java (Struts2) 应用程序。 有一段时间效果很好,然后发生了一些“奇怪”的事情(委婉地说)。 通过输入“h
我有以下 if 语句: RG 为“100”,最大值为“85” if (RG == "" | RG > max) { //Doesn't execute } 既然
我一直在为一个客户开发一个网站,我即将结束它。但不幸的是,IE6 让人很头疼。 我的主要问题在这个页面上: http://seaport.bythepixel.com/#storage 列表项没有元素
在 IE7 模式下,我在 IE9 中收到以下错误。使用一个小的计数脚本: SCRIPT1028: Expected identifier, string or number 代码 $.fn.count
感谢这里的帮助,我得到了一个基于 poll() 的大部分可用的 socks4 代理。我正在使用这个程序来学习 C 和套接字编程。该程序仍然缺少对部分写入的 send() 检查,但我相当确定这不是当前问
我认识的某个人刚刚学习编程,偶然发现了这个,让我感到困惑: 请打开控制台 (Chrome/Firefox) 并输入:var name = ['what', 'the', '...?']; 我希望 na
在 SignOut() 调用重定向到“...login.aspx?ReturnUrl=%2fmydomainname%2flogout.aspx”之后使用此方法,这样用户就无法再次登录,因为成功登录会
我写了一个函数,一旦用户满足表单的下一个字段的要求,它就会自动将用户推进到该字段的要求。 我的问题是,在 iPad 中使用它时,它不会聚焦下一个字段,而是隐藏键盘。 我已经放弃尝试修复此问题,并正在寻
考虑以下 Javascript: var anchors = document.getElementsByTagName('a'); for(var i=0; i < anchors.length;
我试图了解 R 的非标准评估。这是一个示例怪癖: > f g h g(1:10) [1] "x" > h(1:10) [1] "1:10" 怎么来的? g 和 h 结果之间差异的确切来源是什么? 编辑
我是一个涉足 C 的新手,我的小项目是编写一个简单的 SOCKS4 代理。感谢这里的帮助,到目前为止我已经在我的例程中使用非阻塞套接字和 poll() 了。然而此时我似乎有两个问题: 如果传入 Soc
我有这个代码:https://plnkr.co/edit/t1GKaQOGnFxkTMK03Ynk var MIN = 60; var HR = MIN * 60; var tripDom
我将如何使用功能检测来确定是否需要在禁用的输入元素上模拟标题属性。 我知道 Firefox 声明并解释了该规范,以便它按预期工作,但我仍然希望显示工具提示。 我唯一能想到的就是直接使用浏览器检测。 可
我遇到了一些关于框架和 Internet Explorer 的非常奇怪的行为。 情况是这样的: 我在 www.webapp.com 上有我的网络应用程序 我有一个客户想要在他的网站上有一个登录框到我的
我是一名优秀的程序员,十分优秀!