2016-09-29 64 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編譯器) –