|
Hello..
I'm very new to visual C++ , I'm using a console application in Microsoft Visual Studio. NET..
I have a simple application where I want to get some parameters from the user, so i ask the user for it but when i type the answer and press enter on the keyboard the program just crashes (application has encountered a problem..send error to microsoft)
this is my code:
<br />
string host_name; <br />
<br />
printf("ENTER HOST NAME: "); <br />
<br />
<br />
scanf("%s",host_name); <br />
<br />
I have the following include files in stdafx.h file:
#include <iostream>
#include <string.h>
#include <tchar.h>
#include <windows.h>
#include <stdio.h>
#include <stdlib.h>
I tried declaring host_name as char* but it still crashes.. tries using gets() but doesnt as well..
I also tried doing it the C++ way as follows :
<br />
<br />
using namespace std; <br />
<br />
cout<< "ENTER HOST NAME: "; <br />
cin >>host_name; <br />
And that also crashes the program..
Please tell me where the problem is.. Thank you for ur help..
|
|
|
|
|
Declare char host_name[100] and this will take care of the input string.
If you are willing to use string , then be sure you have the following:
#include <iostream>
#include <stdlib.h>
#include <string>
using namespace std;
SkyWalker
-- modified at 10:37 Saturday 22nd October, 2005
|
|
|
|
|
Thanks i'll used char hostname[100] and its fine now..
Is there any way that when the user inputs a password through the console that i can not make it display or have *** display instead ??
|
|
|
|
|
Capture the input and display what you want.
The following could do the trick:
#include <iostream>
using namespace std;1
.
.
char c, thePassword[100];
int i=0;
while((c = getch()) != '\n')
{
thePassword[i]=c;
putch('*');
}
then use thePassword within your code
SkyWalker
-- modified at 12:00 Saturday 22nd October, 2005
|
|
|
|
|
Hi
I tried to use what u mentioned above but it just skips allowing the user to enter the password (no * are even displayed ) and just goes forward with the program..
this is how i'm using it:
<br />
<br />
printf("ENTER PASSWORD: ");<br />
<br />
char c, password[100];<br />
int i=0;<br />
<br />
while((c = getchar()) != '\n') <br />
{ <br />
password[i]=c; <br />
putchar('*');<br />
}<br />
Am i doing something wrong ? thanks for the help..
|
|
|
|
|
You should be writing a console application.
(and collateral to that, increase i, otherwise everything goes to password[0] )
SkyWalker
|
|
|
|
|
hello..
i'm sorry i dont quite understand what u mean (sorry i'm a novice at this) ?? sorry i noticed the mistake i had with the i.. but now i do this and still have the same problem..
<br />
<br />
while((c = getchar()) != '\n') <br />
{ <br />
password[i]=c; <br />
i++; <br />
putchar('*');<br />
}
|
|
|
|
|
|
I do have a console application.. not using MFC at all.. still no luck with it
|
|
|
|
|
aaah, sorry for the mistake, it's '\r' instead of '\n'.
Another thing is the use of getch() in order not to show the input character.
I tried this and it works :
int main(int argc, char* argv[])
{
printf("Input password (ENTER when ready):\n");
char password[100], c;
int i = 0;
c = -1;
while ( true )
{
c = getch();
if ( (c == '\r') || (i > 99) ) break;
putch('*');
password[i++] = c;
}
printf("\nPassword was entered.\n");
return 0;
}
SkyWalker
|
|
|
|
|
the string "afx" appears frequently in the code of mfc, what does it mean ?thank you
-------------------
I am trying to love c++
|
|
|
|
|
I guess you are refering to the afx_msg prefix.
Well, this keyword suggests the effect of the C++ virtual keyword by distinguishing the handlers from other member functions belonging to a CWnd class. Anyway, the afx_msg keyword resolves to white space after preprocessing.
SkyWalker
|
|
|
|
|
This is definitely a good trivia.
I think a good definition to that would be Application Frameworks (taken from frameworx or fx) -- this is different definition as opposed to DDX (dialog data exchange) or RFX (record field exchange). See afxver_.h file and read comments.
|
|
|
|
|
once upon a time, before MFC, there was an API called Application Framework X...
http://bbs.ee.ntu.edu.tw/boards/Programming/12/5.html[^]
In the beginning, Microsoft created a group called the AFX group
(stands for (A)pplication (F)ramework(X)). This group probably was
created to come out with an OWL competitor, since Borland C++ was
doing pretty well. They came up with a class library that presented a
very high abstraction from the Windows API, kind of like OWL does.
Legend has it that they then went and tried writing applications with
it for a couple of months and found that it was just too far removed
from the Windows API. They couldn't leverage any knowledge of
Windows and most of these guys were die hard Windows API hackers.
Legend also has it that at this point they scrapped the ENTIRE AFX
class library, and then worked on what would become MFC 1.0...
You can still see remnants of the AFX days, many of the source files
have afx prefixes and lots of macros in MFC today still have AFX in
them. I don't know when Microsoft changed the name of the group from
AFX to MFC, but it's now an MFC group. I've also heard rumors that
MFC was once called the MS Fulcrum Classes.
Cleek | Image Toolkits | Thumbnail maker
-- modified at 11:21 Saturday 22nd October, 2005
|
|
|
|
|
|
|
I got it, thank you all so much!
-------------------
I am trying to love c++
|
|
|
|
|
Hey!
The steps I have taken setting up GDI+ through VC++ so far.
1] Get the MS SDK.
2] Go to Tools->Options->Directories and add the "include" and "lib" directories of the MS SDK folder.
3] Go to Project->Settings->Link and add "gdiplus.lib" to the "Object/library modules" linked list field.
4] Use "#include gdiplus.h" in stdafx.h.
Total newb question:
I get compile errors after step 4]. I have not yet used any GDI-based objects in my code. The errors stem from just having the "#include gdiplus.h" in stdafx.h.
Some of the compile errors:
--------------------Configuration: FirstMenu - Win32 Debug--------------------
Compiling resources...
Compiling...
StdAfx.cpp
c:\program files\microsoft platform sdk\include\gdiplusimaging.h(67) : error C2501: 'MIDL_INTERFACE' : missing storage-class or type specifiers
c:\program files\microsoft platform sdk\include\gdiplusimaging.h(67) : error C2440: 'initializing' : cannot convert from 'char [37]' to 'int'
This conversion requires a reinterpret_cast, a C-style cast or function-style cast
c:\program files\microsoft platform sdk\include\gdiplusimaging.h(67) : error C2146: syntax error : missing ';' before identifier 'IImageBytes'
c:\program files\microsoft platform sdk\include\gdiplusimaging.h(67) : error C2501: 'IImageBytes' : missing storage-class or type specifiers
c:\program files\microsoft platform sdk\include\gdiplusimaging.h(67) : error C2239: unexpected token ':' following declaration of 'IImageBytes'
c:\program files\microsoft platform sdk\include\gdiplusimaging.h(67) : error C2059: syntax error : 'public'
c:\program files\microsoft platform sdk\include\gdiplusimaging.h(246) : error C2146: syntax error : missing ';' before identifier 'id'
c:\program files\microsoft platform sdk\include\gdiplusimaging.h(246) : error C2501: 'PROPID' : missing storage-class or type specifiers
c:\program files\microsoft platform sdk\include\gdiplusimaging.h(246) : error C2501: 'id' : missing storage-class or type specifiers
c:\program files\microsoft platform sdk\include\gdiplusheaders.h(384) : error C2629: unexpected 'class Gdiplus::Image ('
c:\program files\microsoft platform sdk\include\gdiplusheaders.h(384) : error C2238: unexpected token(s) preceding ';'
c:\program files\microsoft platform sdk\include\gdiplusheaders.h(395) : error C2061: syntax error : identifier 'IStream'
c:\program files\microsoft platform sdk\include\gdiplusheaders.h(405) : error C2061: syntax error : identifier 'IStream'
c:\program files\microsoft platform sdk\include\gdiplusheaders.h(443) : error C2061: syntax error : identifier 'PROPID'
...
The compiler stops at 100 errors. I figure I'm not including a needed library, but I'm lost. If anyone has any recommendations I'd be very grateful.
Thanks for your time.
j_penbert
|
|
|
|
|
Hi ,
How to debug the applications which uses the setEventHook for mouse for all the applications. All the mouse events that are generated while using the debugger itself will be noise.
I am a novice in the windows programming so please tolerate.
Regards,
Sunil Virmani
|
|
|
|
|
hi
how can i assign a data to a control created by ::PropertySheet function from a template?
i want then read the data by GetWindowLong(...,GWL_USERDATA);
if there is a way other than this please tell me
thx
|
|
|
|
|
HI!
I am working on an application, very simple one. it is an mfc dialog based application.
As, i have to deal with xml files through my application, so, i had written the statements:
#import "msxml3.dll"
using namespace MSXML2;
in the header file of my application.
The program is neither giving any error message nor any warnings. But, it is giving RunTime Error "The application has requested the runtime to terminate in an unusual way. Please contact the application`s support team for information."
What may be the cause?How to remove this problem.
I had not used abort anywhere in the program.
Thanx
|
|
|
|
|
Hello everybody,
I have problem , I want to edit a record in a database and don't understand how to do it.
Situation is like this :
Suppose I have Client.mdb database and a Table
Name Surname<br />
<br />
David Gates<br />
Nick Allen<br />
Rick Ellison
then I have next code :
...
CString Sql;
db.Open("Clients.mdb");
Sql = "SELECT * FROM Clients";
recset.Open(AFX_DAO_USE_DEFAULT_TYPE,Sql,NULL);
recset.Move(1);
recset.Close();
db.Close();
...
Could anyone provide me a little sample code about how to edit the second record?
thanks
"Success is the ability to go from one failure to another with no loss of enthusiasm." - W.Churchill
-- modified at 7:11 Saturday 22nd October, 2005
|
|
|
|
|
Hi
You can use SQL commands to edit your records
<br />
Sql = "UPDATE Clients SET Name='Bob' WHERE Name='Nick' AND Surname='Allen'";<br />
db.Excute(Sql);
or Create a class with Base CDAORecordSet & the uose code like
...<br />
recset.Move(1);<br />
recset.Edit();<br />
recset.m_Name = "Bob";<br />
recset.Update();<br />
recset.Close();<br />
...
to Create CDaoRecordeser Based Class U most add new MFC class & select CDaoRecordset as Base Class the IDE ask you to select your DB & table (VS 6.0)
in VS .Net 2003 you most add new "MFC ODBC Consumer" Class ....
Regards,
Iman Ghasrfakhri
|
|
|
|
|
thanks here also
"Success is the ability to go from one failure to another with no loss of enthusiasm." - W.Churchill
|
|
|
|
|
Hi
Use "DELETE FROM tableName WHERE fieldname1='value' AND field2='value2' OR ..."
Iman Ghasrfakhri
|
|
|
|