thunk相关内容

如何将方法作为回调传递给 Windows API 调用(后续)?

这篇文章是相关问题. 接受的答案坚持使用通常的普通旧函数. 这段摘录特别引起我的注意: 一个实例方法有一个额外的、隐式的、包含实例引用,即 Self. 坚信应该有一种方法可以使用一种“参数"适配器(改写摆脱不需要的 Self 隐式引用并提供指向符合的自适应回调函数的指针),我最终找到了这个文章,标题为回调类作者:彼得·莫里斯. 总而言之,他使用thunking技术作为 ..
发布时间:2022-01-03 08:54:16 其他开发

导入地址表中的 Thunk 表?

与 EXE 文件中用于导入外部 DLL 中使用的函数的导入地址表相关的 thunk 表是什么? 这个 thunk 表只是一个包含其他函数的 'Thunks' 的表吗? 解决方案 Thunks 是导入表的一部分 (IMAGE_DIRECTORY_ENTRY_IMPORT) 和延迟导入表 (IMAGE_DIRECTORY_ENTRY_DELAY_IMPORT).它们被描述 http:// ..
发布时间:2021-12-25 16:25:03 其他开发

读取 Explorer.exe 的 Thunk 数据

我正在尝试在 explorer.exe 中进行一些 IAT 挂钩.规格:Windows 7 x64,Visual C++.我已经达到了能够从我选择的任何可执行文件中读取 thunk 数据的程度,除了 C:\Windows\Explorer.exe.当我针对它运行我的程序时,我在从该可执行文件读取内存时收到访问冲突.但是,当我针对 C:\Windows\system32\Explorer.exe 和 ..
发布时间:2021-11-25 06:37:43 C#

如何在 x86 和 x64 中调用函数?(就像 C++ 中的 std::bind,但动态的)

如何在 x86 和 x64 上使用任意(固定)数量的参数对任意函数进行 thunk? (我不需要浮点数、SSE 之类的.参数都是整数或指针.) 解决方案 这是我的通用实现. 我最初使用 AsmJit 制作它,然后手动修改它以移除依赖项. 它适用于 x86 和 x64! 它适用于 cdecl 和 stdcall! 它应该也适用于“thiscall",无论是在 VC+ ..
发布时间:2021-11-25 05:35:28 C/C++开发

如何在C ++中使用thunk将此指针绑定到静态成员函数

我正在尝试使用C ++和Win32 API创建一个thunk,它将这个指针绑定到静态成员函数,因此我可以将该函数用作回调. 现在,我有一个适用于x64的thunk,它可以通过将r9寄存器的值(对应于函数的第4个参数)设置为该指针的地址来工作. 但是我对于x86的thunk有问题,我尝试设置[esp + 10h]的值(也对应于第4个参数). 这是重击: #pragma pack ..
发布时间:2021-04-21 19:05:12 C/C++开发

Redux Thunk Fetch返回未定义

我是 Redux Thunk 的新手,并且在通过单击按钮组件获取 async 调用后执行 dispatch 操作时遇到了问题 actions.js 从'isomorphic-fetch'导入获取export const getPosts =(json)=>{返回 {类型:常量.GET_POSTS,有效负载:{数据:json}}}export const loadPosts()=>{retu ..
发布时间:2021-04-12 19:10:13 前端开发

ESLint Airbnb ES6和Redux异步操作箭头主体周围出现意外的语句

我做错了什么?我喜欢其他三个具有相同问题且无法修复的异步操作. 解决方案 当您查看(param1, param2, …, paramN) => expression // equivalent to: => { return expression; } “箭头主体周围的意外的块语句"仅表示您的箭头函数不需要{ return expression; }块,因为箭头函数默认会返回. ..
发布时间:2020-09-07 18:32:28 其他开发

Mac gcc非虚拟重击错误

我仅在我的应用程序的“部署"构建中收到这些非虚拟重击错误.它使用一个称为Lgi的私有框架.使用XCode 3.1.4在10.5.8上构建(最新版本适用于豹吗?)错误看起来像这样: Ld /Users/matthew/Code/Scribe-Branches/v2.00/build/Development/Scribe.app/Contents/MacOS/Scribe normal i386 ..
发布时间:2020-05-01 03:47:42 其他开发

比function(){return x}更简洁的延迟评估?

我正在移植一些严重依赖延迟评估的Python代码.这是通过 暴徒 .更具体地说,任何需要延迟求值的Python表达式都包含在Python"lambda表达式"中,即lambda:. AFAIK,与此最接近的JavaScript等效项是function(){return }. 由于我正在使用的代码在这样的杂乱中绝对是充斥的,因此,我想尽可能使它们的代码 ..
发布时间:2020-04-30 08:15:10 前端开发

了解GHCi让绑定参与时thunk的不同行为

我一直在玩Simon Marlow关于Haskell中并行和并发 编程的书中的一些例子,并偶然发现了一个我不太了解的有趣行为。我真的想了解一些GHC的内部工作。 假设我在REPL中执行以下操作: λ»让x = 1 + 2 :: Int λ»让z =(x,x) λ»:sprint x x = _ λ»:sprint z z =(_,_) λseq x() () λ»:sprin ..

哈斯克尔斐波那契解释

我知道这个问题之前已经被问过了, ,但没有一个答案解决了我用可视化结果的问题。 代码是使用 zipWith 的规范代码。 code $ $ b $ $ p $ fibs = 0:1:zipWith(+)fibs(tail fibs) $ b $ b zipWith 直接将两个列表拉到一起 尾部抓取除第一个元素列表 Haskell将'to-be'计算数据引用为 thunks 。 ..

导入地址表中的Thunk表?

这个thunk表只是一个表格,而在EXE文件中用来导入外部DLL中的函数的导入地址表是什么?包含“Thunks”到其他功能? 解决方案 Thunks是导入表的部分 code> IMAGE_DIRECTORY_ENTRY_IMPORT )和延迟导入表( IMAGE_DIRECTORY_ENTRY_DELAY_IMPORT )。它们被描述为 http://msdn.microsoft.com/ ..
发布时间:2017-06-07 21:52:55 .NET组件控件

如何将一个方法作为回调传递给Windows API调用(跟进)?

本文是对相关问题在 Ran 发布。 接受答案坚持使用通常的普通旧函数。 这段摘录特别引起我的注意: 一个实例方法有一个额外的,参数包含 实例引用,即Self。 坚定地认为应该有一种方式使用的“参数”适配器(以重新编译除去不需要的自隐式引用,并提供一个指针,以适应适应的回调函数),我最终发现这回调类的”a1411-callback-a-class.html“rel =”no ..
发布时间:2016-11-10 10:15:24 其他开发

非静态回调如何从本机代码工作?

这有点奇怪,这个问题,因为我有代码,似乎它不应该工作,但它确实,虽然我不抱怨,我想确认为什么? LOL 简单来说,我有一个C ++本地DLL(没有CLR /托管支持),需要从C#代码回调。本地端存储由C#提供的stdcall回调函数。我一直认为回调METHOD(在C#)必须是静态的,但非静态和lambda表达式BOTH工作JUST FINE! “this”指针是如何从本地代码编组的?我总是认 ..
发布时间:2016-10-24 13:21:46 C#/.NET

使用v表thunk链接过程调用

我在网上阅读了一些关于Vtable thunks的文章,我在某处读到thunk可以用于hook / chain过程调用。 是否可以实现? p> 有没有人知道如何工作,我也找不到好的资源解释thunk。 有什么建议吗? 解决方案 以v表thunk的方式实现原始thunk是最后的手段。 一般来说,thunk可以做到以下几点: 修正输入参数(例如,转换为其他格式) l ..
发布时间:2016-10-20 23:14:44 C/C++开发

什么是“thunk”?

我已经看到它用于编程(特别是在C ++域),不知道它是什么。大概是一个设计模式,但我可能是错的。 解决方案 词thunk在计算机科学中至少有三个相关含义。 “thunk”可以是: 一段代码来执行延迟的 计算(类似于闭包) li> 某些虚拟函数 表实现的功能(类似于 包装器函数) 系统特定的表单到另一个, 通常为了兼容性原因 我通常看到它用于 http:// ..
发布时间:2016-10-13 10:07:05 C/C++开发

如何非静态回调从本机代码工作?

这是一个有点奇怪问这个问题,因为我有喜欢它似乎不应该工作的代码,但它确实,虽然我不是在抱怨,我想确认一下为什么? LOL 简单地说,我有一个C ++本机DLL(没有CLR /管理支持的话)这需要从C#代码中的回调。本机端存储一个STDCALL回调函数,它是由C#侧供给。我一直以为回调方法(在C#)必须是静态的,但非静态和lambda表达式都工作就好了!?如何将“this”指针正在从本地代码封 ..
发布时间:2016-09-30 22:11:23 C#/.NET