|
Trupti Mehta wrote: I removed the template <> SerializeElements() from the code & ran the application. Its still running and giving the results as we expected,
That won't work well with CStrings in the OperatorDetails class, since without a SerializeElements() override for the
CMap, the default serialization of the map's objects is binary bits - not good when pointers are involved
I'm not sure why the template function causes the link to fail.
You should be able to put the SerializeElements() template in ONE cpp file and it should work. I tested with it
in the same CPP file that does the serialization/unserialization of the CMap (just above my sample WriteArchive()
and ReadArchive functions).
Mark
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
Mark, I also have added in the same file (DbOperations.cpp) just copied your code same way. All serialization.desera & template overrride are in the same file. I tried removing template<> & AFXAPI, but still no success.
You were very correct that with pointers of Map I will have a problem. To pass the DbOperations reference to other classes, I made a copy constructor & operator=, in this case I can't directly copy map tp map. So I made operatorMap as pointer & the other map deptMap is as a normal object only & not assigning in copy constru or =. deptMap additions & updations are possible (NOT a pointer), but operatorMap (a POINTER) operations are not allowed. It causes Assertion failure in afxtempl.h line 1368 which is Assert 1st line of CMap<> operator[].
I got to take out some solution of this. Can you tell how to assign a map to map in copy constructr & = operator. Basically copy a map to other. In DbOperations .h
typedef CMap<int, int, OperatorDetails, OperatorDetails&> OperatorDetailsMap;
typedef CMap<int, int, DeptDetails, DeptDetails&> DeptDetailsMap;
class ....{
OperatorDetailsMap* operMap;
DeptDetailsMap deptMap;
In .cpp
DbOperations::DbOperations(const DbOperations &d) {
this->operMap = d.operMap;
}
DbOperations& DbOperations::operator=(const DbOperations &d) {
this->operMap = d.operMap;
return *this;
}
My point is how do I copy this.deptMap with d.deptMap, where deptMap being normal objects & not a pointer. With this solution we wont have problem with serializeElements() & pointers. As SerializeElements() causes problems, so looking out for solution without serializeElements & pointers. SerializeElemtsis added only in DbOperations along with WriteArchive & ReadArchive. The same thing is working with Visual Studio, but not with eVC++4. Really it is difficult to code in eVC++ than VC++, many restrictions & uncompatibility.
Looking for solution as soon as possible. From days I have been looking for this solution & yet not solved. You have been extremely helpful throughout. I highly appreciate your help and look towards more help.
Thanks
Terry
|
|
|
|
|
just a basic question, why don't use simple CStdioFile or CFile classes when you are building MFC app instead of raw api CreateFile. though i am big fan window api! just a thought !
|
|
|
|
|
Alok, this application is especially meant for development in eVC++ with WinCe. CStudioFile is not supported. So got to opt raw api of C/C++.
Thanks
Terry
|
|
|
|
|
just a question are ATL header files are available for eVC, you could use CAtlFile Class [^]
|
|
|
|
|
No Alok, ATL is not available in eVC, only MFC & pure C/C++. In that too with Win CE, many are again not allowed or supported.
Thanks
Terry
|
|
|
|
|
CString strTime=childnode->getAttribute("Time");
initializing' : cannot convert from 'class _variant_t' to 'class CString'
how to save it
thankyou
|
|
|
|
|
SOS
|
|
|
|
|
huke1987 wrote: SOS
so still in college or working somewhere!
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow Never mind - my own stupidity is the source of every "problem" - Mixture
cheers,
Alok Gupta
VC Forum Q&A :- I/ IV
Support CRY- Child Relief and You/xml>
|
|
|
|
|
CString strTime = whchildnode->getAttribute("Time").bstrVal;
|
|
|
|
|
thank you
but there have a little problem
i use "CString strTime = childnode->getAttribute("Time").bstrVal; "
strTime=""
the strTime in xml is not null
|
|
|
|
|
put the following code and tell me what is the value of vt and bstrVal in the objVar variable after executing it.
_variant_t objVar = childnode->getAttribute("Time");
|
|
|
|
|
thank you
objVar need change to cstring
~~~~~
|
|
|
|
|
what?I didnt understand..
I said to do so for debugging..
|
|
|
|
|
Naveen wrote: I said to do so for debugging..
Better ask for BreakPoint and F-5 function keys!
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow Never mind - my own stupidity is the source of every "problem" - Mixture
cheers,
Alok Gupta
VC Forum Q&A :- I/ IV
Support CRY- Child Relief and You/xml>
|
|
|
|
|
Nice move!
My 5!
Alcohol. The cause of, and the solution to, all of life's problems - Homer Simpson
|
|
|
|
|
i save it in another way
///////////////////////////////
CString strTime=(char *)childnode->selectNodes("Time")->Getitem(0)->text;
////////////////////////////////////////////
or
///////////////////////////////
aSmsItemlist=childnode->GetchildNodes
node1=aSmsItemlist->Getitem(0);
CString strTime=(char *)node1->text;
|
|
|
|
|
This is on the right track but sloppy. What happens if the variant's type isn't VT_BSTR ? Nothing pleasant I can assure you!
Steve
|
|
|
|
|
since he tried to assign the value to a CString, I thought that the node will be having a string value. But later when he said his CString is empty, I felt there is some thing wrong. so I suggested him to take the return into a _varient_t and check for the type.
|
|
|
|
|
thank you all the friends
I have to solve that problem
my English is so bad~~~~~
|
|
|
|
|
huke1987 wrote: CString strTime=childnode->getAttribute("Time");
better use _bstr_t bstVal = childnode->getAttribute("Time").bstrVal; , it has overloaded LPCTSTR, which could be used any where !
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow Never mind - my own stupidity is the source of every "problem" - Mixture
cheers,
Alok Gupta
VC Forum Q&A :- I/ IV
Support CRY- Child Relief and You/xml>
|
|
|
|
|
thank you ??
|
|
|
|
|
huke1987 wrote: ??
sometimes extra ?? is confusing [ ]
|
|
|
|
|
Hi
I want to know about SDk and API.
SDk - A set of tools and libraries for creating software applications
(Eg :Cbutton , Clist I think)
API – Application Programme Interface
(eg: CTime getting Date ,Time from OS)
at my knowledge I said this ,if this is wrong ignore and give me the
explanation about the SDK and API and give difference between them.
thanks
regards
shakumar
|
|
|
|
|
I think API refers just to "interface" to a system for example Operating System. So it will only include funtions exposed by a system. In case of windows we call it Win32 API. SDK on the other hand is a collection of tools, samples codes, documentation, wrappers, etc which helps to use API.
To program a system you don't have to use SDK, you can directly use the API to get the job done but SDK's make programming easy by hiding lot of detail not important in most cases.
-Saurabh
|
|
|
|