NBFFICallback与Win32类型提升类型未解决

时间:2013-05-22 12:29:01

标签: smalltalk pharo

我正在探索NativeBoost。以为我将从一个简单的事件钩开始。为了定义回调,我将NBFFICallback子类化,并添加了我的fnSpec,返回类型为LRESULT

fnSpec
    ^ 'LRESULT ( INT nCode, LPARAM lParam , WPARAM wParam)'

在我使用

实例化之后
mycallback := MyCallback on: someBlock.

我在Unable to resolve external type:

处的NBFFICallout >> resolveType: aTypeName错误

在这里,我发现正在从requestor查找类型的绑定,因为它将从类本身查找NBNativeFunctionGen,因此类型不会被解析。

不知怎的,我相信如果类型得到解决,我将能够创建回调,然后将其传递给我的钩子函数。我是对的吗?

此外,如果以某种方式(没有触及实际的NB代码)是正确的,请将我的对象放在哪里我将共享池引用Win32类型(NBWinTypes)作为requestor并使类型以这种方式得到解决?

简而言之,如何将特定类型添加到回调中。

感谢。

1 个答案:

答案 0 :(得分:1)

我不确定,我手头没有Windows机器来检查,但这些类型是在 NBWinTypes 共享池中定义的

所以,我认为你应该使用ffi调用将它作为poolDictionary包含在类中。

Object subclass: #MyClass
    instanceVariableNames: ''
    classVariableNames: ''
    poolDictionaries: 'NBWinTypes'
    category: 'NativeBoost-Win32'