Including/using <regex> will not run on some machines?

I am creating a dll which gets loaded by a game engine.

It runs fine on my dev machine, however does not on a secondary machine (it will not bind when the engine starts).

I have isolated it down to my use of:
1
2
3
4
#include <regex>

std::regex spSaveFileRegex("saveGame(.*?).sav");


Including that line that defines a new regex makes the second computer unable to load the dll. If i remove that line, it loads fine.

Could someone explain to me why this might be? I'm fairly new to writing dlls.

How can you know what libraries are safe to use so that my code will run for all windows machines?

Am i able to package in libraries that are essential in case the player does not have them?

Thanks in advance.
Last edited on
...unable to load the dll

What happens? Any error messages or crash or ...?
Unfortunately I don't get to see any error message, as I only have the game engine logs. It just fails with an error saying it's unable to bind the dll (and then it won't run any of the functions in the dll).

Works fine on one computer, but not on the other (both running windows 10). And it's only when I define a regex var.

Edit: If this helps, I've also just discovered that using std::filesystem causes the same problem (not working on one machine but fine on the other):
 
std::filesystem::exists("../../saveFilesList.sav")


It is Unreal Engine 3 that I am using these dlls. Documentaion on binding dll support: https://docs.unrealengine.com/udk/Three/DLLBind.html
Last edited on
Topic archived. No new replies allowed.