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

圣弘建设股份有限公司网站公司旅游视频网站模板免费下载

圣弘建设股份有限公司网站,公司旅游视频网站模板免费下载,谁有网站推荐一下好吗,中信建设有限责任公司地址上一篇文章中我使用UnrealSharp成功使用了我的一个C#控制台程序中的网络模块#xff0c;这个程序是基于KCP网络了#xff0c;其中调用了Cmake 编译的一个C的DLL#xff0c;在虚幻中DLL需要放在Binaries目录中才可以。Unity中只要放在任意Plugins目录中就可以。 但是Binaries…上一篇文章中我使用UnrealSharp成功使用了我的一个C#控制台程序中的网络模块这个程序是基于KCP网络了其中调用了Cmake 编译的一个C的DLL在虚幻中DLL需要放在Binaries目录中才可以。Unity中只要放在任意Plugins目录中就可以。 但是Binaries目录版本控制一般不提交我们可以改一下改成按照路径加载。 修改前的脚本 using System.Runtime.InteropServices;//脚本修改自//https://github.com/a11s/kcp_warppernamespace NetLibrary {public unsafe class KCP{const string LIBNAME libikcp.dll;//---------------------------------------------------------------------// interface//---------------------------------------------------------------------/// summary/// create a new kcp control object, conv must equal in two endpoint/// from the same connection. user will be passed to the output callback/// output callback can be setup like this: kcp-output my_udp_output/// /summary/// param nameconv/param/// param nameuser/param/// returns/returns[DllImport(LIBNAME, EntryPoint ikcp_create, CallingConvention CallingConvention.Cdecl)]public static extern IKCPCB* ikcp_create(uint conv, void* user);/// summary/// release kcp control object/// /summary/// param namekcp/param[DllImport(LIBNAME, EntryPoint ikcp_release, CallingConvention CallingConvention.Cdecl)]public static extern void ikcp_release(IKCPCB* kcp);/// summary/// set output callback, which will be invoked by kcp///public static extern void ikcp_setoutput(IKCPCB* kcp, int (* output)(byte* buf, int len, ikcpcb *kcp, void* user));/// /summary/// param namekcp/param/// param named_output/param[DllImport(LIBNAME, EntryPoint ikcp_setoutput, CallingConvention CallingConvention.Cdecl)]public static extern void ikcp_setoutput(IKCPCB* kcp, System.IntPtr d_output); 篇幅太大没有必要只展示部分代码片段。 可以看到之前是通过DllImport 载入LIBNAME变量来载入DLL的。 改为动态路径 先放上所有改动 // 动态获取库路径 private static string GetLibraryPath() {string baseDirectory AppDomain.CurrentDomain.BaseDirectory;//动态库的路径被拼接到 Binaries\Managed\Third\libikcp.dll而你的实际库文件存放在 E:\myproject\Third\libikcp.dll这说明 AppDomain.CurrentDomain.BaseDirectory 返回的路径是 Binaries\Managed。baseDirectory Path.Combine(baseDirectory, ../../);string relativePath;// 根据平台选择库路径if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows)){relativePath ThirdParty/Kcp/Win64/libikcp.dll;}else if (RuntimeInformation.IsOSPlatform(OSPlatform.Create(ANDROID))){relativePath ThirdParty/Kcp/Android/arm64-v8a/libikcp.so;}else{throw new PlatformNotSupportedException(Unsupported platform);}return Path.Combine(baseDirectory, relativePath); }// DllImport 使用动态路径 private const string LIBNAME PLACEHOLDER; // 占位符 private static bool _isResolverSet false; // 添加初始化方法以动态设置路径 public static void Initialize() {if (_isResolverSet){Loger.Debug($BSserver DLL: 已经加载过了 .);return;}try{string libraryPath GetLibraryPath();//Loger.Error($BSserver DLL:{libraryPath});NativeLibrary.SetDllImportResolver(typeof(KCP).Assembly, (name, assembly, path) {if (name LIBNAME){return NativeLibrary.Load(libraryPath);}return IntPtr.Zero;});_isResolverSet true;}catch(Exception e) {//AClientMain.inst.PrintString(C# : DLL: libraryPath);Console.WriteLine($Loaded library 加载错误 .e.Message);Loger.Error($BSserver DLL 加载错误 : e.Message);}} //const string LIBNAME libikcp.dll; //--------------------------------------------------------------------- // interface //---------------------------------------------------------------------/// summary /// create a new kcp control object, conv must equal in two endpoint /// from the same connection. user will be passed to the output callback /// output callback can be setup like this: kcp-output my_udp_output /// /summary /// param nameconv/param /// param nameuser/param /// returns/returns [DllImport(LIBNAME, EntryPoint ikcp_create, CallingConvention CallingConvention.Cdecl)] public static extern IKCPCB* ikcp_create(uint conv, void* user);/// summary /// release kcp control object /// /summary /// param namekcp/param [DllImport(LIBNAME, EntryPoint ikcp_release, CallingConvention CallingConvention.Cdecl)] public static extern void ikcp_release(IKCPCB* kcp);使用方法 我们在UE的工程下创建目录ThirdParty按照代码里的路径把DLL放进去按照不同平台。 在加载DLL之前我们需要调用Initialize方法初始化动态设置路径就可以了。 这些代码是ChatGPT帮忙写的经过几次修改有了这段代码。 小技巧 以前是内事不决问baidu外事不决问google现在是内事问豆包外事问ChatGPT。 但是小心AI一本正经的胡说八道。 P
http://www.hkea.cn/news/14515534/

相关文章:

  • 深圳龙岗建网站网站开发模块化开发
  • 哪些网站可以兼职做设计做网站大家都找谁
  • 中国免费网站服务器seo网站诊断报告
  • 中关村能力建设网站十堰网站建设多少钱
  • 如何迁移wordpress网站如何自己免费做网站
  • 房地产网站建设东营网站优化
  • 上海网站建设广告怎么做
  • 做网站补贴企业电话号码查询网
  • 做服装商城网站论文网站ico制作
  • 怎么用frontpage做网站网页游戏平台哪个好
  • 南昌网站维护制作网站建设必备语言
  • 不知情的情况下帮别人做网站他违法在线建网址
  • 余姚建设公司网站公司名称注册查询网
  • 衡阳营养师报考网站南宁app下载
  • 电商网站特点信息服务平台
  • 天津网站建设好公司wordpress cropping 图片 出错
  • 网站UI怎么做太原新站优化
  • 网站制作步骤流程图学3d建模学费一般多少
  • 网站做加QQ群链接二维码创意设计
  • 做网站要服务器吗大朗做网站公司
  • 加强网站的建设淘宝联盟的网站怎么自己做
  • 上海手机站网站建设天津开发区建设工程管理中心网站
  • 鹿泉城乡建设局网站网站运营托管方案
  • 1号店网站模板下载深圳网络开发
  • 品牌网站建设968经典软文案例分析
  • 抖音网站建设的基本情况制作微信小程序公司
  • 苏州做网站最好公司哪家好做微商海报的网站
  • 云南省网站备案要求wordpress侧边栏折叠
  • 旅行网站建设下载期货行情软件
  • 做网站用什么软件知乎温州专业手机网站制作多少钱