Lua 32位转64位地址转换?

在我的当前代码中,我需要使用Lua的package.loadlib从DLL中加载一个64位的C++函数。它可以正常加载,通过了assert测试,并返回一个有效的函数地址。主要问题是它给我一个32位的地址,比如0x035c2e40。当我尝试调用那个函数时,(64位)程序会给我一个访问违例错误。经过查询,我发现它调用的地址是0xffffffff035c2e40,而不是实际地址0x00000000035c2e40

因此,我的问题是:有没有任何快速简便的方法将Lua提供的32位地址正确转换为64位地址?如果没有,我是否可以手动修改地址?到目前为止,我还没能够改变地址的值,不确定这是否是有意的(对Lua我还是很新的,抱歉)。

点赞