|
How did you define such function? Where?
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
|
|
|
|
|
ok I have solved the problem!
I've got linker error problems because I am defining Message Map declerations in header file.
I just move BEGIN_MESSAGE_MAP parts into cpp file and my problem is solved!
Thank you for your help!
|
|
|
|
|
you need the forward declaration in the declaration file, say in CMain.h,
declare
CMain.h:
class CChild; // forward declaration.
CMain : CDialog
{
CChild* child;
void doSmt();
};
remove the forward declaration in the cpp(I Suppose)
CMain.cpp:
dehseth wrote:
class CMain;
#include "CMain.h"
#include "CChild.h"
void CMain::doSmt()
{
}
#include "CChild.h"
#include "CMain.h"
|
|
|
|
|
didn't worked.....still says undeclared identifier..
|
|
|
|
|
yes that can happen for the other CChild.cpp,
if you understand what forward declaration can do, you can alone fix the problem.
if you want from me, say what are the files cpp, h and how you declare
|
|
|
|
|
Hello ,
I use this section to write some code in a file
f.Open(_T("file.log"), CFile::modeNoTruncate | CFile::modeWrite);
if(f!=f.hFileNull)
{
f.SeekToEnd();
}
else
{
f.Open(szFilename, CFile::modeCreate | CFile::modeWrite);
}
CArhive arStore(&f, CArchive::store);
arStore.WriteString(_T("message");
It works fine like this. But I want to make a class that writes the file.
In .h I have :
private:
CFile f;
CArchive arStore;
And I have a method to write an open file.
I encounter a problem in constructing the arStore object. (ERROR: CArchive not apropiate default constructor available)
This like is the problem : arStore(&f, CArchive::store);
I think that there is a method like Open for CFile but I don't find it.
Tnx for the help
|
|
|
|
|
mihai123 wrote: I encounter a problem in constructing the arStore object. (ERROR: CArchive not apropiate default constructor available)
You can use the Initialization list.
eg:
class Test
{
private:
CFile f;
CArchive arStore;
public:
Test():arStore(&f, CArchive::store)
{
};
};
|
|
|
|
|
tnx it works
|
|
|
|
|
Hi,
How can I add skin to my project?
|
|
|
|
|
Do you need to these articles
here[^] and here[^]?
|
|
|
|
|
Your question is bringing me too many things to assume. Before I assume anything wild, have you searched Google?
Nobody can give you wiser advice than yourself. - Cicero
.·´¯`·->Rajesh<-·´¯`·.
Codeproject.com: Visual C++ MVP
|
|
|
|
|
In MFC what is the difference between these functions and what is the fine line calling AfxBeginThread vs calling ::CreateThread
|
|
|
|
|
|
The documentation ([^] and [^]) doesn't help, does it?
Roughly speaking, you can spot the main difference in the AfxBeginThread overloaded form supporting user interface threads, i.e.:
CWinThread* AfxBeginThread(
CRuntimeClass* pThreadClass,
int nPriority = THREAD_PRIORITY_NORMAL,
UINT nStackSize = 0,
DWORD dwCreateFlags = 0,
LPSECURITY_ATTRIBUTES lpSecurityAttrs = NULL
);
The above provides some boiler plate code helping, user interface threads development.
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
|
|
|
|
|
MSDN
Use AfxBeginThread to create a thread object and execute it in one step. Use CreateThread if you want to reuse the thread object between successive creation and termination of thread executions.
Yes U Can ...If U Can ,Dream it , U can do it ...ICAN
|
|
|
|
|
On Windows, all the thread creation methods eventually call ::CreateThread()
to create the thread.
The difference is, AfxBeginThread() does MFC-specific initialization on the thread.
The typical rule of thumb is:
Use AfxBeginThread() to create a thread in MFC if the thread will use any MFC objects.
Use _beginthreadex() to create a thread if no MFC objects are used but CRT functions are used (including new/delete!).
Use ::CreateThread() if just Win32 APIs/objects are used.
Also make sure you link to the multithread MFC/CRT libraries!!
Mark
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
How to retrieve the current record number associated with Stmt.
I tried SQLGetStmtAttr with SQL_ATTR_ROW_NUMBER but its not working, its allways return 0.
i am using Microsoft Access Driver (*.mdb)
Thanks & Regards
|
|
|
|
|
Hi all,
I m using SDI type application in VC++2005,
i want to know how can calculate the diffrence of two diffrent dates in terms of days.
Please help me for this.
Thanks in Advance.
IN A DAY, WHEN YOU DON'T COME ACROSS ANY PROBLEMS - YOU CAN BE SURE THAT YOU ARE TRAVELLING IN A WRONG PATH
|
|
|
|
|
You could use the COleDateTime class.
Subtract one ColeDateTime object from another ColeDateTime object and you'll get
a COleDateTimeSpan object, with which you can use its GetTotalDays() method.
Mark
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
it gives Zero value.
please tell me with example,
after calculating i want to show the calculated days in ReadOnly EditBox.
Thanks.
IN A DAY, WHEN YOU DON'T COME ACROSS ANY PROBLEMS - YOU CAN BE SURE THAT YOU ARE TRAVELLING IN A WRONG PATH
|
|
|
|
|
ThatsMe. wrote: it gives Zero value.
did you used in any variable arg functions like wsprintf with format specifier %d, if so you typecast it to int before hand. say, (int)timeDiff.GetTotalDays().
[Added]
COleDateTime timeDOB( 1983, 9, 2, 0, 0, 0);
COleDateTime timeToday( 2008, 5, 12, 0, 0, 0);
COleDateTimeSpan timeDiff = timeToday - timeDOB;
TCHAR szBuf[256];
_stprintf(szBuf, _T("No. of Days :%d"), (int)timeDiff.GetTotalDays());
[/Added]
modified on Monday, May 12, 2008 3:15 AM
|
|
|
|
|
Thanks now its working,
plz tell me one more thing after calculating the diff of dates i want to show the no of days in ReadOnly Edit box.
i m converting the integer value in String and set string in EditBox,but it not show at that time when i m using Tab selection or click on Edit Box.
Thanks.
IN A DAY, WHEN YOU DON'T COME ACROSS ANY PROBLEMS - YOU CAN BE SURE THAT YOU ARE TRAVELLING IN A WRONG PATH
|
|
|
|
|
ThatsMe. wrote: i m converting the integer value in String and set string in EditBox,
What and where is the code you are using to do that?
Mark
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
<code>
COleDateTimeSpan daydiff=(COleDateTime m_date1-COleDateTime m_date2);
int noofday=(int)daydiff.GetTotalDays();
noofday++;
CString nday,m_no_ofday;
nday.Format("%d",noofday);
//m_no_ofday CString type variable of Edit Box.
//nday gives calculated no of days.
m_no_ofday.SetString(nday);
</code>
IN A DAY, WHEN YOU DON'T COME ACROSS ANY PROBLEMS - YOU CAN BE SURE THAT YOU ARE TRAVELLING IN A WRONG PATH
|
|
|
|
|
ThatsMe. wrote: /m_no_ofday CString type variable of Edit Box.
By that I'm assuming you mean m_no_ofday is a CString attached to the edit
control through the MFC DDX system....
If that's the case, you could just convert the int to that string and call UpdateData()
to move the string contents to the edit control:
COleDateTimeSpan daydiff=(COleDateTime m_date1-COleDateTime m_date2);
int noofday=(int)daydiff.GetTotalDays();
noofday++;
m_no_ofday.Format("%d",noofday);
UpdateData(FALSE);
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|