icculus/steamshim

Windows compilation fails / bug

Opened this issue · 1 comments

Hello,

First thanks for your work. We are using it for Steam integration with our project.
I just wanted to report back to you some issues we found in the Windows part of the code.

This line won't compile, val should be buf:

const DWORD rc = GetEnvironmentVariableA(key, val, buflen);

This ternary seems to be backward:

return ((rc > 0) && (rc < buflen)) ? NULL : buf;

It should be:
return ((rc > 0) && (rc < buflen)) ? buf : NULL;

SIGPIPE does not seem to be supported on Windows, so those 2 lines don't compile:

signal(SIGPIPE, SIG_IGN);

signal(SIGPIPE, SIG_DFL);

also CreateProcessW fails with invalid parameter because no startup info is passed in. This works (though not sure if ideal).

STARTUPINFO sinfo = {};
sinfo.cb = sizeof(sinfo);
return (CreateProcessW(TEXT(".\\") TEXT(GAME_LAUNCH_NAME) TEXT(".exe"),
                           GetCommandLineW(), NULL, NULL, TRUE, 0, NULL,
                           NULL, &sinfo, pid) != 0);