-
Notifications
You must be signed in to change notification settings - Fork 17
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Failed to build in VS2022. #13
Comments
hi,或许能看一下error output? |
你好,我已经尝试构建并生了dll文件,并且游戏能加载到特定存档, 但是同时我也做了很多清理工作, RE:ExtraDataList::InitExtraDataList(a_extraList),这一行位于UniquelDHandler.cpp底部。 这里的InitExtraDataList我基本上找遍了所有能获取到的CommonLibSSE或NG版本,都没有正式的实现,我根据代码里上下文手动的内存分配,猜了一下InitExtraDataList的可能原型以及定义,并把C-Lib的代码里进行了修改,但是是不成功的,而且我觉得这样改也挺悬的。直接对C-Lib修改可能会遇到预期以外的问题(比如我测试下来游戏能加载到正常运行wheeler存档,开始新游戏会卡在RE::ExtraDataList::InitExtraDataList(a_extraList);,因为我的实现是在C-Lib里判断a_extraList是不是nullptr,如果不是就分配a_extraList->_extraData.GetData() = nullptr;)很明显我的猜测是错的,因为我没做过老滚的skse编程:p,很多东西例如你写的NiMemAlloc_1400F6B40里的RELOCATION_ID到底是如何找到的,C-Lib的Offset.h里没有这些数据。还有类似同文件下面的auto xID = new RE::ExtraUniqueID(0x14, nextID);,我只能通过0x14来猜测这是通过玩家角色加上地址偏移来实现内存设置。 而且由于我现在能找到的C-Lib可能有一些升级,一些变量名也更改,例如: GetInventoryItemCount变为了GetItemCount等等 此外,我注意到你似乎也是自己实现的GetObject__(),因为这个方法在C-lib里应该是GetObject(),但是GetObject()会和Windows系统的头文件有冲突,我设法解决了这个问题,暂时还没测试相关功能是否正常 最后就是宏定义部分,你有很多以“INFO”开始的用于输出日志的行,我本地部署下来spdlog找不到INFO的宏定义在哪,于是只能改成spdlog::info...这种形式,同样的情况发生在TextureManager.cpp。“ASSERT”同样失去了宏定义,我自己添加了#define ASSERT(expr) assert(expr),但是让轮盘贴图功能基本上失效了 以上就是一些我暂时记录下的问题,感谢您的任何帮助,因为这基本上是我的第一个CMake项目(我以前的项目基本上是C用makefile比较多),并且我对C++也不是很熟练,以及老滚skse和C-Lib的一些编程范式也不熟悉. 可能有些是很蠢的问题,望海涵 |
轮盘贴图功能这个有很多可能的地方会导致这个bug... 我建议新建一个窗口用 |
hi,我修复了在库存中使用完自制药水后打开ui的崩溃问题,以及一些其他可能的潜在崩溃,并对代码做了一些清理,在遵循开源协议的情况下我希望将修复后的解决方案上传到N网,我会标明代码的来源,源mod以及所有有必要的信息 |
没问题!也欢迎你submit一个pr进现有的repo。 |
Hi D7ry,
Could you please specify the exact version of CommonLibSSE-NG you used for the build or mention which fork it is from?
Using the CommonLibSSE-NG linked in this project's README causes compiler errors, while using the version maintained by alandtse https://github.com/alandtse/CommonLibVR/tree/ng results in completely different errors, even though I haven't made any changes to the Wheeler code at all.
I have noticed that different versions of CommonLibSSE-NG handle things quite differently, which might be the reason for the different errors.
Thank you very much for your help.
The text was updated successfully, but these errors were encountered: