|
Probably, he is showing the declaration in header. Atleast I assumed it, while giving replies.
|
|
|
|
|
I've answered this several times for you. You HAVE to have an assignment operator for CObject
derived classes if they are to be used in a container. Why not just implement the operator in
your class?
|
|
|
|
|
I have implemented operator= in CCasObject and in CSpanLoad.But operator= is not there in CPtrArray which is an MFC class..How can i add operator= into CPtrArray???
|
|
|
|
|
Something else is wrong then...
CSpanLoad *pA3Ld,*pBDLd;
*pA3Ld = *pBDLd;
These are not CPtrArrays!
|
|
|
|
|
CPtrArray is a member of CSpanLoad...
class CPtrArray : public CObject
{
//does not implement operator=
}
class __declspec ( dllexport ) CCASObject : public CObject
{
public:
virtual void operator=( const CCADSObject& ){}};
class CSpanLoad : public CCASObject
{
public:
void operator=( const CCASObject& );
private:
CPtrArray aPointArrays;
};
//spanload.cpp
void CSpanLoad::operator=( const CCASObject &src )
{
//....
}
//Import.cpp
int CImport::ReadLoadCategoryData()
{
CSpanLoad *pA3Ld,*pBDLd;
*pA3Ld = *pBDLd; //this assignment is giving error in VS8.In VC6 it was not showing the error;
}
|
|
|
|
|
Ohhh now we're getting close!
You'll need to implement the copy from one array to another. Deep copy would be creating a new
pointer of the object type of the pointer. A shallow copy would be just copying the pointers from
the source to the destination array. Just PtrArray = Src.PtrArray; won't work.
|
|
|
|
|
could u plz tell me so where is the actual problem??I thought it is generating the error:
error C2248: 'CObject::operator =' : cannot access private member declared in class 'CObject'"
see declaration of 'CObject::operator ='
see declaration of 'CObject'
This diagnostic occurred in the compiler generated function 'CPtrArray &CPtrArray::operator =(const CPtrArray &)'
b'coz i am trying to pass a CSpanload object into a CCasObject.CCasObject is a dll.So while compiling it may do static linking.At that time it is trying to locate the function 'CPtrArray &CPtrArray::operator =(const CPtrArray &)'
which is not actually implemented in CPtrArray...If i am wrong plz correct..
|
|
|
|
|
sheetal_06 wrote: At that time it is trying to locate the function 'CPtrArray &CPtrArray::operator =(const CPtrArray &)'
There isn't one implemented. That's why it's an error.
sheetal_06 wrote: i am trying to pass a CSpanload object into a CCasObject
How are you passing it? Are you sure you need to do a full copy or could you pass a reference or
pointer? If you must copy then you'll need to copy the CPtrArray member appropriately. Since
it's an array of pointers - if the pointers are allocated using new and you copy the pointers
from one array to another, then delete the pointers in one array and try to delete the pointers
again in the copy array then it will crash.
|
|
|
|
|
Ya,I need to copy the pointer..
The pointers *pA3Ld and *pBDLd are created using new...
So could u plz suggest one solution...
When i am changing the code as follows it is working...But i din understand why?
class CSpanLoad : public CCASObject
{
public:
void operator=( const CSpanLoad & );//earlier it was const CCASObject &
private:
CPtrArray aPointArrays;
};
//spanload.cpp
void CSpanLoad::operator=( const CSpanLoad &src )//earlier it was const CCASObject &
{
//....
}
|
|
|
|
|
I am doing work in win32 console application. my problem is i want to hide the console window ,when my program is execute
pls help me .
thanks in advance
Yes U Can ...If U Can ,Dream it , U can do it ...ICAN
|
|
|
|
|
Use FreeConsole(), hope it will work.
Smile
|
|
|
|
|
Use FreeConsole(),
I think while debugging it will not work. Try running in release mode, hope it will work.
Smile
|
|
|
|
|
Shilpi Boosar wrote: . my problem is i want to hide the console window ,when my program is execute
is it service or simple application???.. any way Don answer is correct...
"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
Support CRY- Child Relief and you
|
|
|
|
|
|
On >= Windows 2000 you can use code like this:
#include "stdafx.h"
#define _WIN32_WINNT 0x0500
#include <windows.h>
#include <iostream>
void HideConsoleWindow()
{
HWND hWnd = GetConsoleWindow();
if (hWnd)
{
ShowWindow(hWnd, SW_HIDE);
}
}
void ShowConsoleWindow()
{
HWND hWnd = GetConsoleWindow();
if (hWnd)
{
ShowWindow(hWnd, SW_SHOWNORMAL);
}
}
void main()
{
using namespace std;
cout << "Hello world..." << endl;
Sleep(1000);
HideConsoleWindow();
cout << "Text written while window hidden!" << endl;
Sleep(1000);
ShowConsoleWindow();
Sleep(1000);
}
Steve
|
|
|
|
|
Why not use win32 application without GUI?
|
|
|
|
|
For a console application, you still have the console window that is created. The OP wanted to hide this window.
|
|
|
|
|
You can create a Windows application, and then don't create a window. I think that's what he's proposing.
Software Zen: delete this;
|
|
|
|
|
I think I'm tired today, I read correctly what he said but I misunderstood it. Pff, time to have some rest
|
|
|
|
|
hi,
I have to get the filename as input and send it to a parser(already exists)
I cannot use CFileDialog because FlashPlayer is already having a dialog.
My task is to get the file input and sending it to the xml parser.
Thanks in advance
Siddhath
|
|
|
|
|
Asking the same question again will not get you the answers. Read the replies to your previous thread, I'm sure you will find the help you need there somewhere.
|
|
|
|
|
I think you asked like this question yesterday,right?
|
|
|
|
|
siddharthsan wrote: I have to get the filename...
What filename?
siddharthsan wrote: I cannot use CFileDialog because FlashPlayer is already having a dialog.
Since when are dialogs a limited resource?
"Approved Workmen Are Not Ashamed" - 2 Timothy 2:15
"Judge not by the eye but by the heart." - Native American Proverb
|
|
|
|
|
Hi all,
My application was binding to a specific address earlier, but now there is a requirement of binding it to INADDR_ANY, the problem which i'am facing while binding to INADDR_ANY is...the client can able to listen to the data coming from main IP of server i.e
for ex: my server system is having 7 IP's like 172.16.8.1 to 172.16.8.7, and main IP is 172.16.8.1...if client is connecting with 172.16.8.1 it works fine...but if it is connecting with other IP's, client is unable to listen to the data coming from other IPS.
Can any one suggest me a solution for this
mpk1979
|
|
|
|
|
If you bind to INADDR_ANY how will the other end know what address to send to?
|
|
|
|