|
when i am using this code...error..how to come out with this error
strcpy(m_TQuote.m_ID,SessionId);
error C2664: 'strcpy' : cannot convert parameter 1 from 'long' to 'char *'
Conversion from integral type to pointer type requires reinterpret_cast, C-style cast or function-style cast
|
|
|
|
|
abrakadbra wrote: strcpy(m_TQuote.m_ID,SessionId);
strcpy expects both parameters to be string and it copies the second parameter into the first parameter.
You will have to convert the first parameter to string before using it with strcpy . Use ltoa or itoa for converting numeric values to string.
|
|
|
|
|
sorry for silly question,i am new to prgraming,how to use this function
|
|
|
|
|
abrakadbra wrote: sorry for silly question,i am new to prgraming,how to use this function
No Problem...
Here[^] is an example on ltoa .
Here[^] is an example on strcpy .
Take a look at sprintf too. Which will be helpful too.
|
|
|
|
|
Hi,
I would like to program a serial port in my VC++ program. All I want to do is whenever I had a mouse click event, I would like to send a positive trigger (sort of a TTL) signal over the com port (so that I can analyse the signal over an oscilloscope for furthur analysis). Is there any simple way of doing this??
thanks,
-Pavan
|
|
|
|
|
1)Open Port
2)Write Port
3)Close Port
on the button event.
have a look
http://www.ontrak.net/mfc.htm
Appu..
"If you judge people, you have no time to love them."
|
|
|
|
|
|
Thanks for the link... that library seems great to work with Serial communication. But how can I send data over a single pin on a com port?? Like say, I want to send a 5V signal over pin1 of a serial port on an event in my program, how can I do that?? My program is not an MFC based program, its a pure C++ program written in VC++, to say its actually a DLL I use to interact with from matlab.
-Pavan
|
|
|
|
|
Hi... I managed to use the library provided over here. Thanks for that great library...
-Pavan
|
|
|
|
|
Hi All:
I create another process from the main process and then hide the main process window, but the newly created process window doesn't have the focus(not on the top). I've tried the SetForegroundWindow and AttachThreadInput but to no avail. Is there any other way? I work on XP
Thanks
|
|
|
|
|
LiYS wrote: I create another process from the main process and then hide the main process window, but the newly created process window doesn't have the focus(not on the top). I've tried the SetForegroundWindow and AttachThreadInput but to no avail. Is there any other way? I work on XP
If you have the handle to the window, then you can use SetFocus ..
|
|
|
|
|
I've been racking my brain all day with this... Just can't get things going..
I need to be able to read and write variables to a file..
I've got one example to work.. But the reading I get back are box characters...
This prolly has to do with the fact that my progam is in UNICODE mode.
I'm just trying to read and write in a CSV file. (comma seperated values).
But anything that is capable of reading and writing variables to a file would be great..
Example:
// Open the text file we want
CFile cfFile (L"C:\\TextFile.txt", CFile::modeNoTruncate | CFile::modeRead);
CArchive ar (&cfFile, CArchive::load); // Load its contents into a CArchive
// Initialise the variable which holds each line's contents
CString strLine = L"";
if(!ar.ReadString(strLine))
// Read the first line of the CArchive into the variable
return; // Failed, so quit out
do // Repeat while there are lines in the file left to process
{
if(strLine.GetLength() == 0) // If the line is empty, skip it
continue;
CString strText = strLine; // A line of the file
// Initialise the variables that will hold the values
CString strItemName = L"";
CString strPicPath = L"";
CString strSoundPath = L"";
// Extract the first value, and place it in the strItemName variable
AfxExtractSubString(strItemName, strText, 0, ',');
// Extract the second value, and place it in the strPicPath variable
AfxExtractSubString(strPicPath, strText, 1, ',');
// Extract the third value, and place it in the strSoundPath variable
AfxExtractSubString(strSoundPath, strText, 2, ',');
// Do something with these values in the variables
}while(ar.ReadString(strLine));
If I display strItemName, strPicPath or strSoundPath after reading the file... I get blocks..
any ideas?
-- modified at 22:34 Tuesday 31st October, 2006
|
|
|
|
|
After this line
CString strText = strLine; // A line of the file
does strText have a line of comma separated strings?
Don't know if it's necessary but try making your comma constants L','
AfxExtractSubString(strItemName, strText, 0, L',');
|
|
|
|
|
hmmmm.. still dosn't display the character correctly..
Their must be a simple way to read and write int variables to a file.. I don't even really need strings.
|
|
|
|
|
Did you write the ints as ints or as string representations of the ints??
If you don't need to read the file in notepad or the file is not imported to other applications
then you can write binary ints instead of comma-separated strings.
|
|
|
|
|
ok... sounds good..
Just as long as the program can write to the file and read it back to itself.
What should I look up for binary reading and writing?
|
|
|
|
|
For int values use CArchive::Read() and CArchive::Write() or the overloaded extraction/insertion
operators, something like
// to write an int
int IntValue = ...;
ar.Write(&IntValue, sizeof(int)); // or "ar << IntValue;"
// to read an int
int IntValue;
ar.Read(&IntValue, sizeof(int)); // or "ar >> IntValue;"
|
|
|
|
|
Ok... I know i'm real close.. lol
CFile cfFile (L"C:\\TextFile.txt", CFile::modeNoTruncate | CFile::modeReadWrite );
char buf[512];
int variable = 12;
int i;
CArchive ar( &cfFile, CArchive::store, 512, buf );
ar.Write(&variable, sizeof(int));
ar.Close();
CArchive ar2( &cfFile, CArchive::load, 512, buf );
i = ar2.Read(&variable, sizeof(int));
ar2.Close();
temp.Format((L"%d"), i);
AfxMessageBox(temp); //dispalys 0... need 12
|
|
|
|
|
Nevermind... I got it
Thank you very very much Mark... very much appreciated
CFile cfFile (L"C:\\TextFile.txt", CFile::modeNoTruncate | CFile::modeReadWrite );
char buf[512];
Learning = 12;
cfFile.SeekToBegin();
CArchive ar( &cfFile, CArchive::store, 512, buf );
ar.Write(&Learning, sizeof(int));
ar.Close();
cfFile.SeekToBegin();
CArchive ar2( &cfFile, CArchive::load, 512, buf );
ar2.Read(&i, sizeof(int));
ar2.Close();
temp.Format((L"%d"), i);
AfxMessageBox(temp);
|
|
|
|
|
The file pointer, yes
Take care,
Mark
|
|
|
|
|
So now i come to implement a bit of the File I/O but there's a problem, the program just dies.
Im trying to open a file dflt1, or dflt2, dflt3 dflt4, or maybe tech1, tech2, tech3, tech4... i think you get the idea
Anyways, like i said, it just doesn't work. So i changed the filename to 'reallylongword' and it works fine.
Is there a problem with opening files with short names or something?
|
|
|
|
|
The Undefeated wrote: Is there a problem with opening files with short names...
No.
The Undefeated wrote: ...or something?
Possibly.
Have you considered showing the code snippet that does not work as expected?
"Approved Workmen Are Not Ashamed" - 2 Timothy 2:15
"Judge not by the eye but by the heart." - Native American Proverb
|
|
|
|
|
Err, k.
ifstream ReadFile ("M:\\dflt1");<br />
char word[4];<br />
ReadFile.getline(word, 5);<br />
<br />
cout << "Mmm" << word << endl;<br />
ReadFile.close();
That doesn't work
ifstream ReadFile ("M:\\biglongword");<br />
char word[4];<br />
ReadFile.getline(word, 5);<br />
<br />
cout << "Mmm" << word << endl;<br />
ReadFile.close();
That does
Note that both files have exactly the same content
And you said does not work as expected, it just don't work.
|
|
|
|
|
The Undefeated wrote: char word[4];
ReadFile.getline(word, 5);
Are you expecting this to work (i.e., cramming 5 bytes into a 4-byte spot)?
"Approved Workmen Are Not Ashamed" - 2 Timothy 2:15
"Judge not by the eye but by the heart." - Native American Proverb
|
|
|
|
|
WTF? Its an access violation at ReadFile.close()
Am i missing something here? My brain perhaps? Or is this as wierd as i think it is?
Man, i like C# much better - it works
|
|
|
|