|
Change this:
bool hResult=WriteFile(hFile,&startstring,(amit+1)*sizeof(string),&iBytesWritten,NULL);
to this:
bool hResult = WriteFile(hFile, startstring.c_str(), startstring.length(), &iBytesWritten, NULL);
There are other problems. For example, why use a BYTE below?
BYTE amit =startstring.length();
std::string::size_type is the correct type to use here.
On a last note, why use WriteFile at all? Use std::ofstream instead. Avoid needlessly mixing the low-level (WriteFile ) with the high-level (std::string ).
Steve
|
|
|
|
|
Thanks ,
i had suddenly strike in my mind, when you just write low level.
it means ,
Basically WriteFile/ReadFile use for operation on port coming data.like data coming from COM1 or from the other device or resource. is it?
or if i am wrong then please explain me the difference.
i have changed the code following now its working.
<br />
<br />
startstring="<filelist>"+startstring+"</filelist>";<br />
std::ofstream out;<br />
out.open("D:\\Encoder_user_siteid.xml", ios::out);<br />
out<<startstring.c_str();<br />
out.close();<br />
<br />
Amit
|
|
|
|
|
amitmistry_petlad wrote: Basically WriteFile/ReadFile use for operation on port coming data.like data coming from COM1 or from the other device or resource. is it?
or if i am wrong then please explain me the difference.
Those two functions can be used for many things, COM ports included.
"Approved Workmen Are Not Ashamed" - 2 Timothy 2:15
"Judge not by the eye but by the heart." - Native American Proverb
|
|
|
|
|
then what's the difference?
|
|
|
|
|
amitmistry_petlad wrote: then what's the difference?
Between what?
"Approved Workmen Are Not Ashamed" - 2 Timothy 2:15
"Judge not by the eye but by the heart." - Native American Proverb
|
|
|
|
|
ifstream/ReadFile
ofstream/WriteFile
here is second question .
after complete reading of file how can i destroy/delete the file .
e.g.
in.open("anyfile.xml", ios::in);
char str[2000];
string outstring;
if(is_open())
{
while(in >> str)
outstring+=str;
}
in.close();
Now , how can i delete "anyfile.xml".
Amit
|
|
|
|
|
amitmistry_petlad wrote: ifstream/ReadFile
ofstream/WriteFile
One is STL while the other is Win32. That's a big difference.
amitmistry_petlad wrote: Now , how can i delete "anyfile.xml".
By using DeleteFile() .
"Approved Workmen Are Not Ashamed" - 2 Timothy 2:15
"Judge not by the eye but by the heart." - Native American Proverb
|
|
|
|
|
amitmistry_petlad wrote: out<<startstring.c_str();< blockquote="">
The c_str() is not needed here and should not be used. c_str() is for interoperability with lower level code. Try just this:
out << startstring;
Steve
|
|
|
|
|
can you elborate interoperability with lower level code where to use c_str()(means constant string?).
|
|
|
|
|
Most new code should be written using std::string or std::wstring . The standard library knows about std::string and can handle them natively. Still, you may have old code that only knows about const char* s or const wchar_t* s. That's what c_str() is for: it conjures up a const char* (or a const wchar_t* for a std::wstring ) for use with such code. It would be preferable to write overloads that accept std::string s (or std::wstring s).
Steve
|
|
|
|
|
I have to ask two questions.
first is presonal,since how many years you passed in this line?
second,
i am reading a file ,and put that values in the listview for that the code is following.
it must print the value in the listview but it cannot display ,
is there anything missed?
<code>
in.open((PATH.c_str()), ios::in);
char str[2000];
string outstring;
bool onoff=in.is_open();
if(onoff)
{
while(in >> str)
outstring+=str;
char *token;
char *tok = strtok_s((char*)outstring.c_str(),"<>",&token);
while(tok)
{
if(tok == NULL)
break;
else
{
string tmp = tok;
// Check for the <Profile> Node.
if(tmp.find("type") != -1)
{
//Get the profile Name and store in the vector;
{
size_t pos1 = tmp.find_first_of("=");
if(pos1 != -1)
{
string tmpType = tmp.substr(pos1 + 2); //value of tmpProName would be: profileName" ID="ENCRYPTEDID">
size_t pos2 = tmpType.find_first_of("\"");
if(pos2 != -1)
{
string inputtype = tmpType.substr(0,pos2);
if(inputtype=="dir")
{
if(tmp.find("order") != -1)
{
size_t pos1 = tmp.find_last_of("=");
string tmporder = tmp.substr(pos1 + 2);
size_t pos2 = tmporder.find_last_of("\"");
string inputorder = tmporder.substr(0,pos2);
int i=atoi(inputorder.c_str());
//SendMessage(hList,LVM_TEXTMESSAGE,
tok = strtok_s(NULL,"<>",&token);
tmp=tok;
if(tmp.find("path") != -1)
{
tok = strtok_s(NULL,"<>",&token);
WCHAR* DirPath=util.ConvertStringToWCHAR(tok);
LvItem.pszText=(LPWSTR)DirPath;
SendMessage(hList,LVM_SETITEM,0,(LPARAM)&LvItem);
//i had also tried with
ListView_SetItemText(hList,i,i,(LPWSTR)&LvItem.pszText);
.
.
.
.
.
.
.
</code>
.xml file is below
----------------------------
<filelist><listitem type="dir" order="0"><path>D:\\</path></listitem></filelist>
|
|
|
|
|
amitmistry_petlad wrote: first is presonal,since how many years you passed in this line?
I'm sorry but I don't understand the question. If you're asking how long I’ve been programming the answer is since I was a kid.
amitmistry_petlad wrote: i am reading a file ,and put that values in the listview for that the code is following.
it must print the value in the listview but it cannot display ,
is there anything missed?
Does it work? To me it doesn't look like the most beautiful code in the world but if it does the job...
Steve
|
|
|
|
|
no, thats why i ask you .its not working .
|
|
|
|
|
If I was doing it I'd use a SAX2 parser to do the job.
Steve
|
|
|
|
|
|
fatal error C1001: INTERNAL COMPILER ERROR - I started browsing and came across this[^].
This article was previously published under Q195738<br />
SYMPTOMS<br />
When template classes or template class header files are included in a precompiled header file, the compiler may generate the following error for files that use the precompiled header:<br />
fatal error C1001: INTERNAL COMPILER ERROR<br />
(compiler file 'msc1.cpp', line 1786)<br />
-or-<br />
fatal error C1001: INTERNAL COMPILER ERROR<br />
(compiler file 'msc1.cpp', line 1188)<br />
This error occurs only on machines with the Windows 95 or Windows 98 operating system.
My question is, how do you "include a precompiled header file" from Visual Studio? We're using Visual Studio 6.
Thanks
Norman Fung
|
|
|
|
|
I think it's just bad wording, they mean when you do those things in the header file that is used to generate the PCH file. Usually that is stdafx.h
|
|
|
|
|
I've have similar problems when trying to include some Boost headers in the precompiled header (MSVC6). I found no solution other than not to precompile the headers in question. MSVC6 is getting really long in the tooth.
Steve
|
|
|
|
|
Is it possible, in VS2005, to view my apps main window while VS is halted at a breakpoint? IE, I want to be able to switch between the two windows while execution has halted.
If the answer is no ( which I guess ), can this be easily configured using dual monitors?
|
|
|
|
|
As long as you can position your app's window away from VS' window it should work. Since
the app's threads are halted there's no way for repaints.
Mark
|
|
|
|
|
Mark Salsbery wrote: Since
the app's threads are halted there's no way for repaints.
I figured this was the case, but in Vista, hovering the mouse over the taskbar button produces a small preview screen for that window. So I was kinda hoping there would be a similar feature, or even 3rd party tool, to do something similar only fullsize.
|
|
|
|
|
Hello,
I would like to make a simple DVD Player using Wins API. I was wondering if anyone can point me to a book or an online tutorial?
Thanx so much in advance.
Khoramdin
|
|
|
|
|
|
There's no "simple" APIs but DirectShow can make it realatively simple.
DVD Applications[^]
To use DirectShow you'll need to supply your own MPEG-2 decoder filter - there's some available
free on the net.
Mark
|
|
|
|
|