初学VC++,做了一个命令行工具。可以正常编译,但是在CMD下传递命令行参数时,却遇到了“内存不可read”的错误。
我怀疑是判断参数时指针使用不当的错误,但是不知道如何解决,请高手指正。#include "iostream.h"
#include "windows.h"int main(int argc, char *argv[])
{
if (argc==1)
{
cout<<"操作窗口。"<<endl<<endl;
cout<<argv[0]<<" [drive:][path][filename] [+H | -H] [+E | -E]"<<endl<<endl;
cout<<"  +   设置状态。"<<endl;
cout<<"  -   清除状态。"<<endl;
cout<<"  H   窗口隐藏状态。"<<endl;
cout<<"  E   窗口使能状态。"<<endl;
exit(1);
}  HWND hwd;
hwd=::FindWindow(0,argv[1]); if (hwd==0) //当没有发现窗口时退出
{
cout<<argv[1]<<" - 该窗口不存在"<<endl;
exit(1);
} for (int i=2;i<=argc;i++)
{
if(strcmp(argv[i],"+h")==0) 
{
::ShowWindow(hwd,SW_HIDE);
cout<<argv[1]<<" - 窗口已隐藏"<<endl;
}
if(strcmp(argv[i],"-h")==0) 
{
::ShowWindow(hwd,SW_SHOW);
cout<<argv[1]<<" - 窗口已显示"<<endl;
}
if(strcmp(argv[i],"+e")==0) 
{
::EnableWindow(hwd,0);
cout<<argv[1]<<" - 窗口已禁止"<<endl;
}
if(strcmp(argv[i],"-e")==0) 
{
::EnableWindow(hwd,4);
cout<<argv[1]<<" - 窗口已使能"<<endl;
}
}
}