IJWNOADThunkJumpTarget的功能

时间:2010-08-14 11:20:20

标签: c#

当我从C ++ DCOM服务器调用manged C ++调用时,我得到了以下callstack。 manged C ++调用设置属性值。

我的问题是IJWNOADThunkJumpTarget,IJWNOADThunkJumpTargetHelper和IJWNOADThunk :: FindThunkTarget做了什么?

请帮帮我

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\iceschedulersystem\icescheduler\tooldatamanager.cpp, 250)
 ICEScheduler!SetLotManagerActive+00000014 (e:\projects\ice\ice_dev\trunk\source\application source\iceschedulersystem\icescheduler\schddllapi.cpp, 589)

1 个答案:

答案 0 :(得分:3)

  • 它是.NET运行时内部的一部分(即它不是公共API)
  • 它不包含在SSCLI源代码中(例如,请参阅dacvars.h中的注释);它只在Microsoft .NET Framework中
  • 这个名字的'IJW'部分表明它只是托管C ++使用的一些管道(IJW ='It Just Works',并且指的是MC ++混合原生代码和托管代码的能力)
  • 该名称的“thunk”部分表明它是一段帮助代码,负责将其他两段代码粘合在一起
  • 网络上IJWOADThunk的其他提及(herehere)位于托管代码调用本机代码或反之亦然的上下文中

鉴于上述情况,我猜想IJWOADThunk函数允许托管C ++代码与本机代码透明地互操作。