当前位置: 首页 > news >正文

深圳专业网站建设多少钱蜘蛛搜索

深圳专业网站建设多少钱,蜘蛛搜索,百度地图怎么搜街景,珠海网站建设 超凡科技文章目录 1. Lua 调用 C++ DLL 的机制入口与注册entry.luaDLL 导出接口`onSimulationStart`代码`onSimulationFrame`代码`setUnitsData`代码生命周期与回调`onSimulationStart`代码`onSimulationFrame`代码`onSimulationStop`代码`coreInit`代码`coreFrame`代码`coreDeinit`代码…

文章目录

    • 1. Lua 调用 C++ DLL 的机制
      • 入口与注册
        • entry.lua
      • DLL 导出接口
        • `onSimulationStart`代码
        • `onSimulationFrame`代码
        • `setUnitsData`代码
      • 生命周期与回调
        • `onSimulationStart`代码
        • `onSimulationFrame`代码
        • `onSimulationStop`代码
        • `coreInit`代码
        • `coreFrame`代码
        • `coreDeinit`代码
    • 2. DLL 与 DCS World 的交互
      • Lua State 共享
        • 示例
      • 数据交互方式
        • dcstools.cpp
      • 线程与同步
    • 3. 典型流程举例
    • 4. 总结



1. Lua 调用 C++ DLL 的机制

入口与注册

  • 在 DCS World 的 Mods 目录下,Olympus 以插件形式加载,Lua 脚本(如 entry.lua)声明插件并初始化。
  • 主要 Lua 脚本(如 OlympusCommand.lua)负责加载 DLL,并通过 require("olympus")package.loadlib 方式调用 C++ 导出的 Lua C API。
entry.lua
local self_ID = "DCS-Olympus"declare_plugin(self_ID,
{image		 = "Olympus.png",installed	 = true, -- if false that will be place holder , or advertisingdirName		 = current_mod_path,binaries	 ={
--		'Olympus',},load_immediately = true,displayName	 = "Olympus",shortName	 = "Olympus",fileMenuName = "Olympus",version		 = "{{OLYMPUS_VERSION_NUMBER}}",state		 = "installed",developerName= "DCS Refugees 767 squadron",info		 = _("DCS Olympus is a mod for DCS World. It allows users to spawn, control, task, group, and remove units from a DCS World server using a real-time map interface, similarly to Real Time Strategy games. The user interface also provides useful informations units, like loadouts, fuel, tasking, and so on. In the future, more features for DCS World GCI and JTAC will be available."),Skins	={{name	= "Olympus",dir		= "Theme"},},Options ={{name		= "Olympus",nameId		= "Olympus",dir			= "Options",CLSID		= "{Olympus-options}"},},
})plugin_done()

DLL 导出接口

  • C++ 侧通过 extern "C" DllExport int luaopen_olympus(lua_State *L) 导出模块初始化函数,供 Lua 加载。
  • 在 olympus.cpp 中,注册了一系列 Lua 可调用的 C 函数(如 onSimulationStartonSimulationFramesetUnitsData 等),这些函数会被 Lua 脚本直接调用。
onSimulationStart代码
//olympus.cppstatic int onSimulationStart(lua_State* L)
{LogInfo(L, "Trying to load core.dll from " + modPath);SetDllDirectoryA(modPath.c_str());setLogDirectory(modPath);log("onSimulationStart callback called successfully");string dllLocation = modPath + "\\core.dll";log("Loading core.dll");hGetProcIDDLL = LoadLibrary(to_wstring(dllLocation).c_str());if (!hGetProcIDDLL) {LogError(L, "Error loading core DLL");goto error;}log("Core DLL loaded successfully");coreInit = (f_coreInit)GetProcAddress(hGetProcIDDLL, "coreInit");if (!coreInit) {LogError(L, "Error getting coreInit ProcAddress from DLL");goto error;}coreDeinit = (f_coreDeinit)GetProcAddress(hGetProcIDDLL, "coreDeinit");if (!coreDeinit){LogError(L, "Error getting coreDeinit ProcAddress from DLL");goto error;}coreFrame = (f_coreFrame)GetProcAddress(hGetProcIDDLL, "coreFrame");if (!coreFrame) {LogError(L, "Error getting coreFrame ProcAddress from DLL");goto error;}coreUnitsData = (f_coreUnitsData)GetProcAddress(hGetProcIDDLL, "coreUnitsData");if (!coreUnitsData){LogError(L, "Error getting coreUnitsData ProcAddress from DLL");goto error;}coreWeaponsData = (f_coreWeaponsData)GetProcAddress(hGetProcIDDLL, "coreWeaponsData");if (!coreWeaponsData){LogError(L, "Error getting coreWeaponsData ProcAddress from DLL");goto error;}coreMissionData = (f_coreMissionData)GetProcAddress(hGetProcIDDLL, "coreMissionData");if (!coreMissionData){LogError(L, "Error getting coreMissionData ProcAddress from DLL");goto error;}coreDrawingsData = (f_coreDrawingsData)GetProcAddress(hGetProcIDDLL, "coreDrawingsData");if (!coreDrawingsData){LogError
http://www.cadmedia.cn/news/15184.html

相关文章:

  • 营销网站建设解决方案刚刚中国出啥大事了
  • 网站制作成品百度人工服务24小时热线电话
  • 校园网站建设的背景朋友圈广告推广平台
  • 建站导航如何推广公司
  • 京东在线购物网站怎么营销自己的产品
  • 中国光伏企业排行榜纵横seo
  • 手机网站建设联系方式网站是怎么优化推广的
  • 做导航网站犯法吗百度投放广告流程
  • 推广网站平台免费收录查询
  • 教育网站建设情况报告百度app安装下载免费
  • 网络公司免费做网站 卖货抽提成seoul是啥意思
  • 如何建立自己的购物网站怎么建设自己的网站
  • 税务网站建设要突出以网络优化培训
  • 游戏网站建设杭州中国十大互联网公司排名
  • 南宁做网站的有几家网络视频营销
  • 网站产品推广输入关键词搜索
  • 推广联盟网站怎么做百度安装到桌面
  • 三网站建设seo综合查询工具下载
  • 网站建设方案策划书ppt模板下载seo托管服务
  • 国内永久在线免费建站西安网站定制开发
  • 给一瓶水做网站吸引客流的25个技巧
  • 杭州建设局网站首页怎么能在百度上做推广
  • 企业培训机构排名石家庄百度搜索引擎优化
  • 济南高新区建设局网站手机优化软件下载
  • 上海临平路网站建设廊坊百度关键词优化
  • 上海和城乡建设委员会网站百度知道一下
  • 摄影网站大全企业关键词大全
  • 北京市网站制作设计公司主页网站设计
  • 上海市建设局官方网站网站百度收录
  • 国内跨境电商网站微软bing搜索引擎