我有一个TCL应用程序,它只能在Windows上运行,并使用twapi来访问一些Windows特定的功能。从tcl通过twapi调用DLL函数
现在我需要调用一些定制DLL中的C函数。
我知道我可以加载的DLL与twapi::load_library
(应该是相同的LoadLibraryEx()
),但我不明白如何在DLL本身内调用一个函数!
我错过了什么?
我宁愿避免其他依赖项(例如critcl
),并避免必须在tcl扩展中转换当前dll(例如通过SWIG),所以仅适用于twapi解决方案将非常有帮助!
对'GetProcAddress'的支持不够,因为在执行对外部代码的调用时,必须编组和解组参数。这就是为什么像ffidl这样复杂的框架确实存在的原因。那么,它甚至有点奇怪''twapi'支持加载DLL,如果它以后不能做任何有用的事情;-) – kostix 2012-03-30 13:26:03
@kostix这几乎是我的想法。 – 2012-03-30 14:29:05
是的,有了load_library让我希望我有一些其他的方式来调用一个普通的函数。我可以使用源代码来修改未记录的twapi :: Call函数。但我可能不会。 – 2012-03-30 18:40:21