|
does anyone know how to write this as call by constant reference using pointers?? here is what ive been trying to do:
int CComputer::CheckForMoves(const CBoard& rBoard, int depth)
{
CBoard Board = rBoard; <-- but using pointers instead of reference
}
so i can call it in the main function like this:
CheckForMoves(pBoard,1); where pBoard is a pointer of CBoard
is there a way i can do something like that without getting any syntax errors????
cause i have tried all sorts of stuff like that but the compiler wont allow
me to do so....
anyways, thanx for you help
John
|
|
|
|
|
CheckForMoves( *pBoard,1) ;//main fn
int CCtrlResize::CheckForMoves(const CBoard& rBoard, int depth)
{
const CBoard& Board = rBoard; //Init to a const referece, because thats what it is
return 0 ;
}
|
|
|
|
|
Well, I guess I got it wron then!
------------------------------------
Rickard Andersson, Suza Computing
ICQ#: 50302279
I'm from the winter country SWEDEN!
------------------------------------
|
|
|
|
|
What I know that is not allowed!
You have to use either references or pointers.
------------------------------------
Rickard Andersson, Suza Computing
ICQ#: 50302279
I'm from the winter country SWEDEN!
------------------------------------
|
|
|
|
|
Pointers and references are not the same thing, you can't use both at the same time*. You can either write:
int CComputer::CheckForMoves(const CBoard& rBoard, int depth)
{
const CBoard& Board = rBoard;
const CBoard* p = &rBoard;
} which passes the param as a reference, or:
int CComputer::CheckForMoves(const CBoard* pBoard, int depth)
{
const CBoard* p = pBoard;
const CBoard& refBoard = *pBoard;
} which passes a pointer.
* Note for C++ experts: yes I know you can have a reference to a pointer; I didn't mention that above because it would be unnecessarily confusing.
--Mike--
Best score on the mini-putt game: 27
My really out-of-date homepage
Sonork - 100.10414 AcidHelm
Big fan of Alyson Hannigan and Jamie Salé.
|
|
|
|
|
hey thanks everyone for help me. ill try all your suggestions to see it would work. thank you very much again
|
|
|
|
|
Try CheckForMoves(*pBoard,1) .
Joaquín M López Muñoz
Telefónica, Investigación y Desarrollo
|
|
|
|
|
hey Joaquin... thank you it worked... been think bout this the whole day and i didnt try putting a pointer like CheckForMoves(*pBoard,1).... i think i overlooked that part...
muchas gracias mi amigo por me ayudo...
|
|
|
|
|
Hi, veterans, I'm a student of C.S. I'm going to do a Windows program on drawing with MFC for my class project. Before I get into the real coding, I have to write a development plan to describe how I am going to do the project. I never made one before, and I have no any idea how to write a legitimate one. Please help, with some examples if any. Thanks very much.
|
|
|
|
|
i would like to know how to use the "explorer like interface" that is createble from the appwizard. A sample would be great.
Im not so familiar with the doc/view so please keep it as simpel as possible
Thanks in advance.
/Stefan
|
|
|
|
|
check this
Mazy
"So,so you think you can tell,
Heaven from Hell,
Blue skies from pain,...
How I wish,how I wish you were here." Wish You Were Here-Pink Floyd-1975
|
|
|
|
|
I want my dialog to popup with a fade affect , where in my program should i put the AnimateWindow() function ?
thanx
|
|
|
|
|
OnInitDialog()
Mazy
"So,so you think you can tell,
Heaven from Hell,
Blue skies from pain,...
How I wish,how I wish you were here." Wish You Were Here-Pink Floyd-1975
|
|
|
|
|
Thanx(so simple..)
|
|
|
|
|
Hey guys
I am playing with ATL as you know. I have a weird problem.
I am testing my ATL stuff using VB/ASP
The problem is that when I was using VB, I find that later when I rebuild my component from VC++ I get this error saying the file cannot be opened for writing.
What I then used to do was to close VB and then rebuild it with no probs. This was an annoyance in a way.
But now its worse. I jus tried it out from ASP and it worked. I was happy too. Now I make a small change and want to rebuild it. I get the cannot open dll error. I closed the IE instance and get the same error.
Now what do I do?
Do I have to restart my machine each time?
I believe the reason for this is that ASP/VB fails to decrement the reference count.
How do I force them to do that?
Nish
It's seven o'clock
On the dot
I'm in my drop top
Cruisin' the streets - Oh yeah
I got a real pretty, pretty little thing that's waiting for me
|
|
|
|
|
Damnation!
I am going to reboot now (
Bye for 5 minutes.
I'll be back...
Nish
It's seven o'clock
On the dot
I'm in my drop top
Cruisin' the streets - Oh yeah
I got a real pretty, pretty little thing that's waiting for me
|
|
|
|
|
Here is the erring code by the way :-
<%
Dim x
Set x = CreateObject("SIMPLEINIEDIT.IniEdit")
Response.Write x.GetPrivateProfileString("nish", "abc", "c:\xyz.ini") & "<br>"
Dim y
y = x.GetNiceArray()
For Each j In y
Response.Write j & "<br>"
Next
Response.Write x.TestMethod()
Set x = Nothing
%>
It's seven o'clock
On the dot
I'm in my drop top
Cruisin' the streets - Oh yeah
I got a real pretty, pretty little thing that's waiting for me
|
|
|
|
|
I would say restart the IIS Web Service. IIS is loading the instance of your DLL and locking the file.
Kelly Herald
Software Developer
Micronpc, LLC
|
|
|
|
|
Kelly Herald wrote:
I would say restart the IIS Web Service. IIS is loading the instance of your DLL and locking the file.
Okay, that's possible too.
But still it's an annoyance.
I thought IIS would that, the component is no longer in use and would call Release()
Nish
It's seven o'clock
On the dot
I'm in my drop top
Cruisin' the streets - Oh yeah
I got a real pretty, pretty little thing that's waiting for me
|
|
|
|
|
Are you juggling with the reference count, I mean addref'ing in order to hand out pointers to a function call or something. It sounds like all of your objects are not releasing, and this would force you DLL to remain mapped into memory. That would lock the file and keep it from being updated when you compile.
When you test it in VB, you are running it in the VB run-time process space, so when you kill the debugger (VB runtime), it forces the DLL to be unloaded whether all of the COM objects were successfully released or not.
|
|
|
|
|
kilowatt wrote:
Are you juggling with the reference count, I mean addref'ing in order to hand out pointers to a function call or something.
From my component I am not touching AddRef() or Release() and if I do it's ATL, not me
kilowatt wrote:
When you test it in VB, you are running it in the VB run-time process space, so when you kill the debugger (VB runtime), it forces the DLL to be unloaded whether all of the COM objects were successfully released or not
Yes. But then I am expecting IIS to do the same for me
Nish
It's seven o'clock
On the dot
I'm in my drop top
Cruisin' the streets - Oh yeah
I got a real pretty, pretty little thing that's waiting for me
|
|
|
|
|
It also depends on how IIS is loading your DLL.
If your DLL is loaded as an INPROC_HANDLER, then IIS will not try to unload the DLL.
|
|
|
|
|
kilowatt wrote:
If your DLL is loaded as an INPROC_HANDLER, then IIS will not try to unload the DLL.
Oh! Any way I can force IIS to do it in a way, where it would Release() ?
Nish
It's seven o'clock
On the dot
I'm in my drop top
Cruisin' the streets - Oh yeah
I got a real pretty, pretty little thing that's waiting for me
|
|
|
|
|
I'm not sure but I think one solution for it is change your Threading Model
Mazy
"So,so you think you can tell,
Heaven from Hell,
Blue skies from pain,...
How I wish,how I wish you were here." Wish You Were Here-Pink Floyd-1975
|
|
|
|
|
The DLL is loaded by the COM environment ( when IIS will call CoCreateInstance). IIS do some kind of object pooling to optimize the response for your ASP page, so eventually your object will be released when the timeout for the object will expire. If you want to track the addref / release / QI for your object compile the debug version of your component and define _ATL_DEBUG_QI, _ATL_DEBUG_REFCOUNT & co, start a program which catch the debug output ( as DbgView from sysinternals or dbgmon from Platform SDK ), load your web page and keep an eye on the debug output.
|
|
|
|