gpt4 book ai didi

c - lua5.2在windows中调用c dll

转载 作者:可可西里 更新时间:2023-11-01 09:28:45 25 4
gpt4 key购买 nike

我的 C 代码如下:

skype分析器.h

#include "lua.h" 
#include "lualib.h"
#include "lauxlib.h"
#include "stdio.h"
#include "stdlib.h"

//dll export func
int _declspec(dllexport) luaopen_skypeAnalyzer(lua_State* L);

skype分析器.c

#include "skypeAnalyzer.h"
#include <windows.h>
#include <wincrypt.h>

int run(lua_State* L){
printf("------->>> Hi! %s \n", lua_tostring(L, 1));
return 0;
}


struct luaL_Reg IrLibs[] = {

{ "run", run },
{ NULL, NULL }
};


int luaopen_skypeAnalyzer(lua_State* L)
{
luaL_newlib(L, IrLibs);
return 1;
}

lua代码如下:

require "skypeAnalyzer"
skypeAnalyzer.run("Lua")

我在vs express 2013中编译dll生成skypeAnalyzer.dll,但是运行lua代码时出现如下错误:

C:\Lua>lua52.exe skypeAnalyzer.lua
lua52.exe: C stack overflow
stack traceback:
[C]: in ?
[C]: in function 'require'
C:\Lua\skypeAnalyzer.lua:1: in main chunk
[C]: in function 'require'


如何在编译dll时动态调用lua52.dll?如何在 VS 2013 中设置?我在vs express 2013中编译dll生成skypeAnalyzer.dll,但是运行lua代码时出现如下错误:

谁能帮帮我?

最佳答案

你的 lua 代码需要它自己。

.dll.lua 文件使用不同的名称。

使用 lua 5.1 你会得到稍微有用的错误跟踪:

lua5.1: ./foo.lua:1: loop or previous error loading module 'foo'
stack traceback:
[C]: in function 'require'
./foo.lua:1: in main chunk
[C]: ?
[C]: ?

关于c - lua5.2在windows中调用c dll,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27727853/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com