开发者

Functionality of IJWNOADThunkJumpTarget

开发者 https://www.devze.com 2023-01-11 07:45 出处:网络
When I invoked a manged C++ call from a C++ DCOM server I got the following callstack. The manged C++ call sets a property value.

When I invoked a manged C++ call from a C++ DCOM server I got the following callstack. The manged C++ call sets a property value.

My question is what does IJWNOADThunkJumpTarget, IJWNOADThunkJumpTargetHelper and IJWNOADThunk::FindThunkTarget do?

Please help me

mscorwks!SetupThread+00000238
 mscorwks!IJWNOADThunk::FindThunkTarget+00000019
 mscorwks!IJWNOADThunkJumpTargetHelper+0000000B
 mscorwks!IJWNOADThunkJumpTarget+00000048
 ICEScheduler!CToolDataManager::SetLotManagerActive+00000025** (e:\projects\ice\ice_dev\trunk\source\application source\icesc开发者_如何学运维hedulersystem\icescheduler\tooldatamanager.cpp, 250)
 ICEScheduler!SetLotManagerActive+00000014 (e:\projects\ice\ice_dev\trunk\source\application source\iceschedulersystem\icescheduler\schddllapi.cpp, 589)


  • It's part of the .NET runtime internals (i.e. it's not a public API)
  • It's not included in the SSCLI source code (for instance, see the comment in dacvars.h); it's only in the Microsoft .NET Framework
  • The 'IJW' part of the name suggests that it's some plumbing used only by managed C++ (IJW = 'It Just Works', and refers to MC++'s ability to mix native and managed code)
  • The 'thunk' part of the name suggests that it's a piece of helper code responsible for gluing together two other pieces of code
  • Other mentions of IJWOADThunk on the web (here, here) are in contexts where managed code calls into native code or vice versa

Given the above, I would guess that the IJWOADThunk functions are what allows your managed C++ code to interoperate transparently with native code.

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号