VC调用COMMAND.COM的问题

milozy1983 2005-12-10 05:10:14
我知道WinExec和CreateProcess以及ShellExecute和ShellExecuteEx可以调用dos命令。主要我现在想用VC写的程序调用一个汇编写的程序,我发现这个程序(就比如下面给出的例子程序)必须要用command.com调用才可以正常运行。如果直接先调用cmd,然后再输入test.exe无法正常显示结果。只有先输入cmd后再输入command再输入test.exe才能正常显示结果。所以我需要用command.com来调用程序,但用上面几个函数直接调用command似乎都没作用。用程序调用system函数虽然可以正常完成2的功能, 但还是无法正常运行test.exe。所以我想问下如何解决在应用程序中调用command.com,通过它再调用masm5编译好的一些程序,我用的系统是win2000。

1.WinExec("cmd /c dir>c:\\cmda.txt", SW_SHOWMAXIMIZED);
2.WinExec("command /c dir>c:\\cmdb.txt", SW_SHOWMAXIMIZED);
3.// system("command /c dir>c:\\cmdb.txt");

//////////////////////////////////////////////////////////////
比如用command.com调用用masm5.0编译好的以下程序
test.exe
//////////////////////////////////////////////////////////////
TITLE HELLO,WORLD!

.MODEL SMALL
.STACK 300
.DATA
MSG DB 'HELLO, WORLD!', '$'

.CODE
MAIN PROC
MOV AX, @DATA
MOV DS, AX

LEA DX, MSG
MOV AH, 09H
INT 21H

MOV AH, 4CH
INT 21H
MAIN ENDP
END MAIN
TITLE HELLO,WORLD!

.MODEL SMALL
.STACK 300
.DATA
MSG DB 'HELLO, WORLD!', '$'

.CODE
MAIN PROC
MOV AX, @DATA
MOV DS, AX

LEA DX, MSG
MOV AH, 09H
INT 21H

MOV AH, 4CH
INT 21H
MAIN ENDP
END MAIN
...全文
96 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
milozy1983 2005-12-10
  • 打赏
  • 举报
回复
我已解决问题了,也散分了,呵呵。
milozy1983 2005-12-10
  • 打赏
  • 举报
回复
呵呵,win2000里还是有command.com的
菜牛 2005-12-10
  • 打赏
  • 举报
回复
Windows2000下面Command.com被CMD.com代替了。
milozy1983 2005-12-10
  • 打赏
  • 举报
回复
顺便说下, 我调用以下批处理也是无法显示HELLO,WORLD!,和用cmd直接调用是同样的结果。

@command /c test
@pause

16,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧