Click here to Skip to main content
15,902,189 members
Home / Discussions / C / C++ / MFC
   

C / C++ / MFC

 
AnswerRe: SHBrowseForFolder Pin
*Dreamz14-Nov-05 0:08
*Dreamz14-Nov-05 0:08 
AnswerRe: SHBrowseForFolder Pin
David Crow14-Nov-05 2:40
David Crow14-Nov-05 2:40 
AnswerA long standing favorite... Pin
jhwurmbach14-Nov-05 3:06
jhwurmbach14-Nov-05 3:06 
QuestionDraw arc algorithm Pin
gandalf198313-Nov-05 23:21
gandalf198313-Nov-05 23:21 
AnswerRe: Draw arc algorithm Pin
Rajesh R Subramanian13-Nov-05 23:30
professionalRajesh R Subramanian13-Nov-05 23:30 
Questioncaveats when exporting classes from a dll? Pin
WernerP13-Nov-05 22:48
WernerP13-Nov-05 22:48 
AnswerRe: caveats when exporting classes from a dll? Pin
Steen Krogsgaard14-Nov-05 2:24
Steen Krogsgaard14-Nov-05 2:24 
GeneralRe: caveats when exporting classes from a dll? Pin
WernerP14-Nov-05 5:59
WernerP14-Nov-05 5:59 
Thank you!

The vtable is populated at compile time. The main app calls the virtual function through the vtable, but reads the vtabel at runtime, not compile time.
> => when I insert a virtual function or change its position, the the client will read a wrong function address instead of the original one, if it does use the vtable.

Why it doesn't work with function pointers is a little more unclear to me, but that will of course depend on how you construct and use the pointers.
> you gave the answer. When I use a class from a dll this way

MyDllClass theClass;
theClass.aVirtualFunc(); // the vtable will not be used when calling this function (right?). It's clear, to which class aVirtualFunc refers, it can be referred to by it's export name or ordinal.

But here
MyDllBaseClass * ptheClass = new(MyDllClass);
ptheClass->aVirtualFunc(); // the vtable will be used. Beware of changing the functions position in the dll without recompiling the client. The wrong function will be used
(it happened also when I used a MyDllClass * instead of MyDllBaseClass *).

or even here, I think - and less obvious -

MyDllClass theClass;
doSomethingWith(theClass);
..
void doSomethingWith(MyDllClass & refToMyClass) {.. // because there is an implicit pointer operation.

.

Cheers Werner
GeneralRe: caveats when exporting classes from a dll? Pin
Steen Krogsgaard14-Nov-05 23:23
Steen Krogsgaard14-Nov-05 23:23 
AnswerRe: caveats when exporting classes from a dll? Pin
cmk14-Nov-05 12:56
cmk14-Nov-05 12:56 
GeneralRe: caveats when exporting classes from a dll? Pin
WernerP15-Nov-05 0:18
WernerP15-Nov-05 0:18 
GeneralRe: caveats when exporting classes from a dll? Pin
cmk15-Nov-05 0:47
cmk15-Nov-05 0:47 
QuestionWindow caption at center Pin
pc_dev13-Nov-05 22:44
pc_dev13-Nov-05 22:44 
AnswerRe: Window caption at center Pin
Roger Allen14-Nov-05 0:43
Roger Allen14-Nov-05 0:43 
GeneralRe: Window caption at center Pin
vikas amin14-Nov-05 1:28
vikas amin14-Nov-05 1:28 
AnswerRe: Window caption at center Pin
ThatsAlok14-Nov-05 1:12
ThatsAlok14-Nov-05 1:12 
AnswerRe: Window caption at center Pin
Arman S.14-Nov-05 1:12
Arman S.14-Nov-05 1:12 
QuestionDestination path ICopyHook Pin
ragavan13-Nov-05 22:17
ragavan13-Nov-05 22:17 
QuestionCButton SetFocus Pin
AORD13-Nov-05 21:00
AORD13-Nov-05 21:00 
AnswerRe: CButton SetFocus Pin
toxcct13-Nov-05 21:38
toxcct13-Nov-05 21:38 
GeneralRe: CButton SetFocus Pin
AORD14-Nov-05 18:23
AORD14-Nov-05 18:23 
GeneralRe: CButton SetFocus Pin
toxcct14-Nov-05 21:19
toxcct14-Nov-05 21:19 
AnswerRe: CButton SetFocus Pin
Rajesh R Subramanian13-Nov-05 23:20
professionalRajesh R Subramanian13-Nov-05 23:20 
GeneralRe: CButton SetFocus Pin
Mircea Puiu14-Nov-05 5:45
Mircea Puiu14-Nov-05 5:45 
AnswerRe: CButton SetFocus Pin
Mircea Puiu14-Nov-05 5:04
Mircea Puiu14-Nov-05 5:04 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.