Segfault on some steam_api.dll calls from executable compiled with MinGW GCC. Any way to determine which DLL is loaded?

Viewed 83

I am making a C++ game and integrating Steam's API on Windows MinGW GCC via MSYS2 environment. I am successfully linking to the library, and some of the functions run properly.

I am able to initialize steamworks and run SteamFriends()->GetPersonaName(), and it returns my own steam user as expected.

However, when I run SteamUser()->GetSteamID() it gives me a segfault. Upon debugging, I have found that SteamUser() returns an address (it is not NULL), but the address does not address a valid ISteamUser class/struct. I am beginning to believe that perhaps the DLL that windows loads for steam_api is not the one which I linked for.

Is there any way to determine this? Also does anyone have any other debug methodologies they would use to try to identify the problem?

I have also compiled an identical application using visual studio and it does not experience the segfault, so I have isolated the issue to something external to my code for certain, probably relating to the way the DLL is linked.

0 Answers
Related