1、Window
引入头文件
PublicIncludePaths.Add(Path.Combine(ModulePath, "Win64", "include"));
引入静态库
PublicAdditionalLibraries.Add(Path.Combine(ModulePath, "Win64", "lib", "kdnetsdk.lib"));
延迟加载,延迟加载无需添加指定路径,仅需添加文件名称
PublicDelayLoadDLLs.Add("kdnetsdk.dll");
运行时加载,可以通过添加这句来将dll打包进项目中,此处添加了"$(BinaryOutputDir)/kdnetsdk.dll"
目的是为了将dll拷贝进插件的binary目录,还有一些其他的目录具体的看–这里–
RuntimeDependencies.Add("$(BinaryOutputDir)/kdnetsdk.dll", Path.Combine(ModulePath, "Win64", "lib", "kdnetsdk.dll"));
dll的加载函数,首先加载
kdnetsdkLibrary = !LibDir.IsEmpty()? FPlatformProcess::GetDllHandle(*LibDir):nullptr;
而后声明函数指针
typedef s32 (*FLib_NET_Cleanup_Proc)();
然后定义函数指针变量
static FLib_NET_Cleanup_Proc FLib_NET_Cleanup;
获取函数地址
FLib_NET_Cleanup=(FLib_NET_Cleanup_Proc)FPlatformProcess::GetDllExport(kdnetsdkLibrary, TEXT(#NET_Cleanup));
最后可以通过FLib_NET_Cleanup
调用函数