|
There is a difference in performance, but the vast majority of the time it is irrelevant. Member functions actually have a hidden first parameter, which is the 'this' pointer. To access a member variable, they must retrieve the value at the address which is a known offset from this pointer.
If the variable is passed in as a parameter, it can be accessed more directly, because it is at a known address on the stack (or rather a known address relative to the current top of the stack). On most architectures, this will mean that accessing a member variable will take 1 instruction more than accessing a parameter - fairly inconsequential.
Dave
|
|
|
|
|
I need to make an analyzer of heads of methods in Visual C++, that is given a head of a method in a CString of the following way:
BOOL FichControl::CopyFile( const char *lpSrcFilename, const char *lpDestFilename, int nBuffersize )
I need to obtain each SubString that conforms the head (BOOL, FichControl, CopyFile, const char, *lpSrcFilename, ...)
Exists some form to do this, that is not crossing the CString of principle to aim character to character?
Thank you very much!
PD: Sorry for my bad English.
|
|
|
|
|
I think, you can construct some regular expression to handle such a string parsing.
RegExp is a thingie, where you describe the format of string, it's parts etc. Then it can check if the supplied string matches the specified format, and the library is also able to parse the string for you to parts you specify. It allows you to specify optional parts of string (class specification e.g. FileControl:: ) and repeating (parameters - there can be zero or X parameters)
for some examples of regular expressions, you can look to: http://www.regexlib.com/[^]
There are a lot of available regexp libraries - in ATL7 is one, the class is named I guess CAtlRegExp or something like that. The boost library also provides some regular expression code.
Later on, when you will be happy with the construct, there are some tools around 'compiling' the regexp expression to the plain C (you will get some speedup)
hope this helps
|
|
|
|
|
How can a VB program pass an array of string by reference to a C DLL for updating and then return back to VB.
Most grateful if there is sample coding.
|
|
|
|
|
Hello,
i work with CHtmlView in MDI project and i want to stop Popup window, so i do :
void CBrowserMDIView::OnNewWindow2(LPDISPATCH* ppDisp, BOOL* Cancel)<br />
{<br />
<br />
*Cancel = true;<br />
}
but with this code i block all new window, if the user click on link which open a new window, it is stoped by *Cancel = true; .
So how can i distinguish if OnNewWindow2 is called via script or by click ??
PS: excuse my poor english
|
|
|
|
|
I don't know if OnBeforeNavigate2() is called for popup windows, but if it is you can do the cancel there based on the lpszURL param.
Neville Franks, Author of ED for Windows. www.getsoft.com
Make money with our new Affilate program
|
|
|
|
|
Neville Franks wrote:
I don't know if OnBeforeNavigate2() is called for popup windows, but if it is you can do the cancel there based on the lpszURL param.
thx !
ok but how know if it is a desired popup (click on link) or a ad popup ?
could you more explain please
|
|
|
|
|
jeremysay wrote:
thx !
ok but how know if it is a desired popup (click on link) or a ad popup ?
could you more explain please
I can't help with that, other than to suggest you analyze the contents of the URL and make some decision based on that. Or ask the user.
Neville Franks, Author of ED for Windows. www.getsoft.com
Make money with our new Affilate program
|
|
|
|
|
I have a application with a view that has a tabctrl. The tabpages of this tabctrl are CDialog derived objects. There a several dll's that draw controls on these tabpages (I didn't think this up, my predecessor did ).
Anyhow, the problem is that some of the controls do not receive their messages. E.g. button controls do not receive BN_CLICKED, the same account for spinctrl's. But I can edit the fields of a editctrl. Also when I create an ownerdraw button the WM_DRAWITEM message can not be received.
When I create a similar control in the application itself then this control does receive it's messages. My predecessor create a 'sollution' by overriding the OnCommand of the TabCtrl. This does solve the BN_CLICKED problem but still I do not receive the ownerdraw messages. Anyone got a clue about how to solve this?
|
|
|
|
|
There's a OnDrawItem command. Maybe if you override that one you will receive ownerdraw messages. I never use MFC though so I'm not sure about this
|
|
|
|
|
That does not work if the control does not receive it's messages.
|
|
|
|
|
Hi
think this is a bit difficult
i got the control-id passed through a function
with parameters: (UINT CtrlId)
but in that function i want to know the membername attached to that control.
Anyone knows?
Greetz
Jens
|
|
|
|
|
never mind
i fixed my problem by using:
GetDlgItem(Ctrlid)
|
|
|
|
|
I placed one Media Player Control on a Dialogue using VC++6. However, during a movie playback, the Media Player will face problem while it plays under FULL SCREEN mode.
I could not figure it out? Anybody can help?
Now I am thinking to block any keyboard input while playback in progress. Any comments?
DJ
|
|
|
|
|
Dear all:
i want to write a program to suspend system to s1 and s2, but i can't find the api, i uses
SetSystemPowerState(1, 0) ---> suspend to s3
SetSystemPowerState(0, 0) ----> suspend to s4
but how can i suspend system to s1 and s2 ?
thx for ur help
|
|
|
|
|
Is there a way to get VS 6.0 (VC++) to recognize *.cc as a C++ file? I am required to use this extension for work. As it is now, it doesn't use syntax highlighting or any of the other nifty stuff.
Thanks,
Jack
There are 10 types of people in this world, those that understand binary and those who don't.
|
|
|
|
|
|
How to change the background image of the desktop window? Or is there an article I can read about it? Thanks!
|
|
|
|
|
Search MSDN for IActiveDesktop interface, it has got methods which help you change the background of Desktop.
<edit> I was assuming you where asking about changing desktop background image, if you want to paint your apps window with images, then you
can override OnDraw if its a CView based app. to start with </edit>
Cheers,
Kannan
|
|
|
|
|
Have a look at SystemParametersInfo and the SPI_SETDESKWALLPAPER parameter.
Gary Kirkham
A working Program is one that has only unobserved bugs
I thought I wanted a career, turns out I just wanted paychecks
|
|
|
|
|
How to open HTML Help file from my MFC application at a specified location - let's say not at the beginning but at 'contacts & credits'(the last) page?
|
|
|
|
|
i have created test_build.dll, xxx.h, xxx.def.
next i created testexe to try calling functions inside that dll.
but this testexe does not compile - error msg about
unresolved external symbol...
indicating it could not 'see' those functions inside the dll.
question - what settings on this testexe project i need to set/un_set for it to work?
|
|
|
|
|
There are two ways to do it:
-link your testexe with a .lib file created when you compile the dll
-use LoadLibrary and GetProcAddress to load the dll during execution of the test executable
|
|
|
|
|
i am a total amateur with vc++ so pls bear with me...
>-link your testexe with a .lib file created when you compile the dll
this would mean i am hard-wiring my .lib to the testexe build?
>-use LoadLibrary and GetProcAddress to load the dll during execution of >the test executable
with the following code("square" is on of the functions inside test_build.dll)
FARPROC * lpfProcFn;
HINSTANCE hLib;
hLib = LoadLibrary("test_build.dll");
*lpfProcFn = GetProcAddress(&hLib, "square");
?? how do i now call that "square" fn ??
abc = square(45); <-- compiler will complain unresolved fn...
thanks.
|
|
|
|
|
If your square function has for example the following definition:
<br />
int square(int a,int b);<br />
you could do it this way:
<br />
typedef int (*proc)(int a,int b);<br />
<br />
HINSTANCE hLib;<br />
hLib = LoadLibrary("test_build.dll");<br />
proc fptr=(proc)GetProcAddress(hLib,"square");<br />
<br />
abc=fptr(1,2);<br />
|
|
|
|