|
|
memcpy(cpT1, t1, sizeof(t1));
memcpy(cpT2, t2, sizeof(t2));
This will work fine.
John
|
|
|
|
|
|
Hi all
Can i get some way to retrieving pointer on member function of my class i.e. make like this
<br />
class A{<br />
void Fun(){<br />
void *pF = &this->Fun;<br />
}<br />
}<br />
By compiled this snippet, compiler complain:
illegal operation on bound member function expression
Whether exit way what i can do it???
Thanks
Sorry for bad eanglish
|
|
|
|
|
Do you mean, 'how can I get something which represents the combination of an object and a member function'?
You can do this with the STL using the mem_fun_t template. The language itself does not permit such an operation. The expression this->Fun is considered to be a bound member function - the only thing you can do with such an expression is to use the () operator on it (i.e., call it).
|
|
|
|
|
Thanks for advice but whats a reason which prevent do this???
|
|
|
|
|
You can do this, but the syntax is slightly different:
void (A::*pF)() = A::Fun; You will have to call the function in the context of an object:
A obj;
(pobj.*pF)();
A *pobj = new A;
(pobj->*pF)(); Hope this helps,
Ryan "Punctuality is only a virtue for those who aren't smart enough to think of good excuses for being late" John Nichol "Point Of Impact"
|
|
|
|
|
Hi
I apparently cant properly realise you because of code dont
wont work by me.
Please see this code and ask where i wrong :
class A{
void Fun(){}
void CallFun(){
void (A::*pF) () = A::Fun;
}
}
//Linker show error:
error C2440: 'initializing' : cannot convert from 'int' to 'void (__thiscall A::*)(void)'
There are no conversions from integral values to pointer-to-member values
Thanks
|
|
|
|
|
Hi
I apparently cant properly realise you because of code dont
wont work by me.
Please see this code and say where i wrong :
class A{
void Fun(){}
void CallFun(){
void (A::*pF) () = A::Fun;
}
}
//Linker show error:
error C2440: 'initializing' : cannot convert from 'int' to 'void (__thiscall A::*)(void)'
There are no conversions from integral values to pointer-to-member values
Thanks
|
|
|
|
|
Strange... Your code compiled perfectly with my compiler, and so did the code I provided. Instead of assigning A::Fun you can try using just Fun , but it should work anyway.
What version of VC are you using?
Ryan "Punctuality is only a virtue for those who aren't smart enough to think of good excuses for being late" John Nichol "Point Of Impact"
|
|
|
|
|
OOps
Excuse this warm make me completly dump
I forget set semicolon after class brace!!!
Now all fine.
Very thanks.
|
|
|
|
|
|
lol, what joky answers here...
define the member function static and there shouldn't be a problem anymore
Don't try it, just do it!
|
|
|
|
|
I think we were all assuming that the original poster needed the function to be a member function ('instance method' in C# terminology).
A static member function has no this pointer, of course.
OK, you can do hacks like passing a pointer to the object into the static member function as a parameter, but that doesn't really gain you anything. I only ever do this when creating a thread or writing a callback function for interfacing with a C API - this type of function usually gives you a void* or LPARAM parameter which you can pass arbitrary data in, which gets passed to your thread entry point or callback function.
|
|
|
|
|
Does anyone have the MFC equivalent of
directory.exists()?
|
|
|
|
|
How about GetFileAttributes(file)
and check for FILE_ATTRIBUTE_DIRECTORY ?
|
|
|
|
|
One solution is FindFirstFile() and FindNextFile().
Kuphryn
|
|
|
|
|
Or how about CFile::GetStatus
Joel Lucsy
|
|
|
|
|
Or you could use SetCurrentDirectory(). If the function returns FALSE then the directory doesn't exist. You should also call GetLastError() and make sure that it returns ERROR_PATH_NOT_FOUND (I am not sure if that's the actual error but you can figure that out), because there could be several reasons why SetCurrentDirectory() might return FALSE. (make sure you save the current directory before calling the function, in case the directory you are seaching for exists).
// Afterall, I realized that even my comment lines have bugs
When one cannot invent, one must at least improve (in bed).-My latest fortune cookie
|
|
|
|
|
Of course there is the venerable
if (_access(strDir, 0) == 0)
{
TRACE("exists\n");
}
HPS HwndSpy - GUI developer's aid to visually
locate and inspect windows. For the month of August
only, use coupon code CP-81239 for 30% off.
|
|
|
|
|
Hi,
Appreciate your help on this one...
Under what circumstances does IE run in the explorer.exe process?
Thx,
/Tommy
|
|
|
|
|
In new versions of Windows, whenever you type a web URL into the Address combo, or select a web resource from the Favorites menu.
What is commonly thought of as 'IE' is really an ActiveX control that you can load into any frame. Explorer.exe and IExplore.exe really just control what gets loaded into the frame when it's first created - either an Explorer-style ListView or a WebBrowser control. It's been like this since IE 4.0 and the Desktop Update (Active Desktop).
If you type a local address (e.g. C:\Work) into an IE window, it'll turn into an Explorer.
The only thing that Explorer.exe does which IExplore.exe doesn't is to run your desktop and taskbar.
Downloading a new version of 'Internet Explorer' basically updates most of how the shell works.
|
|
|
|
|
Thx Mike!
My problem is this:
I have a BHO which is only supposed to load and run in
Internet Explorer; the BHO is a web tool. It has a heavy init phase which is
very annoying having to wait for if it's loaded in explorer.exe (that is in folders and such frequently used objects), the way it is now.
Is there a way to know under what circumstances IE is run under the explorer.exe process so that I can skip the heavy loading in these cases...? Because when I had this piece of code
if (dwReason == DLL_PROCESS_ATTACH)
{
TCHAR pszLoader[MAX_PATH];
GetModuleFileName(NULL, pszLoader, MAX_PATH);
_tcslwr(pszLoader);
if (_tcsstr(pszLoader, _T("explorer.exe")))
return FALSE;
}
my BHO did not load at all in IE on some machines... which ones with what spec I don't know. Removing the code (the _tcsstr part) makes the whole BHO dependent on open folders and explorer views...
For example, before uninstalling my app (the BHO) I need to shut down every folder (eplorer.exe) unless I want to reboot after the uninstall.
Any idead on what do to?
/Tommy
|
|
|
|
|
Hi All
i have a modeless dialog, which i call from pressing a button
on my toolbar, within my SDI application, this then calls
a function defined by myself
for some reason, the dialog is always displayed in the top left of the screen,
im using the following code,
whenever i call modeless dialogs for anywhere else in my program,
they are always in the center, im controling this from my view class
if that makes a difference
CCPServerWait* m_pWaitDlg;
m_pWaitDlg = new CCPServerWait;
m_pWaitDlg->Create(IDD_DCPSERVER_WAIT);
m_pWaitDlg->UpdateData(FALSE);
m_pWaitDlg->ShowWindow(SW_SHOW);
m_pWaitDlg->UpdateWindow();
/// do something here
// close
m_pWaitDlg->DestroyWindow();
any1 any ideas
thanks
si
|
|
|
|
|
sorry,i should have put....
how do i get it to display in the middle, of the screen
thanks
si
|
|
|
|