lua里alien调用dll的types是怎么确定的?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了lua里alien调用dll的types是怎么确定的?相关的知识,希望对你有一定的参考价值。

比如这句里面:

require "alien";
MessageBox = alien.USER32.MessageBoxA;
MessageBox:typesret='long', abi='stdcall', 'long', 'string', 'string', 'long';
那些types的定义是根据什么的来的?还是自己定义?

参考技术A 是根据头文件来确定的。你查msdn肯定可以查找到。
stdcall说明调用管理,这个一般win32 api都是stdcall 然后HWND就是long
LPCTSTR是字符串指针类型 UINT 一般对应long。
具体的你可以看一下alien的文档中说明,拿到win32 api后可以大致写出这个调用规范的。

int WINAPI MessageBox(
_In_opt_ HWND hWnd,
_In_opt_ LPCTSTR lpText,
_In_opt_ LPCTSTR lpCaption,
_In_ UINT uType
);本回答被提问者采纳

以上是关于lua里alien调用dll的types是怎么确定的?的主要内容,如果未能解决你的问题,请参考以下文章

lua调用失败是啥意思

lua中怎么加载dll文件?

lua5.1.5.dll放在哪

LUA 如何调用DLL插件啊。

c++怎么得到lua传进来的数组(数组的大小不确定,不能以字符串形式压入栈)

C# 中如何调用DLL文件?