通过twapi从tcl调用DLL函数

时间:2012-03-30 09:12:31

标签: windows dll tcl

我有一个TCL应用程序,它只能在Windows上运行,并使用twapi来访问某些特定于Windows的功能。

现在我需要调用自定义DLL中的一些C函数。

我知道我可以使用twapi::load_library加载DLL(应该与LoadLibraryEx()相同)但我无法理解如何在DLL本身内调用函数!

我错过了什么?

我宁愿避免使用其他依赖项(例如critcl)并避免必须在tcl扩展中转换当前dll(例如通过SWIG),因此仅使用twapi解决方案会非常有用!

3 个答案:

答案 0 :(得分:1)

TWAPI似乎没有提供GetProcAddress的任何公共绑定(Windows API函数用于从名称到DLL中函数的地址)。

将ffidl用于简单的API(即没有回调的地方)或critcl(适用于所有类型的API,包括那些带有回调的API,因为它可以进行更广泛的代码生成;但需要付出更多努力)。

答案 1 :(得分:1)

twapi的load_library命令用于操作dll中的资源(字符串表,图标等)。它不是用于调用dll中的函数,因为Donal指出,它需要编组和一些代码生成。

答案 2 :(得分:0)

您似乎必须使用ffidl来完成这项工作。