|
m_pSocket is a instance of which class?
|
|
|
|
|
which is the fastest MFC Storage Class while doing large data operations
NiLeSh KoRpE
|
|
|
|
|
MFC storage classes all suck, you should use the standard containers. Then, speed is a function of what TYPE of operations you want to do, that's why there's several type of containers. The same is true of MFC containers, but they were written prior to the standard, and are not designed to compete with it.
Christian Graus - Microsoft MVP - C++
|
|
|
|
|
One general piece of advice if you want speed: Make sure, regardless what functions/methods you will use, that (xx)printf functions isn't used.
I once had to optimize a magnetic tape writing piece of code and I increased it's speed by a factor 7, just by omitting one single call to sprintf().
(I replaced it with quite a few strcpy/strcat/itoa).
|
|
|
|
|
NiLeSh KoRpE wrote: which is the fastest MFC Storage Class while doing large data operations
What type of data operation do you want to do?
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow
cheers,
Alok Gupta
VC Forum Q&A :- I/ IV
|
|
|
|
|
I was told CMaps are faster for any type of operation...
NiLeSh KoRpE
|
|
|
|
|
NiLeSh KoRpE wrote: I was told CMaps are faster for any type of operation...
For Searching Operation!
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow
cheers,
Alok Gupta
VC Forum Q&A :- I/ IV
|
|
|
|
|
OK thank you Alok.
If you have (VC Forum Q&A :- II/ III) link pl send it to me.
NiLeSh KoRpE
|
|
|
|
|
NiLeSh KoRpE wrote: If you have (VC Forum Q&A :- II/ III) link pl send it to me.
The VC Forum Q&A II and III isn't published Yet, they are in pipeline!
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow
cheers,
Alok Gupta
VC Forum Q&A :- I/ IV
|
|
|
|
|
Hai,
I am trying to add contents to list box but i am getting run time error (VC++ Debug Library)
Can anyone help me with this.
I used F10 and checked run time error was generated at this line
status.m_OUT.AddString(e->filename);
void Index :: readFiles (sortentry* e)
{
---
----
----
if ((s = (char*)strrchr(e->filename, '/')) == NULL)
{
CStatusDlg status;
status.m_OUT.AddString(e->filename);
}
}
Regards,
Vinay Charan CN.
|
|
|
|
|
Is the listbox created when you add items to it?
The usual place to intiate controls is in OnInitDialog.
|
|
|
|
|
you use
CStatusDlg status;
status.m_OUT.AddString(e->filename);
I guess m_OUT.m_hWnd is NULL
whitesky
|
|
|
|
|
Hai,
So what shd be done ??? Can u help me with this.
|
|
|
|
|
I tested like this
<br />
CAnswer m_Answer;<br />
m_Answer.m_List1.AddString("A");
hWnd=0x0000 and m_Answer.m_List1 is=0x0000<br />
--------------------
of course CTest2 is CDialog
you can use of course i suggest you created your dialog in one function like OnInitDialog
and you can use from it
<br />
CAnswer m_Answer;<br />
m_Answer.Create(IDD_TEST2);<br />
m_Answer.m_List1.AddString("A");<br />
m_dlg and handle from List is valid
whitesky
|
|
|
|
|
Hai,
I made the changes as below as u said but still i am getting error.
void Index :: readFiles (sortentry* e)
{
FILE *fp;
char *s;
static int fnum = 0;
int wds = 0;
if (e != NULL) {
readFiles (e->left);
fp = fopen (e->filename, "r");
fnum++;
CStatusDlg status;
status.Create(IDD_INDEX_STATUS_DIALOG);
if ((s = (char*)strrchr(e->filename, '/')) == NULL)
{
status.m_OUT.AddString(e->filename);
}
else
{
status.m_OUT.AddString(e->filename);
}
---
=----
}
|
|
|
|
|
what is it sortentry* e?
whitesky
|
|
|
|
|
Hai,
it just Receives file names from other functions.
|
|
|
|
|
|
(VC++ Debug Library)
status.m_OUT.AddString(e->filename);
|
|
|
|
|
Check this:
status.GetSafeHwnd() ==NULL?
m_OUT is ==NULL?
m_OUT->GetSafeHwnd() ==NULL?
e->filename is CString? Empty?
|
|
|
|
|
hi,
how to check the values for status.GetSafeHwnd() ??
//m_OUT is ==NULL?
m_OUT will be empty when the dialog loads.
//e->filename is CString? Empty?
e value will alwys have a value its of CString type "C:\Dir\filename1"
|
|
|
|
|
You have to write code like this (according to your variable definitions)
and find out what is the object with the real problem.
CStatusDlg status;<br />
status.Create(IDD_INDEX_STATUS_DIALOG);<br />
<br />
ASSERT(status.GetSafeHwnd() != NULL);<br />
ASSERT(status.m_OUT.GetSafeHwnd() != NULL);<br />
ASSERT(e != NULL);<br />
ASSERT(e->filename != "");<br />
...<br />
<br />
status.m_OUT.AddString(e->filename);
You must add every test that could be a problem during execution, and, remember, use DEBUG mode, not RELEASE.
If there is a bug the program will stops at the line that point the problem.
|
|
|
|
|
Hi,
i have used f10 and check the exact line where the error generates
status.Create(IDD_INDEX_STATUS_DIALOG);
305: status.Create(IDD_INDEX_STATUS_DIALOG);
0040A83B push 0
0040A83D push 84h
0040A842 lea ecx,[status]
0040A848 call CDialog::Create (00409e36)
what will be cause ??
------------------------------
void Index :: readFiles (sortentry* e)
{
FILE *fp;
char *s;
static int fnum = 0;
int wds = 0;
if (e != NULL) {
readFiles (e->left);
fp = fopen (e->filename, "r");
fnum++;
CStatusDlg status;
status.Create(IDD_INDEX_STATUS_DIALOG);
if ((s = (char*)strrchr(e->filename, '/')) == NULL)
{
ASSERT(status.GetSafeHwnd() != NULL);
ASSERT(status.m_OUT.GetSafeHwnd() != NULL);
ASSERT(e != NULL);
ASSERT(e->filename != "");
status.m_OUT.AddString(e->filename);
}
else
{
ASSERT(status.GetSafeHwnd() != NULL);
ASSERT(status.m_OUT.GetSafeHwnd() != NULL);
ASSERT(e != NULL);
ASSERT(e->filename != "");
status.m_OUT.AddString(e->filename);
}
// cout <<" " << s+1;
insert (fnum, e->filename);
if (fp) {
wds = getWord (fp,fnum);
}
else {
cerr << "File: " << e->filename << " can't open" << endl;
return;
}
cout << " (" << wds << " words)" << endl;
fclose (fp);
free (e->filename);
readFiles(e->right);
delete e;
}
}
|
|
|
|
|
CStatusDlg is child of CDialog?
Check if IDD_INDEX_STATUS_DIALOG is the right id of a Dialog resource.
else follow the functions's call using F11, and, surely, you will find the point that give the error.
|
|
|
|
|
Possible error:
CStatusDlg status;<br />
status.Create(IDD_INDEX_STATUS_DIALOG);
->Use this:
CStatusDlg status(IDD_INDEX_STATUS_DIALOG);
|
|
|
|