Go Premium for a chance to win a PS4. Enter to Win

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 867
  • Last Modified:

__argv[1]

Hi All:

I am using vc++.NET and have "12345" as a command line argument. I am trying to access this argument using my program. InitInstance function is shown below.

Please

BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)
{
   HWND hWnd;

   hInst = hInstance; // Store instance handle in our global variable
      
   hWnd = CreateWindow(szWindowClass, szTitle, WS_OVERLAPPEDWINDOW,
   CW_USEDEFAULT, CW_USEDEFAULT, 310, 250, NULL, NULL, hInstance, NULL);

   if (!hWnd)
   {
      return FALSE;
   }

   AfxMessageBox(__argv[1],MB_OK);

   ShowWindow(hWnd, nCmdShow);
   UpdateWindow(hWnd);

   return TRUE;
}

I get __argv[0] correctly but do not get __argv[1]. Kindly suggest something here...

Thanks,
Chirag
0
cmandan
Asked:
cmandan
  • 5
  • 4
1 Solution
 
cmandanAuthor Commented:
Hello Experts:

I am able to display __argv[0] with the code below, but I get blank when I try to display __argv[1].......I am using vc++.NET

This is the code again,

BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)
{
   HWND hWnd;

   hInst = hInstance; // Store instance handle in our global variable
      
   hWnd = CreateWindow(szWindowClass, szTitle, WS_OVERLAPPEDWINDOW,
   CW_USEDEFAULT, CW_USEDEFAULT, 310, 250, NULL, NULL, hInstance, NULL);

   if (!hWnd)
   {
      return FALSE;
   }

   AfxMessageBox(__argv[0],MB_OK);
   ::MessageBox(0,__argv[1],"command1",MB_OK);

   ShowWindow(hWnd, nCmdShow);
   UpdateWindow(hWnd);

   return TRUE;
}

so I get argv[0] OK, but I get a blank dialog box for argv[1]....waiting for your kind suggestions..

Thanks,
Chirag
0
 
AndyAinscowCommented:
I have tried your code as the first line of an app.  I get the path of the exe as the first and then 1234 as the second message box.

Does yours still behave oddly with

BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)
{
  AfxMessageBox(__argv[0],MB_OK);
   ::MessageBox(0,__argv[1],"command1",MB_OK);

   HWND hWnd;
....
0
 
AndyAinscowCommented:
Another possibility is to check starting your app from a shortcut to make certain you are passing 1234 as a parameter.
0
Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
cmandanAuthor Commented:
Well, when i type the same code in vc++ 6.0, I get the value of __argv[1]. But I don't get it in vc++.NET.....pls guide. I know the code is right, but it could be the settings....

Thanks,
Chirag
0
 
cmandanAuthor Commented:
AfxMessageBox(__argv[0]);
AfxMessageBox(__argv[1]);

Output:
1st dialog box
"C:\test.exe"
2nd dialog box
blank

I checked Properties>debugging>Command Line arguments and it is 123.

I would really appreciate your suggestions here ASAP..

Thanks,
Chirag
0
 
AndyAinscowCommented:
Is this a new improved feature of VC.Net to improve productivity?
Sorry, no further ideas.  The code looks OK and functions in an earlier VC++ version.
0
 
_nn_Commented:
Wondering if it wouldn't be a ansi/unicode problem. What happens if you replace __argv by __targv or __wargv ?
0
 
cmandanAuthor Commented:
I found out this problem which is very strange....when I try to execute the code from the .exe file after double clicking on it, it  gives me a blank argv[1] value, but when I click on start to debug the file, it gives me the __argv[1] value correctly. In the earlier version of vc++ 6.0, this was not the case, but I don't know if there are some special settings required in this new version.

--chirag
0
 
AndyAinscowCommented:
when I try to execute the code from the .exe file after double clicking on it

If you double click on it it doesn't have any startup command line hence the behaviour qou experience.
You need a shortcut supplying the parameters.
0
 
cmandanAuthor Commented:
Great....got the explanation!! Thanks Andy, you get all the points...here you go!!

-Chirag
0

Featured Post

Free Tool: ZipGrep

ZipGrep is a utility that can list and search zip (.war, .ear, .jar, etc) archives for text patterns, without the need to extract the archive's contents.

One of a set of tools we're offering as a way to say thank you for being a part of the community.

  • 5
  • 4
Tackle projects and never again get stuck behind a technical roadblock.
Join Now