Lua 언어 는 자신 이 작성 한 C DLL 을 어떻게 호출 합 니까?
Lua C DLL
#include "lua.h"
#include "lualib.h"
#include "lauxlib.h"
#include <windows.h>
static int MyLuaDLL_HelloWorld(lua_State* L)
{
MessageBox(NULL,"Hello","World",MB_OK);
return 0;
}
static int MyLuaDLL_average(lua_State *L)
{
int n = lua_gettop(L);
double sum = 0;
int i;
for (i = 1; i <= n; i++)
{
sum += lua_tonumber(L, i);
}
lua_pushnumber(L, sum / n);
lua_pushnumber(L, sum);
return 2;
}
static const luaL_reg MyLuaDLLFunctions [] =
{
{"HelloWorld",MyLuaDLL_HelloWorld},
{"average",MyLuaDLL_average},
{NULL, NULL}
};
int __cdecl __declspec(dllexport) luaopen_MyLuaDLL(lua_State* L)
{
luaL_openlib(L, "MyLuaDLL", MyLuaDLLFunctions, 0);
return 1;
}
-- lua code: --
local testlib = package.loadlib("Lua_Dll.dll","luaopen_MyLuaDLL"); -- DLL
print (testlib)
if(testlib)then
testlib(); -- DLL
else
-- Error
end
MyLuaDLL.HelloWorld();
a,b=MyLuaDLL.average(23,33,3344);
print("average:",a,"sum:",b);
--------------------------------------------
my.c :
#include "stdafx.h"
#include <stdio.h>
#include "my.h"
static int pri(lua_State *L)
{
MessageBox(NULL,"Hello","this is a c program!",MB_OK);
return 0;
}
static const struct luaL_Reg mylib[]={
{"pri",pri},
{NULL,NULL}
};
__declspec(dllexport) int luaopen_mylib (lua_State* L)
{
luaL_register(L,"mylib",mylib);
return 1;
}
my.h :
#include "lua.h"
#include "lualib.h"
#include "lauxlib.h"
#pragma comment(lib,"lua5.1.lib")
test.lua :
local a=package.loadlib("my.dll","luaopen_mylib");
a()
mylib.pri()
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.