cmandan
asked on
__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
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
CW_USEDEFAULT, CW_USEDEFAULT, 310, 250, NULL, NULL, hInstance, NULL);
if (!hWnd)
{
return FALSE;
}
AfxMessageBox(__argv[1],MB
ShowWindow(hWnd, nCmdShow);
UpdateWindow(hWnd);
return TRUE;
}
I get __argv[0] correctly but do not get __argv[1]. Kindly suggest something here...
Thanks,
Chirag
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;
....
Does yours still behave oddly with
BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)
{
AfxMessageBox(__argv[0],MB
::MessageBox(0,__argv[1],"
HWND hWnd;
....
Another possibility is to check starting your app from a shortcut to make certain you are passing 1234 as a parameter.
ASKER
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
Thanks,
Chirag
ASKER
AfxMessageBox(__argv[0]);
AfxMessageBox(__argv[1]);
Output:
1st dialog box
"C:\test.exe"
2nd dialog box
blank
I checked Properties>debugging>Comma nd Line arguments and it is 123.
I would really appreciate your suggestions here ASAP..
Thanks,
Chirag
AfxMessageBox(__argv[1]);
Output:
1st dialog box
"C:\test.exe"
2nd dialog box
blank
I checked Properties>debugging>Comma
I would really appreciate your suggestions here ASAP..
Thanks,
Chirag
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.
Sorry, no further ideas. The code looks OK and functions in an earlier VC++ version.
Wondering if it wouldn't be a ansi/unicode problem. What happens if you replace __argv by __targv or __wargv ?
ASKER
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
--chirag
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
Great....got the explanation!! Thanks Andy, you get all the points...here you go!!
-Chirag
-Chirag
ASKER
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
CW_USEDEFAULT, CW_USEDEFAULT, 310, 250, NULL, NULL, hInstance, NULL);
if (!hWnd)
{
return FALSE;
}
AfxMessageBox(__argv[0],MB
::MessageBox(0,__argv[1],"
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