Lua DLL库依赖项

时间:2016-06-11 10:10:09

标签: c++ windows dll lua

我为windows创建了一个lua模块,一个DLL,它有许多依赖项。这些依赖关系是模块DLL正常运行所必需的,大多数依赖关系都是C ++运行时库(libstdc + -6.dll和libgcc_s_seh-1.dll等)。我正在尝试使用package.loadlib调用加载模块:

init = assert(package.loadlib("C:\\Path\\To\\My\\Module.DLL", "luaopen_MyModule"))
init()

依赖项和模块DLL位于主可执行文件DLL之外的另一个文件夹中。因此,似乎package.loadlib无法找到模块的依赖关系。将这些依赖项的路径添加到PATH变量时,它可以正常工作,但我不允许在将使用lua模块的机器上修改PATH,也不能静态链接到依赖项。

有没有办法从lua指定依赖项的搜索路径? lua将仅用于Windows系统,因此解决方案可能取决于平台。

1 个答案:

答案 0 :(得分:3)

如果您无法静态包含这些依赖项或修改PATH以影响DLL搜索,则可以尝试其他选项:在加载{{1}之前,使用相同的<div class="site-index"> <div class="body-content"> <div class='col-sm-6 col-md-6' id='id'> <?php $form1 = ActiveForm::begin([ 'layout' => 'horizontal', 'action' => ['index1'], 'method' => 'get', 'fieldConfig' => [ 'horizontalCssClasses' => [ 'label' => 'col-sm-2', 'offset' => 'col-sm-offset-2', 'wrapper' => 'col-sm-4', ], ], ]); ... ?> </div> <div class='col-sm-6 col-md-6' id='id2'> $form2 = ActiveForm::begin([ 'layout' => 'horizontal', 'action' => ['index2'], 'method' => 'get', 'fieldConfig' => [ 'horizontalCssClasses' => [ 'label' => 'col-sm-2', 'offset' => 'col-sm-offset-2', 'wrapper' => 'col-sm-4', ], ], ]); ... </div> </div> </div> 调用直接加载这些依赖项}}。当我想确保我的库依赖的DLL是从正确的位置加载时,我使用了这个:

package.loadlib