2016-09-29 57 views
0

我已经下载VCLua库here。我创建新的文件名为program.lua和类型有代码,在教程:VCLua库加载错误

require "vcl" 

mainForm = VCL.Form("mainForm") 

mainForm.Caption = "My first VCLua application" 
mainForm._= { position="podesktopcenter", height=400, width=600} 

mainForm.onclosequery = "onCloseQueryEventHandler" 

function onCloseQueryEventHandler(Sender) 
    return true -- the form can be closed 
end 

mainMenu = VCL.MainMenu(mainForm,"mainMenu") 
mainMenu:LoadFromTable({ 
    {name="mmfile", caption="&File", 
     submenu={ 
      {name="mmOpen", caption="Open...", onclick="onMenuOpenClick", shortcut="Ctrl+O"}, 
      {caption="-",}, 
      {caption="Exit", onclick="onMenuExitClick", shortcut="Alt+F4"}, 
     } 
    }, 
    {name="mmhelp", caption="&Help", RightJustify=true, 
     submenu = { 
      {caption="Help", shortcut="F1", checked=true}, 
      {caption="-",}, 
     } 
    } 
}) 

mainMenu:Find("mmhelp"):Add("mmAbout")._= {caption="About", onclick="onMenuAboutClick", enabled=false} 

function onMenuExitClick() 
    mainForm:Close() 
end 

mainToolbar = VCL.ToolBar(mainForm,"mainToolbar") 
mainToolbar:LoadFromTable({ 
    {name="mtbOpen", onclick="onMenuOpenClick"}, 
    {name="mtbExit", onclick="onMenuExitClick"}, 
}) 

mainToolbar:Find("mtbOpen").enabled=false 

mainForm:ShowModal() 

mainForm:Free() 

但是当我要运行它(我曾在目录中同时vcl.dll和vcl.so文件,其中Lua解释为)它写入lua: error loading module 'vcl' from file 'C:\Users\Admin\Desktop\Programs\lua\vcl.dll':。堆栈跟踪不要说任何有用的东西。那么谁能告诉我,如何解决我的问题?

回答

0

Lua的动态库通常是针对Lua DLL编译的;如果动态库无法找到链接的Lua DLL,则可能会出现此错误。你可以使用像dependency walker这样的工具来查看为什么/如何失败,它可以告诉你你的库依赖于哪些其他DLL,以及在加载时你得到的运行时错误(你可以使用“Profile”模式来查看)。

+0

它会说我错过了DLL。好吧,依赖walker没有说任何有用的,标准系统库和lua 5.1 dll,它位于vcl.dll所在的目录中。 –

+0

好吧,我用Profiler和输出对我来说似乎很奇怪: “VCL.DLL”中的DllMain(0x10000000,DLL_PROCESS_ATTACH,0x00000000)返回0(0x0).'可以是... corputted?我发现以下github回购:https://github.com/rmbishop/VCLua,但我不能自己构建它(没有delphi编译器) –